Github user oknet commented on the issue:

    https://github.com/apache/trafficserver/pull/771
  
    @bryancall to review the codes of ClusterHandlerBase.cc 
    ```
     979         thread = eventProcessor.eventthread[ET_CLUSTER][id % 
num_of_cluster_threads];
     980         if (net_vc->thread == thread) {
     981           cluster_connect_state = CLCON_CONN_BIND_OK;
     982           break;
     983         } else {
     984           cluster_connect_state = 
ClusterHandler::CLCON_CONN_BIND_CLEAR;
     985         }
    ```
    
    From my understanding of the code, the codes from L1007 to L1033 means:
    1. the net_vc bind to unmatched thread
    2. It should unbind(L1012-1022) and then rebind(L1024-L1027) to another 
thread
    
    I think the unbind include remove vc from cop_list here.
    because the InactivityCop only push the vc->thread == this_ethread() into 
cop_list, but the vc->thread set to NULL in L1014.
    
    ```
        // Copy the list and use pop() to catch any closes caused by callbacks.
        forl_LL(UnixNetVConnection, vc, nh.open_list)
        {   
          if (vc->thread == this_ethread()) {
            nh.cop_list.push(vc);
          }   
        }
    ```



---
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 [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to