On Fri, 29 Jun 2018 at 11:19, Milan Petruželka <petruze...@fg.cz> wrote:

> I've added more debug into h2s_close to see not only h2s state and flags
> but also h2c state and flags. My only way to reproduce the bug is to let
> Haproxy run until some of its FD falls into CLOSE_WAIT. After I catch some,
> I'll report back.
>

I just caught new CLOSE_WAIT.

... continuation of longer h2 connection ...

20180629.1347 mpeh2 fd25 h2c_stream_new - id00000117 st00 fl00000000
streams:0 -> 1
20180629.1347 000267eb:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id00000119 st00 fl00000000
streams:1 -> 2
20180629.1347 000267ec:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id0000011b st00 fl00000000
streams:2 -> 3
20180629.1347 000267ed:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id0000011d st00 fl00000000
streams:3 -> 4
20180629.1347 000267ee:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id0000011f st00 fl00000000
streams:4 -> 5
20180629.1347 000267ef:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id00000121 st00 fl00000000
streams:5 -> 6
20180629.1347 000267f0:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id00000123 st00 fl00000000
streams:6 -> 7
20180629.1347 000267f1:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id00000125 st00 fl00000000
streams:7 -> 8
20180629.1347 000267f2:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id00000127 st00 fl00000000
streams:8 -> 9
20180629.1347 000267f3:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
OK, we have some new h2 streams

20180629.1347 000267eb:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267ec:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267ed:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267ee:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267ef:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267f0:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267f1:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267f2:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267f3:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267eb:backend.srvrep[0019:0010]: HTTP/1.1 200 OK
20180629.1347 000267ef:backend.srvrep[0019:001b]: HTTP/1.1 200 OK
20180629.1347 000267f1:backend.srvrep[0019:001d]: HTTP/1.1 200 OK
20180629.1347 000267f3:backend.srvrep[0019:001f]: HTTP/1.1 200 OK
20180629.1347 000267f2:backend.srvrep[0019:adfd]: HTTP/1.1 200 OK
20180629.1347 000267f2:backend.srvcls[0019:adfd]
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000125 h2c_st02
h2c_fl00000000 streams:9
20180629.1347 mpeh2 fd25 h2s_close/real - id00000125 st04 fl00003001
streams:9 -> 8
20180629.1347 000267ee:backend.srvrep[0019:adfd]: HTTP/1.1 200 OK
20180629.1347 000267ee:backend.srvcls[0019:adfd]
20180629.1347 000267f0:backend.srvrep[0019:adfd]: HTTP/1.1 200 OK
20180629.1347 000267f0:backend.srvcls[0019:adfd]
20180629.1347 000267f4:frntend.clicls[0019:ffffffff]
20180629.1347 000267f4:frntend.closed[0019:ffffffff]
20180629.1347 mpeh2 fd25 h2s_destroy - id00000125 st07 fl00003003 streams:8
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000125 h2c_st02
h2c_fl00000000 streams:8
20180629.1347 mpeh2 fd25 h2s_close/dumy - id00000125 st07 fl00003003
streams:8 -> 8
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id0000011d h2c_st02
h2c_fl00000000 streams:8
20180629.1347 mpeh2 fd25 h2s_close/real - id0000011d st04 fl00003001
streams:8 -> 7
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000121 h2c_st02
h2c_fl00000000 streams:7
20180629.1347 mpeh2 fd25 h2s_close/real - id00000121 st04 fl00003001
streams:7 -> 6
20180629.1347 000267ed:backend.srvrep[0019:0017]: HTTP/1.1 200 OK
20180629.1347 000267ec:backend.srvrep[0019:adfd]: HTTP/1.1 200 OK
20180629.1347 000267ec:backend.srvcls[0019:adfd]
20180629.1347 000267f5:frntend.clicls[0019:ffffffff]
20180629.1347 000267f5:frntend.closed[0019:ffffffff]
20180629.1347 mpeh2 fd25 h2s_destroy - id0000011d st07 fl00003003 streams:6
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id0000011d h2c_st02
h2c_fl00000002 streams:6
20180629.1347 mpeh2 fd25 h2s_close/dumy - id0000011d st07 fl00003003
streams:6 -> 6
20180629.1347 000267f6:frntend.clicls[0019:ffffffff]
20180629.1347 000267f6:frntend.closed[0019:ffffffff]
20180629.1347 mpeh2 fd25 h2s_destroy - id00000121 st07 fl00003003 streams:6
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000121 h2c_st02
h2c_fl00000002 streams:6
20180629.1347 mpeh2 fd25 h2s_close/dumy - id00000121 st07 fl00003003
streams:6 -> 6
20180629.1347 mpeh2 fd25 h2c_stream_new - id00000129 st00 fl00000000
streams:6 -> 7
20180629.1347 000267f7:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 mpeh2 fd25 h2c_stream_new - id0000012b st00 fl00000000
streams:7 -> 8
20180629.1347 000267f8:frntend.accept(0006)=0019 from [some_ip:52750]
ALPN=h2
20180629.1347 000267f7:frntend.clireq[0019:ffffffff]: GET /some/uri HTTP/1.1
20180629.1347 000267f8:frntend.clireq[0019:ffffffff]: POST /some/uri
HTTP/1.1
20180629.1347 000267f7:backend.srvrep[0019:000f]: HTTP/1.1 200 OK
20180629.1347 000267f7:backend.srvcls[0019:adfd]
20180629.1347 000267f8:backend.srvrep[0019:0015]: HTTP/1.1 200 OK
20180629.1347 000267f8:backend.srvcls[0019:adfd]
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000119 h2c_st04
h2c_fl00000000 streams:8
20180629.1347 mpeh2 fd25 h2s_close/real - id00000119 st04 fl00003001
streams:8 -> 7
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000129 h2c_st04
h2c_fl00000000 streams:7
20180629.1347 mpeh2 fd25 h2s_close/real - id00000129 st04 fl00003001
streams:7 -> 6
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id0000012b h2c_st04
h2c_fl00000000 streams:6
20180629.1347 mpeh2 fd25 h2s_close/real - id0000012b st04 fl00003101
streams:6 -> 5
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000117 h2c_st04
h2c_fl00000000 streams:5
20180629.1347 mpeh2 fd25 h2s_close/real - id00000117 st04 fl00003001
streams:5 -> 4
20180629.1347 000267fc:frntend.clicls[0019:ffffffff]
20180629.1347 000267fc:frntend.closed[0019:ffffffff]
20180629.1347 mpeh2 fd25 h2s_destroy - id00000119 st07 fl00003003 streams:4
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000119 h2c_st04
h2c_fl00000002 streams:4
20180629.1347 mpeh2 fd25 h2s_close/dumy - id00000119 st07 fl00003003
streams:4 -> 4
20180629.1347 000267fd:frntend.clicls[0019:ffffffff]
20180629.1347 000267fd:frntend.closed[0019:ffffffff]
20180629.1347 mpeh2 fd25 h2s_destroy - id00000129 st07 fl00003003 streams:4
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000129 h2c_st04
h2c_fl00000002 streams:4
20180629.1347 mpeh2 fd25 h2s_close/dumy - id00000129 st07 fl00003003
streams:4 -> 4
20180629.1347 000267fe:frntend.clicls[0019:ffffffff]
20180629.1347 000267fe:frntend.closed[0019:ffffffff]
20180629.1347 mpeh2 fd25 h2s_destroy - id00000117 st07 fl00003003 streams:4
20180629.1347 mpeh2 fd25 h2s_close/h2c  - id00000117 h2c_st04
h2c_fl00000002 streams:4
20180629.1347 mpeh2 fd25 h2s_close/dumy - id00000117 st07 fl00003003
streams:4 -> 4
Everything OK until now.

