Project

General

Profile

[Abandoned] lighttpd v1.4.69 - Connection should not close immediately after processing HTTP2 requests.

Added by gautham_t about 1 year ago

We are using lighttpd with a custom plugin in an embedded system in RH 7.2 OS environment.

For HTTP2 support, we picked up lighttpd v1.4.67 (earlier we were using lighttpd v1.4.55).
In this week, found that lighttpd v1.4.69 has been released couple of months ago. So have
picked it up.

Over HTTP2, we would like to keep processing the requests and not close the connection,
immediately after the requests are processed. The client might send the FIN. Is it possible
for the server, not to respond with the FIN and close the connection?

The keep-alive config is present as follows:
server.max-keep-alive-idle = 10
server.max-keep-alive-requests = 100

During the request_reset callback, I am ensuring the following:
handler_ctx_free(p, hctx);
r->plugin_ctx[p->id] = NULL;
return HANDLER_GO_ON;

In the error.log, find the following:
2023-04-19 20:20:40: (connections.c.956) fd:70 id:3 state:resp-end
2023-04-19 20:20:40: (connections.c.956) fd:70 id:0 state:error
2023-04-19 20:20:40: (connections.c.170) shutdown for fd 70
2023-04-19 20:20:40: (connections.c.956) fd:70 id:0 state:close
2023-04-19 20:20:40: (connections.c.106) connection closed for fd 70
2023-04-19 20:20:40: (connections.c.956) fd:-1 id:0 state:connect

Would appreciate your assistance.

Regards,
Gautham

http2-2-get-requests.pcap (2.49 KB) http2-2-get-requests.pcap pcap of the 2 GET requests over HTTP2
curl-httpv2-get-cmd-output.txt (1.84 KB) curl-httpv2-get-cmd-output.txt cURL command output for the 2 GET requests over HTTP2
lighttpd.conf (1.23 KB) lighttpd.conf
errorLog-h2-2-get-requests.txt (22.4 KB) errorLog-h2-2-get-requests.txt error log snippet for the 2 GET requests over HTTP2

Replies (1)

RE: lighttpd v1.4.69 - Connection should not close immediately after processing HTTP2 requests. - Added by gstrauss about 1 year ago

lighttpd v1.4.69 - Connection should not close immediately after processing HTTP2 requests.

That is a statement, not a question. It is also incorrect and misleading, since that is not how lighttpd behaves with properly-written HTTP/2 clients, unless that specific behavior was requested using the HTTP/2 protocol (i.e. HTTP/2 GOAWAY), or configured in lighttpd.conf.

It sounds like you are asking a professional developer (me) to troubleshoot your company's custom module for you for free.
Please see my comment in https://redmine.lighttpd.net/boards/3/topics/10993?r=10999

If your company is offering a fair rate for my time, I can be very polite with non-developers and even people who have not read the already available documentation such as running lighttpd from build tree. (I doubt that modifying the build to rename all the modules with _2 suffix was a good use of your time.)

    (1-1/1)