That changes looks good to me.

Dan

On Tue, Mar 15, 2016 at 3:30 PM, Christian Grothoff <[email protected]>
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