20180629.1347 mpeh2 fd25 h2c_error - st04 fl00000002 err05
Just hit h2c_error - H2_ERR_STREAM_CLOSED

20180629.1347 000267ed:backend.srvcls[0019:adfd]
20180629.1347 000267ed:backend.clicls[0019:adfd]
20180629.1347 000267ed:backend.closed[0019:adfd]
20180629.1347 000267ef:backend.srvcls[0019:adfd]
20180629.1347 000267ef:backend.clicls[0019:adfd]
20180629.1347 000267ef:backend.closed[0019:adfd]
20180629.1347 000267f1:backend.srvcls[0019:adfd]
20180629.1347 000267f1:backend.clicls[0019:adfd]
20180629.1347 000267f1:backend.closed[0019:adfd]
20180629.1347 000267f3:backend.srvcls[0019:adfd]
20180629.1347 000267f3:backend.clicls[0019:adfd]
20180629.1347 000267f3:backend.closed[0019:adfd]
20180629.1347 000267f8:backend.clicls[0019:adfd]
20180629.1347 000267f8:backend.closed[0019:adfd]
20180629.1347 mpeh2 fd25 h2s_destroy - id0000012b st07 fl00003103 streams:4
Let's destroy remaining streams

20180629.1347 mpeh2 fd25 h2s_close/h2c  - id0000012b h2c_st07
h2c_fl00000100 streams:4
h2c is in H2_CS_ERROR2

20180629.1347 mpeh2 fd25 h2s_close/dumy - id0000012b st07 fl00003103
streams:4 -> 4
h2s already in H2_SS_CLOSED state

And that is all, no more logs for file descriptor 25.

Reply via email to