[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libmicrohttpd] 0.9.67 regression
From: |
Christian Grothoff |
Subject: |
Re: [libmicrohttpd] 0.9.67 regression |
Date: |
Thu, 24 Oct 2019 18:01:09 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
Hi Tim,
Your one-liner just fixes the FTBFS and is itself correct.
The commit just before that broke everything is the one activating ng0's
big GSoC work which significantly changes the transmission logic (and
was thus prepared by many, many other patches before).
I do of course have a hunch as to where the issue might be (0 bytes body
means no send() for the body, after all. So that might prevent proper
uncorking, and that might trigger in a test suite that expects low
latency. But then again, your report says "no reply at all", not just
+200 ms. So strange.
Anyway, I would really appreciate being able to reproduce this one. You
could also point me to the wget code, I'd dig there myself, but it would
likely take a bit longer in that case ;-).
Happy hacking!
Christian
On 10/24/19 4:07 PM, Tim Rühsen wrote:
> Hi Christian,
>
> thanks for the test file - I'll try to copy our code into it.
>
> Meanwhile I bisected the git commits...
>
> The last functioning is
> 02a9ae28d64498266869b49b042905946df7ce66 "synt"
>
> The next one is not buildable here
> 379da4ce093bdc957b53b563aa1ae0c7c37c19ac "configure.ac: define a check
> for HAVE_SENDMSG"
>
> And this is the commit that broke our test suite
> 8ce24c2ae433fdf1ec125211d3622f3c27b56797 "_len -> _size"
>
> It's just a one-liner... I hope this helps :-)
>
> Regards, Tim
>
>
> On 10/24/19 12:48 PM, Christian Grothoff wrote:
>> Hi Tim,
>>
>> I cannot reproduce this. We do test for empty body in test_get.c, and
>> that test passes. I also wrote (and now pushed to master) a
>> minimal_example_empty.c, using both the 200 and 204 status codes. It
>> works for me on loopback as well as over the network, using both curl
>> and wget as clients.
>>
>> Maybe your issue is about a specific threading mode or something else
>> you are doing? Please modify the minimal_example_empty.c to emulate the
>> situation that is causing the issue.
>>
>> Thanks!
>>
>> Christian
>>
>> On 10/23/19 3:39 PM, Tim Rühsen wrote:
>>> Hi,
>>>
>>> with 0.9.67 some tests for Wget2 fail which were fine with 0.9.66. This
>>> is still reproducible with latest master.
>>>
>>> As it seems, a response with an empty body doesn't send a response any more.
>>>
>>> That means
>>>
>>> response = MHD_create_response_from_buffer(0, (void *) "",
>>> MHD_RESPMEM_PERSISTENT);
>>>
>>> doesn't work, while
>>>
>>> response = MHD_create_response_from_buffer(1, (void *) "x",
>>> MHD_RESPMEM_PERSISTENT);
>>>
>>> still generates a response.
>>>
>>> I tested this with MHD_HTTP_BAD_REQUEST, MHD_HTTP_OK and
>>> MHD_HTTP_NOT_FOUND used for MHD_queue_response().
>>>
>>>
>>> Regards, Tim
>>>
>>
>
signature.asc
Description: OpenPGP digital signature