Re: List corruption on epoll_ctl(EPOLL_CTL_DEL) an AF_UNIX socket
From: Jason Baron <jbaron@akamai.com>
Date: 2015-10-01 02:40:07
Also in:
lkml
From: Jason Baron <jbaron@akamai.com>
Date: 2015-10-01 02:40:07
Also in:
lkml
On 09/30/2015 01:54 AM, Mathias Krause wrote:
On 29 September 2015 at 21:09, Jason Baron [off-list ref] wrote:quoted
However, if we call connect on socket 's', to connect to a new socket 'o2', we drop the reference on the original socket 'o'. Thus, we can now close socket 'o' without unregistering from epoll. Then, when we either close the ep or unregister 'o', we end up with this list corruption. Thus, this is not a race per se, but can be triggered sequentially.Sounds profound, but the reproducers calls connect only once per socket. So there is no "connect to a new socket", no? But w/e, see below.
Yes, but it can be reproduced this way too. It can also happen with a close() on the remote peer 'o', and a send to 'o' from 's', which the reproducer can do as pointed out Michal. The patch I sent deals with both cases. Thanks, -Jason