You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Clifford Jansen (Jira)" <ji...@apache.org> on 2020/06/04 14:45:00 UTC

[jira] [Commented] (PROTON-2239) epoll proactor race condition on connection teardown with heartbeats

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

Clifford Jansen commented on PROTON-2239:
-----------------------------------------

The memory corruption angle tended to muddy the waters and obscure the cause of the crash. Eventually some core dumps identified timers as being in the mix. On a hunch, the following reproducer was attempted and provided identical stack traces. Even knowing what to look for, it is necessary to tune the timing of the peer's close operation to maximize the opportunity for expose the bug.

> epoll proactor race condition on connection teardown with heartbeats
> --------------------------------------------------------------------
>
>                 Key: PROTON-2239
>                 URL: https://issues.apache.org/jira/browse/PROTON-2239
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: proton-c-0.28.0
>            Reporter: Clifford Jansen
>            Assignee: Clifford Jansen
>            Priority: Major
>         Attachments: xxx.c
>
>
> If a connection with heartbeats is closed at about the same time to when its idle timeout timer fires, it is possible to have two threads believing they are the last activity on the connection. Both threads proceed to free the same resources leading to memory corruption and various crashes.
> The existing code has guards for this exact situation, but there is an Achilles heel somewhere.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org