[ 
https://issues.apache.org/jira/browse/DISPATCH-46?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14006495#comment-14006495
 ] 

Ted Ross commented on DISPATCH-46:
----------------------------------

This is more complicated than it first appears.  It would seem that simply 
checking for the null connector out of listen would be sufficient.  This does 
fix the crash but it also causes the main loop to run at full-cpu.  First 
analysis suggests that the listening socket becomes always readable once the FD 
limit is reached and thread_process_listeners is then repeatedly called with 
nothing to do.


> dispatch crash when proton gets bad socket
> ------------------------------------------
>
>                 Key: DISPATCH-46
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-46
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 0.2
>            Reporter: michael goulish
>
> When I attempted to connect a lot of clients to a router, I exceeded my 
> process limit.  Then this happens:
>   1. proton gets an invalid socket, and returns a 0 from pn_listener_accept
>   2. dispatch function thread_process_listeners takes the null and starts 
> using it.
>   3. Some proton calls return silently after having gotten a null input.
>   4. dispatch passes the null to pn_transport_set_max_frame, which 
> dereferences it.
>   5. router blows core.  testing engineer panics.  hilarity ensues.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to