Print this page
3866 panic in idm module
3867 stmfCreateLu failed: GUID_IN_USE
3868 iscsi target not accepting any new connections
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Reviewed by: Jeremy Jones <jeremy@delphix.com>
Reviewed by: Eric Diven <eric.diven@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/idm/idm_so.c
          +++ new/usr/src/uts/common/io/idm/idm_so.c
↓ open down ↓ 1241 lines elided ↑ open up ↑
1242 1242          IDM_SVC_LOG(CE_NOTE, "iSCSI service (%p/%d) online", (void *)svc,
1243 1243              svc->is_svc_req.sr_port);
1244 1244  
1245 1245          while (so_svc->is_thread_running) {
1246 1246                  mutex_exit(&svc->is_mutex);
1247 1247  
1248 1248                  if ((rc = ksocket_accept(so_svc->is_so,
1249 1249                      (struct sockaddr *)&t_addr, &t_addrlen,
1250 1250                      &new_so, CRED())) != 0) {
1251 1251                          mutex_enter(&svc->is_mutex);
1252      -                        if (rc == ECONNABORTED)
1253      -                                continue;
1254      -                        /* Connection problem */
1255      -                        break;
     1252 +                        if (rc != ECONNABORTED && rc != EINTR) {
     1253 +                                IDM_SVC_LOG(CE_NOTE, "idm_so_svc_port_watcher:"
     1254 +                                    " ksocket_accept failed %d", rc);
     1255 +                        }
     1256 +                        /*
     1257 +                         * Unclean shutdown of this thread is not handled
     1258 +                         * wait for !is_thread_running.
     1259 +                         */
     1260 +                        continue;
1256 1261                  }
1257 1262                  /*
1258 1263                   * Turn off SO_MAC_EXEMPT so future sobinds succeed
1259 1264                   */
1260 1265                  (void) ksocket_setsockopt(new_so, SOL_SOCKET, SO_MAC_EXEMPT,
1261 1266                      (char *)&off, sizeof (off), CRED());
1262 1267  
1263 1268                  idmrc = idm_svc_conn_create(svc, IDM_TRANSPORT_TYPE_SOCKETS,
1264 1269                      &ic);
1265 1270                  if (idmrc != IDM_STATUS_SUCCESS) {
↓ open down ↓ 1865 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX