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>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: T Nguyen <truongqnguien@gmail.com>
Approved by: Gordon Ross <gwr@nexenta.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 ↓ 1252 lines elided ↑ open up ↑
1253 1253          IDM_SVC_LOG(CE_NOTE, "iSCSI service (%p/%d) online", (void *)svc,
1254 1254              svc->is_svc_req.sr_port);
1255 1255  
1256 1256          while (so_svc->is_thread_running) {
1257 1257                  mutex_exit(&svc->is_mutex);
1258 1258  
1259 1259                  if ((rc = ksocket_accept(so_svc->is_so,
1260 1260                      (struct sockaddr *)&t_addr, &t_addrlen,
1261 1261                      &new_so, CRED())) != 0) {
1262 1262                          mutex_enter(&svc->is_mutex);
1263      -                        if (rc == ECONNABORTED)
1264      -                                continue;
1265      -                        /* Connection problem */
1266      -                        break;
     1263 +                        if (rc != ECONNABORTED && rc != EINTR) {
     1264 +                                IDM_SVC_LOG(CE_NOTE, "idm_so_svc_port_watcher:"
     1265 +                                    " ksocket_accept failed %d", rc);
     1266 +                        }
     1267 +                        /*
     1268 +                         * Unclean shutdown of this thread is not handled
     1269 +                         * wait for !is_thread_running.
     1270 +                         */
     1271 +                        continue;
1267 1272                  }
1268 1273                  /*
1269 1274                   * Turn off SO_MAC_EXEMPT so future sobinds succeed
1270 1275                   */
1271 1276                  (void) ksocket_setsockopt(new_so, SOL_SOCKET, SO_MAC_EXEMPT,
1272 1277                      (char *)&off, sizeof (off), CRED());
1273 1278  
1274 1279                  idmrc = idm_svc_conn_create(svc, IDM_TRANSPORT_TYPE_SOCKETS,
1275 1280                      &ic);
1276 1281                  if (idmrc != IDM_STATUS_SUCCESS) {
↓ open down ↓ 1865 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX