libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] [PATCH] epoll: add locking around eready DLL


From: Dan Dedrick
Subject: Re: [libmicrohttpd] [PATCH] epoll: add locking around eready DLL
Date: Tue, 15 Mar 2016 15:36:07 -0400

That changes looks good to me.

Dan

On Tue, Mar 15, 2016 at 3:30 PM, Christian Grothoff <address@hidden> wrote:
I just checked, and indeed there was (still) this inconsistency in the
code where with MHD_USE_THREAD_PER_CONNECTION we were (on some code
paths) manipulating the shared eready DLLs.  As we don't need it, the
answer is not to introduce locking, but to just not use the data
structure.

I've now fixed this in SVN 36931.

On 03/15/2016 08:17 PM, Dan Dedrick wrote:
> I actually did see a SIGSEGV in EDLL_insert() on "(head)->prevE =
> element;". tail was a valid pointer but the value for head was NULL. When I
> look at the coredump though I see that the head and tail are both valid
> pointers at this point and they point to a different connection pointer
> than the one we were looking to add. I can see that there are 2 threads in
> this process in MHD_handle_connection() for the same daemon. It might be
> worth noting that this is running with MHD_USE_THREAD_PER_CONNECTION where
> as far as I can see does share a daemon structure across multiple threads.
>
> Where this failed it was running 0.9.34 of libmicrohttpd. I'm going to dig
> in to see if I can see how this could get into this state.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]