Github user jacksontj commented on the issue: https://github.com/apache/trafficserver/pull/947 After doing some testing with this patch, I see crashes where write_to_net is being called with a null vc lock. ``` (gdb) list 416 } 417 while ((vc = write_ready_list.dequeue())) { 418 if (vc->closed) 419 close_UnixNetVConnection(vc, trigger_event->ethread); 420 else if ((vc->write.enabled && vc->write.triggered) || vc->write.error) 421 write_to_net(this, vc, trigger_event->ethread); 422 else if (!vc->write.enabled) { 423 write_ready_list.remove(vc); ``` Seems that vc->write.error forces write_to_net to be called, but nothing is checking that the vc is non-null. Specifically: ``` (gdb) p lock $1 = {m = {m_ptr = 0x0}, lock_acquired = 157} (gdb) list 382 write_to_net_io(NetHandler *nh, UnixNetVConnection *vc, EThread *thread) 383 { 384 NetState *s = &vc->write; 385 ProxyMutex *mutex = thread->mutex; 386 387 MUTEX_TRY_LOCK_FOR(lock, s->vio.mutex, thread, s->vio._cont); // <-- this line, specifically the s->vio.mutex 388 389 if (!lock.is_locked() || lock.get_mutex() != s->vio.mutex.m_ptr) { 390 write_reschedule(nh, vc); 391 return; ```
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---