Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jetty HttpConnections not closed with SSE on Jetty 12.0.7+ when clients close the connection #32629

Closed
vakiovale opened this issue Apr 12, 2024 · 8 comments
Assignees
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Milestone

Comments

@vakiovale
Copy link

Description

Our Spring Boot 3.2.2 application experiences a memory leak leading to an OutOfMemoryError, with persistent org.eclipse.jetty.server.internal.HttpConnection objects found in the heap dump. This occurs when using Server-Sent Events (SSE) with Flux endpoints and is particularly evident after an EofException is thrown by Jetty after the client disconnects but the server attempts to continue emitting events. The issue has been replicated in a minimal project to demonstrate the behavior under specific configurations and versions.

Link to the example project on GitHub

The example application uses Spring Boot 3.2.4 (and Jetty 12.0.7) and has a Flux<ServerSentEvent> endpoint emitting heartbeats for a duration of 10 seconds.

Steps to Reproduce

  1. Clone the example project from the provided GitHub repository.
  2. Start the application using Java 17.0.9 on Spring Boot 3.2.4 with Jetty server 12.0.7.
  3. Use curl to connect to the SSE endpoint at localhost:9898/bug/hunt and then terminate the connection manually using Ctrl+C.
  4. Observe memory usage or take a heap dump to verify if HttpConnection instances remain in memory, especially after EofException occurs due to attempted heartbeat emissions.

Example

Doing this twice:

$ curl -v localhost:9898/bug/hunt
* processing: localhost:9898/bug/hunt
*   Trying [::1]:9898...
* Connected to localhost (::1) port 9898
> GET /bug/hunt HTTP/1.1
> Host: localhost:9898
> User-Agent: curl/8.2.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Fri, 12 Apr 2024 12:21:30 GMT
< Content-Type: text/event-stream
< Transfer-Encoding: chunked
< 
event:heartbeat: 0

event:heartbeat: 1

event:heartbeat: 2

^C

Taking a heap dump from the application (using IntelliJ IDEA's memory snapshot) and observing two instances of HttpConnection:
Screenshot from 2024-04-12 15-23-31

Expected Behavior

HttpConnection instances should be cleared from memory when the client disconnects, preventing any memory leaks.

Possible Solution

  • Downgrading to Jetty version 12.0.3 resolves the issue (works also when using Spring Boot 3.2.0)
  • Removing spring-boot-starter-web or setting the application to WebApplicationType.REACTIVE also mitigates the issue

Additional Context

  • We have observed the issue with Jetty versions 12.0.4, 12.0.7, and 12.0.8
  • We have not been able to reproduce this error outside of Spring Boot, and we are unsure of the underlying problem's source
  • Clarification Request: I would appreciate feedback on whether using spring-boot-starter-web together with reactive streams (like Flux) for SSE might be inherently problematic. We have simultaneously used spring-boot-starter-web and spring-boot-starter-webflux in our project, utilizing Flux<ServerSentEvent> endpoints without any issues. However, after upgrading our production environment from Spring Boot 3.0.5 to 3.2.2, we encountered this problem.

Thank you for your attention to this matter. I am more than happy to provide further details or additional information if needed.

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged or decided on label Apr 12, 2024
@bclozel bclozel transferred this issue from spring-projects/spring-boot Apr 12, 2024
@snicoll snicoll added the in: web Issues in web modules (web, webmvc, webflux, websocket) label Apr 13, 2024
@poutsma poutsma assigned poutsma and rstoyanchev and unassigned poutsma May 3, 2024
@bclozel bclozel self-assigned this May 3, 2024
@bclozel
Copy link
Member

bclozel commented May 3, 2024

Thanks for the sample @vakiovale - the fact that only changing the Jetty version pointed to a bug in Jetty, or a bug in our Jetty support.

I confirmed that:

  • I can reproduce the issue with Jetty 12.0.4+
  • I cannot reproduce the issue with Jetty 12.0.3
  • I cannot reproduce the issue when setting spring.main.web-application-type=reactive, so using WebFlux

Clarification Request: I would appreciate feedback on whether using spring-boot-starter-web together with reactive streams (like Flux) for SSE might be inherently problematic. We have simultaneously used spring-boot-starter-web and spring-boot-starter-webflux in our project, utilizing Flux endpoints without any issues. However, after upgrading our production environment from Spring Boot 3.0.5 to 3.2.2, we encountered this problem.

This is a perfectly valid use case. There are some runtime differences, but we do support this use case.

Debugging

I've tried running the latest 12.0.9-SNAPSHOT version of Jetty, because a connection leak was recently fixed.
For that, you'll need to update your POM with:

	<properties>
		<java.version>17</java.version>
		<jetty.version>12.0.9-SNAPSHOT</jetty.version>
	</properties>

	<repositories>
		<repository>
			<id>jetty-snapshots</id>
			<url>https://oss.sonatype.org/content/repositories/jetty-snapshots/</url>
			<snapshots><enabled>true</enabled></snapshots>
		</repository>
	</repositories>

When the connection is closed from the client side, we're seeing the following:

2024-05-03T16:44:53.910+02:00 DEBUG 44561 --- [bug-hunter] [}{0.0.0.0:9898}] org.eclipse.jetty.io.ManagedSelector     : Queued change lazy=false Accept@45ebfd9f[java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:9898 remote=/[0:0:0:0:0:0:0:1]:65070]] on oeji.ManagedSelector@6637a365{STARTED} id=1 keys=0 selected=0 updates=0
2024-05-03T16:44:53.911+02:00 DEBUG 44561 --- [bug-hunter] [}{0.0.0.0:9898}] org.eclipse.jetty.io.ManagedSelector     : Wakeup on submit oeji.ManagedSelector@6637a365{STARTED} id=1 keys=0 selected=0 updates=1
2024-05-03T16:44:53.911+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken with none selected
2024-05-03T16:44:53.911+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken up from select, 0/0/0 selected
2024-05-03T16:44:53.911+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 processing 0 keys, 1 updates
2024-05-03T16:44:53.911+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updateable 1
2024-05-03T16:44:53.911+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : update Accept@45ebfd9f[java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:9898 remote=/[0:0:0:0:0:0:0:1]:65070]]
2024-05-03T16:44:53.912+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.util.thread.QueuedThreadPool   : queue Accept@45ebfd9f[java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:9898 remote=/[0:0:0:0:0:0:0:1]:65070]] startThread=0
2024-05-03T16:44:53.912+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updates 0
2024-05-03T16:44:53.912+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 waiting with 1 keys
2024-05-03T16:44:53.912+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : run Accept@45ebfd9f[java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:9898 remote=/[0:0:0:0:0:0:0:1]:65070]] in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=1,r=-1,t=55277ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=0}]
2024-05-03T16:44:53.921+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.IdleTimeout         : Setting idle timeout 0 -> 30000 on SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=4/30000}{io=0/0,kio=0,kro=0}]->[<null>]
2024-05-03T16:44:53.921+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=4/30000}{io=0/0,kio=0,kro=0}]->[<null>] idle timeout check, elapsed: 4 ms, remaining: 29996 ms
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : New HTTP Connection HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=29/30000}{io=0/0,kio=0,kro=0}]->[<null>]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.ManagedSelector     : Queued change lazy=true org.eclipse.jetty.io.ManagedSelector$$Lambda/0x0000007001497500@598aef26 on oeji.ManagedSelector@6637a365{STARTED} id=1 keys=1 selected=0 updates=0
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.AbstractEndPoint    : onOpen SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=29/30000}{io=0/0,kio=0,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.eclipse.jetty.io.AbstractConnection    : onOpen HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=29/30000}{io=0/0,kio=0,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.eclipse.jetty.io.AbstractConnection    : fillInterested HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=29/30000}{io=0/0,kio=0,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.FillInterest        : interested FillInterest@267fb05c{ReadCallback@2802886a{HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=0/0,kio=0,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]}}
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.io.SelectableChannelEndPoint   : changeInterests p=false 0->1 for SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=0/1,kio=0,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.ManagedSelector     : Queued change lazy=false org.eclipse.jetty.io.SelectableChannelEndPoint$$Lambda/0x000000700148d2e0@2595b81f on oeji.ManagedSelector@6637a365{STARTED} id=1 keys=1 selected=0 updates=1
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.ManagedSelector     : Wakeup on submit oeji.ManagedSelector@6637a365{STARTED} id=1 keys=1 selected=0 updates=2
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.ManagedSelector     : Created SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=0/1,kio=0,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken with none selected
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken up from select, 0/0/1 selected
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 processing 0 keys, 2 updates
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : ran Accept@45ebfd9f[java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:9898 remote=/[0:0:0:0:0:0:0:1]:65070]] in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=1,r=-1,t=55243ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=0}]
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updateable 2
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : update org.eclipse.jetty.io.ManagedSelector$$Lambda/0x0000007001497500@598aef26
2024-05-03T16:44:53.946+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, no excess threads QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=2,r=-1,t=55243ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=0}]
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : update org.eclipse.jetty.io.SelectableChannelEndPoint$$Lambda/0x000000700148d2e0@2595b81f
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.io.SelectableChannelEndPoint   : Key interests updated 0 -> 1 on SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=1/1,kio=1,kro=0}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updates 0
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 waiting with 1 keys
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken up from select, 1/1/1 selected
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 processing 1 keys, 0 updates
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : selected 1 channel=java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:9898 remote=/[0:0:0:0:0:0:0:1]:65070], selector=sun.nio.ch.KQueueSelectorImpl@6e6cf552, interestOps=1, readyOps=1 SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=1/1,kio=1,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}] 
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.io.SelectableChannelEndPoint   : onSelected 1->0 r=true w=false for SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=1/0,kio=1,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.io.SelectableChannelEndPoint   : task SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=0/30000}{io=1/0,kio=1,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]:runFillable:BLOCKING
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=0} tryExecute AdaptiveExecutionStrategy@1213ffbc/SelectorProducer@68a305eb/PRODUCING/p=0/QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=2,r=-1,t=55242ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=0}][pc=0,pic=0,pec=0,epc=0]@2024-05-03T16:44:53.947544+02:00
2024-05-03T16:44:53.947+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=1} startReservedThread p=1
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.util.thread.QueuedThreadPool   : queue ReservedThread@41fdba88{PENDING,thread=null} startThread=0
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-42] o.e.jetty.util.thread.QueuedThreadPool   : run ReservedThread@41fdba88{PENDING,thread=null} in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=1,r=-1,t=55241ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=0/10,pending=1}]
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-42] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThread@41fdba88{PENDING,thread=Thread[#42,qtp874111547-42,5,main]} was=PENDING next=RESERVED size=0+1 capacity=10
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-42] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThread@41fdba88{RESERVED,thread=Thread[#42,qtp874111547-42,5,main]} waiting ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.j.u.t.s.AdaptiveExecutionStrategy    : consumeTask ss=PRODUCE_EXECUTE_CONSUME/false/BLOCKING t=SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=1/30000}{io=1/0,kio=1,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]:runFillable:BLOCKING AdaptiveExecutionStrategy@1213ffbc/SelectorProducer@68a305eb/PRODUCING/p=0/QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=1,r=-1,t=55241ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}][pc=0,pic=0,pec=0,epc=0]@2024-05-03T16:44:53.948286+02:00
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.util.thread.QueuedThreadPool   : queue SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=1/30000}{io=1/0,kio=1,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]:runFillable:BLOCKING startThread=0
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updateable 0
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updates 0
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : run SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=1/30000}{io=1/0,kio=1,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]:runFillable:BLOCKING in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=0,r=-1,t=55241ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}]
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] o.e.jetty.io.SelectableChannelEndPoint   : Key interests updated 1 -> 0 on SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 waiting with 1 keys
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.FillInterest        : fillable FillInterest@267fb05c{ReadCallback@2802886a{HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=FI,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}]}}
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : >>onFillable enter HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}] HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null} null
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : onFillable fill and parse HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}] HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null} null
2024-05-03T16:44:53.948+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.util.ConcurrentPool    : returning reserved entry ConcurrentEntry@689c239f{terminated=false,multiplex=-1,pooled=null} for ConcurrentPool@3ff9198b[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:53.949+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.util.ConcurrentPool    : enabled ConcurrentEntry@689c239f{terminated=false,multiplex=1,pooled=Buffer@1363fa63[rc=1,DirectByteBuffer@7018a768[p=0,l=0,c=8192,r=0]={<<<>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@3ff9198b[inUse=1,size=1,max=256,terminated=false]
2024-05-03T16:44:53.950+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.io.SocketChannelEndPoint       : filled 85 DirectByteBuffer@7018a768[p=0,l=85,c=8192,r=85]={<<<GET /bug/hunt HTTP/1.1\r\nH.../8.4.0\r\nAccept: */*\r\n\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}
2024-05-03T16:44:53.950+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}] filled 85 Buffer@1363fa63[rc=1,DirectByteBuffer@7018a768[p=0,l=85,c=8192,r=85]={<<<GET /bug/hunt HTTP/1.1\r\nH.../8.4.0\r\nAccept: */*\r\n\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:53.950+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=START,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}] parse Buffer@1363fa63[rc=1,DirectByteBuffer@7018a768[p=0,l=85,c=8192,r=85]={<<<GET /bug/hunt HTTP/1.1\r\nH.../8.4.0\r\nAccept: */*\r\n\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:53.950+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : parseNext s=START DirectByteBuffer@7018a768[p=0,l=85,c=8192,r=85]={<<<GET /bug/hunt HTTP/1.1\r\nH.../8.4.0\r\nAccept: */*\r\n\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}
2024-05-03T16:44:53.950+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : START --> SPACE1(GET)
2024-05-03T16:44:53.951+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : SPACE1 --> URI
2024-05-03T16:44:53.951+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : URI --> HEADER
2024-05-03T16:44:53.953+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER:FIELD --> IN_VALUE
2024-05-03T16:44:53.953+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER:IN_VALUE --> FIELD(Host: localhost:9898)
2024-05-03T16:44:53.953+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : parsedHeader(Host: localhost:9898) header=Host, headerString=[Host], valueString=[localhost:9898]
2024-05-03T16:44:53.954+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER:FIELD --> IN_VALUE
2024-05-03T16:44:53.954+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER:IN_VALUE --> FIELD(User-Agent: curl/8.4.0)
2024-05-03T16:44:53.954+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : parsedHeader(User-Agent: curl/8.4.0) header=User-Agent, headerString=[User-Agent], valueString=[curl/8.4.0]
2024-05-03T16:44:53.954+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER:FIELD --> IN_VALUE
2024-05-03T16:44:53.954+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER:IN_VALUE --> FIELD(Accept: */*: */*)
2024-05-03T16:44:53.954+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : parsedHeader(Accept: */*) header=Accept, headerString=[Accept], valueString=[*/*]
2024-05-03T16:44:53.955+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpChannelState   : onRequest GET{u=http://localhost:9898/bug/hunt,HTTP/1.1,h=3,cl=-1,p=null} HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=null}
2024-05-03T16:44:53.957+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.http.HttpParser        : HEADER --> CONTENT
2024-05-03T16:44:53.957+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=7/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] parsed true HttpParser{s=CONTENT,0 of -1}
2024-05-03T16:44:53.957+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : releaseRequestBuffer HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=7/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:53.957+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@689c239f{terminated=false,multiplex=0,pooled=Buffer@1363fa63[rc=0,DirectByteBuffer@7018a768[p=0,l=0,c=8192,r=0]={<<<>>>GET /bug/...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@3ff9198b[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:53.957+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : HANDLE GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1 HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=7/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=false, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:53.958+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpChannelState   : invoking handler in HttpChannelState@60485cab{handling=Thread[#41,qtp874111547-41,5,main], handled=false, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:53.969+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.eclipse.jetty.ee10.servlet.HttpInput   : reopen HttpInput@744206428 cs=ServletChannelState@44fc16df{s=IDLE rs=BLOCKING os=IDLE is=IDLE awp=false se=false i=true al=0} cp=org.eclipse.jetty.ee10.servlet.BlockingContentProducer@726a7d2f eof=false
2024-05-03T16:44:53.971+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.e.servlet.BlockingContentProducer  : reopening org.eclipse.jetty.ee10.servlet.BlockingContentProducer@726a7d2f
2024-05-03T16:44:53.971+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.ee10.servlet.AsyncContentProducer  : reopening AsyncContentProducer@79fe458b[c=null]
2024-05-03T16:44:53.971+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletChannel    : associate ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=IDLE rs=BLOCKING os=IDLE is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=http://localhost:9898/bug/hunt,age=15} -> org.eclipse.jetty.ee10.servlet.ServletContextRequest@316f7d18 : ServletChannelState@44fc16df{s=IDLE rs=BLOCKING os=IDLE is=IDLE awp=false se=false i=true al=0}
2024-05-03T16:44:53.973+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.security.SecurityHandler       : getConstraint(/bug/hunt) -> null
2024-05-03T16:44:53.973+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.security.SecurityHandler       : constraintAuthorization ALLOWED
2024-05-03T16:44:53.973+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.security.SecurityHandler       : AuthenticationState null
2024-05-03T16:44:53.974+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletHandler    : handle osbwej.JettyEmbeddedWebAppContext$JettyEmbeddedServletHandler@78054f54{STARTED} org.eclipse.jetty.ee10.servlet.ServletContextRequest@316f7d18 org.eclipse.jetty.ee10.servlet.ServletContextResponse@20d2fb77 org.eclipse.jetty.server.internal.HttpChannelState$ChannelCallback@1754c3d3
2024-05-03T16:44:53.974+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletChannel    : associate ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=http://localhost:9898/bug/hunt,age=18} -> org.eclipse.jetty.ee10.servlet.ServletContextRequest@316f7d18,org.eclipse.jetty.ee10.servlet.ServletContextResponse@20d2fb77,org.eclipse.jetty.server.internal.HttpChannelState$ChannelCallback@1754c3d3
2024-05-03T16:44:53.974+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletChannel    : handle http://localhost:9898/bug/hunt ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=http://localhost:9898/bug/hunt,age=18} 
2024-05-03T16:44:53.974+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.ee10.servlet.ServletChannelState   : handling ServletChannelState@44fc16df{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0}
2024-05-03T16:44:53.974+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletChannel    : action DISPATCH ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=HANDLING,uri=http://localhost:9898/bug/hunt,age=18}
2024-05-03T16:44:53.974+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletHandler    : osbwej.JettyEmbeddedWebAppContext$JettyEmbeddedServletHandler@78054f54{STARTED} cached filter chain for REQUEST: Chain@3b207016(characterEncodingFilter==org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter@6242ae3b{inst=true,async=true,src=JAKARTA_API:<null>})->Chain@314927c3(formContentFilter==org.springframework.boot.web.servlet.filter.OrderedFormContentFilter@4860827a{inst=true,async=true,src=JAKARTA_API:<null>})->Chain@64cbc9fc(requestContextFilter==org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter@404db674{inst=true,async=true,src=JAKARTA_API:<null>})->Chain@549d9b6a(org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter==org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter@553bc36c{inst=true,async=true,src=JAKARTA_API:<null>})->ChainEnd@6c85f12f(dispatcherServlet==org.springframework.web.servlet.DispatcherServlet@7ef5559e{jsp=null,order=-1,inst=true,async=true,src=JAKARTA_API:<null>,STARTED})
2024-05-03T16:44:53.975+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletHandler    : chain=Chain@3b207016(characterEncodingFilter==org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter@6242ae3b{inst=true,async=true,src=JAKARTA_API:<null>})->Chain@314927c3(formContentFilter==org.springframework.boot.web.servlet.filter.OrderedFormContentFilter@4860827a{inst=true,async=true,src=JAKARTA_API:<null>})->Chain@64cbc9fc(requestContextFilter==org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter@404db674{inst=true,async=true,src=JAKARTA_API:<null>})->Chain@549d9b6a(org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter==org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter@553bc36c{inst=true,async=true,src=JAKARTA_API:<null>})->ChainEnd@6c85f12f(dispatcherServlet==org.springframework.web.servlet.DispatcherServlet@7ef5559e{jsp=null,order=-1,inst=true,async=true,src=JAKARTA_API:<null>,STARTED})
2024-05-03T16:44:53.976+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.w.c.s.internal.AbstractHandshaker  : not upgraded: unsupported version null org.eclipse.jetty.ee10.servlet.ServletContextRequest@316f7d18
2024-05-03T16:44:53.976+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.w.c.s.internal.AbstractHandshaker  : not upgraded method!=GET org.eclipse.jetty.ee10.servlet.ServletContextRequest@316f7d18
2024-05-03T16:44:53.983+02:00 TRACE 44561 --- [bug-hunter] [qtp874111547-41] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.example.bughunter.BugHunterController#bugHunt()
2024-05-03T16:44:54.003+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.ee10.servlet.ServletChannelState   : startAsync ServletChannelState@44fc16df{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0}
2024-05-03T16:44:54.003+02:00 TRACE 44561 --- [bug-hunter] [qtp874111547-41] s.w.s.m.m.a.RequestMappingHandlerAdapter : Applying default cacheSeconds=-1
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.ee10.servlet.ServletChannelState   : unhandle ServletChannelState@44fc16df{s=HANDLING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=true al=1}
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.ee10.servlet.ServletChannelState   : nextAction(false) WAIT ServletChannelState@44fc16df{s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1}
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletChannel    : action WAIT ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1},r=0,c=false/false,a=WAITING,uri=http://localhost:9898/bug/hunt,age=48}
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.ee10.servlet.ServletChannel    : !handle WAIT ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1},r=0,c=false/false,a=WAITING,uri=http://localhost:9898/bug/hunt,age=48}
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpChannelState   : handler invoked: completeStream=false failure=null callbackCompleted=false HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpChannelState   : stream=org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper@104b2b24, failure=null, callbackCompleted=false, completeStream=false
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : request !complete GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1 HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=54/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.j.server.internal.HttpConnection     : <<onFillable exit HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=54/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1} null
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : ran SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=-,to=54/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=START}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]:runFillable:BLOCKING in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=0,r=-1,t=55185ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}]
2024-05-03T16:44:54.004+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, no excess threads QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=1,r=-1,t=55185ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}]
2024-05-03T16:44:55.014+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@284cecf9[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 0\n\n>>>})
2024-05-03T16:44:55.015+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.util.ConcurrentPool    : returning reserved entry ConcurrentEntry@31d74d69{terminated=false,multiplex=-1,pooled=null} for ConcurrentPool@39eb8bfa[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:55.015+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.util.ConcurrentPool    : enabled ConcurrentEntry@31d74d69{terminated=false,multiplex=1,pooled=Buffer@1161cf6a[rc=1,DirectByteBuffer@5e85d29b[p=0,l=0,c=32768,r=0]={<<<>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@39eb8bfa[inUse=1,size=1,max=256,terminated=false]
2024-05-03T16:44:55.015+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@1161cf6a[rc=1,DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 0\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:55.017+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.s.internal.ResponseHttpFields      : Date: Fri, 03 May 2024 14:44:53 GMT
Content-Type: text/event-stream

 committed
2024-05-03T16:44:55.017+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 0\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:55.018+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpConnection     : generate: NEED_HEADER for SendCallback@3e8c47bd[PROCESSING][i=HTTP/1.1{s=200,h=2,cl=-1},cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@START
2024-05-03T16:44:55.018+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.util.ConcurrentPool    : returning entry ConcurrentEntry@689c239f{terminated=false,multiplex=1,pooled=Buffer@1363fa63[rc=0,DirectByteBuffer@7018a768[p=0,l=0,c=8192,r=0]={<<<>>>GET /bug/...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@3ff9198b[inUse=1,size=1,max=256,terminated=false]
2024-05-03T16:44:55.018+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.http.HttpGenerator     : generateHeaders HTTP/1.1{s=200,h=2,cl=-1} last=false content=DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 0\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}
2024-05-03T16:44:55.018+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.http.HttpGenerator     : Date: Fri, 03 May 2024 14:44:53 GMT
Content-Type: text/event-stream


2024-05-03T16:44:55.019+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.http.HttpGenerator     : endOfContent CHUNKED_CONTENT content-Length -1
2024-05-03T16:44:55.019+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@3e8c47bd[PROCESSING][i=HTTP/1.1{s=200,h=2,cl=-1},cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] ([p=0,l=121,c=8192,r=121],[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:55.019+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@41a42b53{IDLE}->null [DirectByteBuffer@7018a768[p=0,l=121,c=8192,r=121]={<<<HTTP/1.1 200 OK\r\nDate: Fr...coding: chunked\r\n\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 0\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:55.019+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{WRITING}->null:IDLE-->WRITING
2024-05-03T16:44:55.022+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.io.SocketChannelEndPoint       : flushed 141 SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=W,to=1072/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:55.022+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.io.WriteFlusher        : Flushed=true written=141 remaining=0 WriteFlusher@41a42b53{WRITING}->null
2024-05-03T16:44:55.022+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{IDLE}->null:WRITING-->IDLE
2024-05-03T16:44:55.022+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpConnection     : generate: DONE for SendCallback@3e8c47bd[PROCESSING][i=HTTP/1.1{s=200,h=2,cl=-1},cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] ([p=121,l=121,c=8192,r=0],[p=20,l=20,c=32768,r=0],false)@COMMITTED
2024-05-03T16:44:55.022+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@689c239f{terminated=false,multiplex=0,pooled=Buffer@1363fa63[rc=0,DirectByteBuffer@7018a768[p=0,l=0,c=8192,r=0]={<<<>>>HTTP/1.1 ...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@3ff9198b[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:55.022+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@27094b87{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@27094b87{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@27094b87{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@45f0094f{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@45f0094f{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@45f0094f{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:55.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:55.025+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:55.025+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@3d850bb5{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:55.025+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@3d850bb5{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@3d850bb5{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:55.025+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:55.025+02:00 DEBUG 44561 --- [bug-hunter] [         task-1] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:56.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@5578a432[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 1\n\n>>>})
2024-05-03T16:44:56.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@1161cf6a[rc=1,DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 1\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 1\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpConnection     : generate: NEED_CHUNK for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.util.ConcurrentPool    : returning reserved entry ConcurrentEntry@51472a45{terminated=false,multiplex=-1,pooled=null} for ConcurrentPool@1445ae09[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.util.ConcurrentPool    : enabled ConcurrentEntry@51472a45{terminated=false,multiplex=1,pooled=Buffer@35d2f35d[rc=1,DirectByteBuffer@251b98e1[p=0,l=0,c=4096,r=0]={<<<>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1445ae09[inUse=1,size=1,max=256,terminated=false]
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@41a42b53{IDLE}->null [DirectByteBuffer@251b98e1[p=0,l=6,c=4096,r=6]={<<<\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 1\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:56.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{WRITING}->null:IDLE-->WRITING
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.io.SocketChannelEndPoint       : flushed 26 SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=W,to=986/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.io.WriteFlusher        : Flushed=true written=26 remaining=0 WriteFlusher@41a42b53{WRITING}->null
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{IDLE}->null:WRITING-->IDLE
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpConnection     : generate: DONE for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=20,l=20,c=32768,r=0],false)@COMMITTED
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@51472a45{terminated=false,multiplex=0,pooled=Buffer@35d2f35d[rc=0,DirectByteBuffer@251b98e1[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1445ae09[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@4d669b05{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:56.009+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@4d669b05{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@4d669b05{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@746a5146{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@746a5146{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@746a5146{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@56801c8d{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@56801c8d{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@56801c8d{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:56.010+02:00 DEBUG 44561 --- [bug-hunter] [         task-2] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:57.005+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@26ad1ba1[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 2\n\n>>>})
2024-05-03T16:44:57.005+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@1161cf6a[rc=1,DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 2\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:57.005+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 2\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:57.005+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : generate: NEED_CHUNK for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:57.005+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] org.eclipse.jetty.util.ConcurrentPool    : returning entry ConcurrentEntry@51472a45{terminated=false,multiplex=1,pooled=Buffer@35d2f35d[rc=0,DirectByteBuffer@251b98e1[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1445ae09[inUse=1,size=1,max=256,terminated=false]
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@41a42b53{IDLE}->null [DirectByteBuffer@251b98e1[p=0,l=6,c=4096,r=6]={<<<\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 2\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{WRITING}->null:IDLE-->WRITING
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.io.SocketChannelEndPoint       : flushed 26 SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=W,to=997/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=false, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : Flushed=true written=26 remaining=0 WriteFlusher@41a42b53{WRITING}->null
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{IDLE}->null:WRITING-->IDLE
2024-05-03T16:44:57.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : generate: DONE for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=20,l=20,c=32768,r=0],false)@COMMITTED
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@51472a45{terminated=false,multiplex=0,pooled=Buffer@35d2f35d[rc=0,DirectByteBuffer@251b98e1[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1445ae09[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@22928bac{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@22928bac{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@22928bac{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:57.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@6790119a{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@6790119a{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@6790119a{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@188361b4{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@188361b4{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@188361b4{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:57.008+02:00 DEBUG 44561 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-03T16:44:58.005+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@1896ca7c[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 3\n\n>>>})
2024-05-03T16:44:58.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@1161cf6a[rc=1,DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:58.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-03T16:44:58.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : generate: NEED_CHUNK for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:58.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : returning entry ConcurrentEntry@51472a45{terminated=false,multiplex=1,pooled=Buffer@35d2f35d[rc=0,DirectByteBuffer@251b98e1[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1445ae09[inUse=1,size=1,max=256,terminated=false]
2024-05-03T16:44:58.006+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@3e8c47bd[PROCESSING][i=null,cb=ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-03T16:44:58.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@41a42b53{IDLE}->null [DirectByteBuffer@251b98e1[p=0,l=6,c=4096,r=6]={<<<\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@5e85d29b[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-03T16:44:58.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{WRITING}->null:IDLE-->WRITING
2024-05-03T16:44:58.007+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : write exception

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.020+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41a42b53{FAILED}->null:WRITING-->FAILED
2024-05-03T16:44:58.020+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@51472a45{terminated=false,multiplex=0,pooled=Buffer@35d2f35d[rc=0,DirectByteBuffer@251b98e1[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1445ae09[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:58.021+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : write failed ChannelResponse@61022435{200,GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@6687c1ce{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1339) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:58.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@6687c1ce{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1339) -> null} of HttpChannelSerializedInvoker@60f30fd3{tail=Link@6687c1ce{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1339) -> null}}
2024-05-03T16:44:58.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@60f30fd3{tail=null}
2024-05-03T16:44:58.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@31d74d69{terminated=false,multiplex=0,pooled=Buffer@1161cf6a[rc=0,DirectByteBuffer@5e85d29b[p=0,l=0,c=32768,r=0]={<<<>>>event:hea...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@39eb8bfa[inUse=0,size=1,max=256,terminated=false]
2024-05-03T16:44:58.024+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,org.eclipse.jetty.io.EofException) s=OPEN,api=BLOCKED,sc=false,e=null->s=CLOSED,api=BLOCKING,sc=false,e=null c=null cb=null w=false

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.026+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.jetty.ee10.servlet.ServletChannel    : abort ServletChannel@4b5c22c9{s=ServletChannelState@44fc16df{s=WAITING rs=ASYNC os=ABORTED is=IDLE awp=false se=false i=false al=1},r=0,c=false/false,a=WAITING,uri=http://localhost:9898/bug/hunt,age=4072}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.028+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=F,to=1021/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=true, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] parse null
2024-05-03T16:44:58.028+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.http.HttpParser        : parseNext s=CONTENT HeapByteBuffer@28482ab2[p=0,l=0,c=0,r=0]={<<<>>>}
2024-05-03T16:44:58.028+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.http.HttpParser        : CONTENT --> CONTENT_END(0)
2024-05-03T16:44:58.028+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.http.HttpParser        : CONTENT_END --> END
2024-05-03T16:44:58.028+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=F,to=1021/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=END,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=SENDING, completed=true, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}] parsed false HttpParser{s=END,0 of -1}
2024-05-03T16:44:58.028+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : failed stream.isCommitted=true, response.isCommitted=true org.eclipse.jetty.server.internal.HttpChannelState$ChannelCallback@1754c3d3
2024-05-03T16:44:58.029+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.session.AbstractSessionManager     : Complete called with session null
2024-05-03T16:44:58.029+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : aborting

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.031+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.AbstractEndPoint    : close(org.eclipse.jetty.io.EofException) SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,OPEN,fill=-,flush=F,to=1025/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=END,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:58.032+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.jetty.io.SelectableChannelEndPoint   : doClose SocketChannelEndPoint@5780462d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:65070,CLOSED,fill=-,flush=F,to=1025/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2e3c4816[p=HttpParser{s=END,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:58.035+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : ignored: org.eclipse.jetty.io.EofException WriteFlusher@41a42b53{FAILED}->null
2024-05-03T16:44:58.035+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.FillInterest        : onFail FillInterest@267fb05c{null}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.037+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.ManagedSelector     : Wakeup oeji.ManagedSelector@6637a365{STARTED} id=1 keys=1 selected=0 updates=0
2024-05-03T16:44:58.037+02:00 DEBUG 44561 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.QueuedThreadPool   : queue org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@949856a startThread=0
2024-05-03T16:44:58.037+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : run org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@949856a in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=0,r=-1,t=51152ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}]
2024-05-03T16:44:58.038+02:00 TRACE 44561 --- [bug-hunter] [         task-4] o.s.w.s.m.m.a.ReactiveTypeHandler        : Send for SseEmitter@7efa8676 failed: org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: null
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken with none selected
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 woken up from select, 0/0/0 selected
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 processing 0 keys, 0 updates
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updateable 0
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] org.eclipse.jetty.io.ManagedSelector     : Destroyed SocketChannelEndPoint@5780462d[{l=null,r=null,CLOSED,fill=-,flush=F,to=1031/30000}{io=0/0,kio=-1,kro=-1}]->[HttpConnection@2e3c4816[p=HttpParser{s=END,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : updates 0
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.KQueueSelectorImpl@6e6cf552 waiting with 0 keys
2024-05-03T16:44:58.038+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.eclipse.jetty.io.AbstractConnection    : onClose HttpConnection@2e3c4816::SocketChannelEndPoint@5780462d[{l=null,r=null,CLOSED,fill=-,flush=F,to=1032/30000}{io=0/0,kio=-1,kro=-1}]->[HttpConnection@2e3c4816[p=HttpParser{s=END,0 of -1},g=HttpGenerator@2e647fda{s=COMMITTED}]=>HttpChannelState@60485cab{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@316f7d18 http://localhost:9898/bug/hunt HTTP/1.1}]

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-03T16:44:58.039+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@949856a in QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=0,r=-1,t=51150ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}]
2024-05-03T16:44:58.039+02:00 DEBUG 44561 --- [bug-hunter] [qtp874111547-41] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, no excess threads QueuedThreadPool[qtp874111547]@3419e23b{STARTED,8<=8<=200,i=1,r=-1,t=51150ms,q=0}[ReservedThreadExecutor@1c8f6a90{reserved=1/10,pending=0}]

Nothing looks suspicious to me, as the EofException is thrown when we try to write to the response; this is the standard way of finding out a client is gone in Servlet environments. Our ReactiveTypeHandler is failing and cancelling the subscription, as expected. Looking at the lingering connection objects, I don't see any Spring class being in a reference path:

image

Later, connections are reclaimed when the idle timeouts are triggered:

2024-05-03T16:12:01.871+02:00 DEBUG 41605 --- [bug-hunter] [qtp426052262-41] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.server.internal.HttpChannelState$$Lambda/0x000000f801518650@62741fdc in QueuedThreadPool[qtp426052262]@19650aa6{STARTED,8<=8<=200,i=0,r=-1,t=-678288ms,q=0}[ReservedThreadExecutor@3c98781a{capacity=16,threads=ThreadIdPool@fe34b86{capacity=16}}]
2024-05-03T16:12:01.871+02:00 DEBUG 41605 --- [bug-hunter] [qtp426052262-41] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, no excess threads QueuedThreadPool[qtp426052262]@19650aa6{STARTED,8<=8<=200,i=1,r=-1,t=-678288ms,q=0}[ReservedThreadExecutor@3c98781a{capacity=16,threads=ThreadIdPool@fe34b86{capacity=16}}]
2024-05-03T16:12:31.876+02:00 DEBUG 41605 --- [bug-hunter] [ler-358847552-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@2d7c691d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:64097,OPEN,fill=-,flush=F,to=30005/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@20c43ab2[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@ae23f78{s=COMMITTED}]=>HttpChannelState@4fd13d75{handling=null, handled=true, send=SENDING, completed=false, request=GET@399f57ac http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout check, elapsed: 30005 ms, remaining: -5 ms
2024-05-03T16:12:31.878+02:00 DEBUG 41605 --- [bug-hunter] [ler-358847552-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@2d7c691d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:64097,OPEN,fill=-,flush=F,to=30007/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@20c43ab2[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@ae23f78{s=COMMITTED}]=>HttpChannelState@4fd13d75{handling=null, handled=true, send=SENDING, completed=false, request=GET@399f57ac http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout expired

java.util.concurrent.TimeoutException: Idle timeout expired: 30005/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.9-20240503.000747-31.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.9-20240503.000747-31.jar:12.0.9-SNAPSHOT]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]

In short, I don't have a clear understanding of the behavior difference right now. Maybe we should try to create a repro case that doesn't involve the Spring MVC stack.

@bclozel
Copy link
Member

bclozel commented May 6, 2024

I managed to track down the behavior difference between Jetty 12.0.3 - 12.0.4+ with Spring MVC and SSE events.

When Spring MVC produces SSE events asynchronously, events are written to the Servlet response and flushed.
When the client closes the connection, the error is noticed by the server while flushing the response.

With Jetty 12.0.3, this would be caught here and the HttpConnection would be closed as a result (with org.eclipse.jetty.server.internal.HttpConnection#onClose).

With Jetty 12.0.4+, org.eclipse.jetty.server.internal.HttpConnection#onClose is not called anymore when a flush call fails in async mode - that's what happens at least with the sample shared above by @vakiovale. This means the connection stays around until it's collected by a timeout handler. So this can cause a memory leak if the idle timeout is high enough.

Unfortunately, I could not reproduce this reliably with a minimal Jetty sample and I'm not familiar enough with Jetty's connection lifecycle. I'm sorry to ping you here @gregw, but do you have any insight or advice here that could help me craft a reproducer for Jetty? Or is this a bug in Spring MVC in your opinion?

I did debug the repro app with Jetty 12.0.3 and the stacktrace was the following up to the line that aborted the servlet channel :

onWriteComplete:248, HttpOutput (org.eclipse.jetty.ee10.servlet)
flush:680, HttpOutput (org.eclipse.jetty.ee10.servlet)
flush:389, StandardServletAsyncWebRequest$LifecycleServletOutputStream (org.springframework.web.context.request.async)
copy:135, StreamUtils (org.springframework.util)
writeInternal:128, StringHttpMessageConverter (org.springframework.http.converter)
writeInternal:44, StringHttpMessageConverter (org.springframework.http.converter)
write:235, AbstractHttpMessageConverter (org.springframework.http.converter)
sendInternal:221, ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler (org.springframework.web.servlet.mvc.method.annotation)
send:212, ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler (org.springframework.web.servlet.mvc.method.annotation)
sendInternal:234, ResponseBodyEmitter (org.springframework.web.servlet.mvc.method.annotation)
send:225, ResponseBodyEmitter (org.springframework.web.servlet.mvc.method.annotation)
send:135, SseEmitter (org.springframework.web.servlet.mvc.method.annotation)
send:388, ReactiveTypeHandler$SseEmitterSubscriber (org.springframework.web.servlet.mvc.method.annotation)
run:332, ReactiveTypeHandler$AbstractEmitterSubscriber (org.springframework.web.servlet.mvc.method.annotation)
runWorker:1144, ThreadPoolExecutor (java.util.concurrent)
run:642, ThreadPoolExecutor$Worker (java.util.concurrent)
runWith:1596, Thread (java.lang)
run:1583, Thread (java.lang)

@vakiovale
Copy link
Author

Hey, thanks @bclozel for your help with this issue.

With Jetty 12.0.4+, org.eclipse.jetty.server.internal.HttpConnection#onClose is not called anymore when a flush call fails in async mode

We also observed this same behavior.

This means the connection stays around until it's collected by a timeout handler. So this can cause a memory leak if the idle timeout is high enough.

This observation made me question whether I had made an error, as I did not notice any cleanup activity from the timeout handler. Below, I can provide examples of what I observed. It seems that the timeout handler continuously loops (every 30 seconds for each client cancellation), yet the HttpConnection objects are not being cleared from memory.

Test runs

My test scenario for versions 12.0.3, 12.0.7, and 12.0.9-SNAPSHOT involved the following steps:

  1. Execute curl -v localhost:9898/bug/hunt
  2. Press CTRL+C shortly after
  3. Take a screenshot of the memory dump
  4. Wait for any possible timeouts
  5. Take another screenshot of the memory dump

Test with Jetty 12.0.3

After cancelling request:

2024-05-07T10:02:47.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-2] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@1cb44684{200,GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:02:47.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@6a15ed6c{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@66aa3025{tail=null}
2024-05-07T10:02:47.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@6a15ed6c{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null} of HttpChannelSerializedInvoker@66aa3025{tail=Link@6a15ed6c{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1311) -> null}}
2024-05-07T10:02:47.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-2] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@66aa3025{tail=null}
2024-05-07T10:02:47.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-2] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-07T10:02:48.412+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@408be787[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 2\n\n>>>})
2024-05-07T10:02:48.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@dc58b8c[rc=1,DirectByteBuffer@93fdefc[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 2\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-07T10:02:48.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@93fdefc[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 2\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@1cb44684{200,GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:02:48.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : generate: NEED_CHUNK for SendCallback@3539b1c5[PROCESSING][i=null,cb=ChannelResponse@1cb44684{200,GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-07T10:02:48.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.util.ConcurrentPool    : returning entry ConcurrentEntry@433c6695{terminated=false,multiplex=1,pooled=Buffer@6f7c6e91[rc=0,DirectByteBuffer@3772a751[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@63ee096[inUse=1,size=1,max=256,terminated=false]
2024-05-07T10:02:48.413+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@3539b1c5[PROCESSING][i=null,cb=ChannelResponse@1cb44684{200,GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-07T10:02:48.414+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@41922c15{IDLE}->null [DirectByteBuffer@3772a751[p=0,l=6,c=4096,r=6]={<<<\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@93fdefc[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 2\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-07T10:02:48.414+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41922c15{WRITING}->null:IDLE-->WRITING
2024-05-07T10:02:48.414+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : write exception

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.421+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@41922c15{FAILED}->null:WRITING-->FAILED
2024-05-07T10:02:48.421+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@433c6695{terminated=false,multiplex=0,pooled=Buffer@6f7c6e91[rc=0,DirectByteBuffer@3772a751[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@63ee096[inUse=0,size=1,max=256,terminated=false]
2024-05-07T10:02:48.422+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write failed ChannelResponse@1cb44684{200,GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.424+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@7555fecd{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1339) -> null} of HttpChannelSerializedInvoker@66aa3025{tail=null}
2024-05-07T10:02:48.424+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@7555fecd{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1339) -> null} of HttpChannelSerializedInvoker@66aa3025{tail=Link@7555fecd{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1339) -> null}}
2024-05-07T10:02:48.424+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@66aa3025{tail=null}
2024-05-07T10:02:48.424+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@3a518667{terminated=false,multiplex=0,pooled=Buffer@dc58b8c[rc=0,DirectByteBuffer@93fdefc[p=0,l=0,c=32768,r=0]={<<<>>>event:hea...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@379ab81d[inUse=0,size=1,max=256,terminated=false]
2024-05-07T10:02:48.424+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,org.eclipse.jetty.io.EofException) s=OPEN,api=BLOCKED,sc=false,e=null->s=CLOSED,api=BLOCKING,sc=false,e=null c=null cb=null w=false

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.425+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.jetty.ee10.servlet.ServletChannel    : abort ServletChannel@5cc2e012{s=ServletChannelState@b64014d{s=WAITING rs=ASYNC os=ABORTED is=IDLE awp=false se=false i=false al=1},r=0,c=false/false,a=WAITING,uri=http://localhost:9898/bug/hunt,age=3083}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.427+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : HttpConnection@7780e3b::SocketChannelEndPoint@3764b57d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:33372,OPEN,fill=-,flush=F,to=1014/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@7780e3b[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@10679bd7{s=COMMITTED}]=>HttpChannelState@58177a26{handling=null, handled=true, send=SENDING, completed=true, request=GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}] parse null
2024-05-07T10:02:48.427+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.http.HttpParser        : parseNext s=CONTENT HeapByteBuffer@650a2d34[p=0,l=0,c=0,r=0]={<<<>>>}
2024-05-07T10:02:48.427+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.http.HttpParser        : CONTENT --> CONTENT_END(0)
2024-05-07T10:02:48.427+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.http.HttpParser        : CONTENT_END --> END
2024-05-07T10:02:48.427+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : HttpConnection@7780e3b::SocketChannelEndPoint@3764b57d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:33372,OPEN,fill=-,flush=F,to=1015/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@7780e3b[p=HttpParser{s=END,0 of -1},g=HttpGenerator@10679bd7{s=COMMITTED}]=>HttpChannelState@58177a26{handling=null, handled=true, send=SENDING, completed=true, request=GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}] parsed false HttpParser{s=END,0 of -1}
2024-05-07T10:02:48.427+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : failed stream.isCommitted=true, response.isCommitted=true org.eclipse.jetty.server.internal.HttpChannelState$ChannelCallback@666ed299
2024-05-07T10:02:48.428+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.session.AbstractSessionManager     : Complete called with session null
2024-05-07T10:02:48.428+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpConnection     : aborting

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.429+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.AbstractEndPoint    : close(org.eclipse.jetty.io.EofException) SocketChannelEndPoint@3764b57d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:33372,OPEN,fill=-,flush=F,to=1017/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@7780e3b[p=HttpParser{s=END,0 of -1},g=HttpGenerator@10679bd7{s=COMMITTED}]=>HttpChannelState@58177a26{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-07T10:02:48.429+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.jetty.io.SelectableChannelEndPoint   : doClose SocketChannelEndPoint@3764b57d[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:33372,CLOSED,fill=-,flush=F,to=1017/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@7780e3b[p=HttpParser{s=END,0 of -1},g=HttpGenerator@10679bd7{s=COMMITTED}]=>HttpChannelState@58177a26{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-07T10:02:48.430+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.WriteFlusher        : ignored: org.eclipse.jetty.io.EofException WriteFlusher@41922c15{FAILED}->null
2024-05-07T10:02:48.430+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.FillInterest        : onFail FillInterest@62f576aa{null}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] org.eclipse.jetty.io.ManagedSelector     : Wakeup oeji.ManagedSelector@46c10083{STARTED} id=1 keys=1 selected=0 updates=0
2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.EPollSelectorImpl@7cd8400b woken with none selected
2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.EPollSelectorImpl@7cd8400b woken up from select, 0/0/0 selected
2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.EPollSelectorImpl@7cd8400b processing 0 keys, 0 updates
2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-36] org.eclipse.jetty.io.ManagedSelector     : updateable 0
2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-36] org.eclipse.jetty.io.ManagedSelector     : updates 0
2024-05-07T10:02:48.431+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-36] org.eclipse.jetty.io.ManagedSelector     : Selector sun.nio.ch.EPollSelectorImpl@7cd8400b waiting with 0 keys
2024-05-07T10:02:48.432+03:00 DEBUG 751313 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.QueuedThreadPool   : queue org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@6f3dff42 startThread=0
2024-05-07T10:02:48.432+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.e.jetty.util.thread.QueuedThreadPool   : run org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@6f3dff42 in QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=0,r=-1,t=56903ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=1/16,pending=0}]
2024-05-07T10:02:48.432+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] org.eclipse.jetty.io.ManagedSelector     : Destroyed SocketChannelEndPoint@3764b57d[{l=null,r=null,CLOSED,fill=-,flush=F,to=1020/30000}{io=0/0,kio=-1,kro=-1}]->[HttpConnection@7780e3b[p=HttpParser{s=END,0 of -1},g=HttpGenerator@10679bd7{s=COMMITTED}]=>HttpChannelState@58177a26{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}]
2024-05-07T10:02:48.433+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.eclipse.jetty.io.AbstractConnection    : onClose HttpConnection@7780e3b::SocketChannelEndPoint@3764b57d[{l=null,r=null,CLOSED,fill=-,flush=F,to=1020/30000}{io=0/0,kio=-1,kro=-1}]->[HttpConnection@7780e3b[p=HttpParser{s=END,0 of -1},g=HttpGenerator@10679bd7{s=COMMITTED}]=>HttpChannelState@58177a26{handling=null, handled=true, send=LAST_COMPLETE, completed=true, request=GET@aa1acac http://localhost:9898/bug/hunt HTTP/1.1}]

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:374) ~[jetty-io-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:905) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[jetty-util-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1458) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1434) ~[jetty-session-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1278) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:654) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:675) ~[jetty-ee10-servlet-12.0.3.jar:12.0.3]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.3.jar:12.0.3]
	... 31 common frames omitted

2024-05-07T10:02:48.433+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@6f3dff42 in QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=0,r=-1,t=56902ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=1/16,pending=0}]
2024-05-07T10:02:48.433+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=1,r=-1,t=56902ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=1/16,pending=0}]
2024-05-07T10:02:48.433+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=116902ms in the future QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=1,r=-1,t=56902ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=1/16,pending=0}]
2024-05-07T10:03:45.336+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-52] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThread@28b7f0a1{RESERVED,thread=Thread[qtp1463823265-52,5,main]} task=null ReservedThreadExecutor@1caa9eb6{reserved=1/16,pending=0}
2024-05-07T10:03:45.336+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-52] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThread@28b7f0a1{IDLE,thread=Thread[qtp1463823265-52,5,main]} exited ReservedThreadExecutor@1caa9eb6{reserved=0/16,pending=0}
2024-05-07T10:03:45.336+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-52] o.e.jetty.util.thread.QueuedThreadPool   : ran ReservedThread@28b7f0a1{IDLE,thread=null} in QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=1,r=-1,t=0ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=0/16,pending=0}]
2024-05-07T10:03:45.336+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-52] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=2,r=-1,t=0ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=0/16,pending=0}]
2024-05-07T10:03:45.336+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-52] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=59999ms in the future QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=2,r=-1,t=0ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=0/16,pending=0}]
2024-05-07T10:03:48.433+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=2,r=-1,t=-3097ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=0/16,pending=0}]
2024-05-07T10:03:48.433+03:00 DEBUG 751313 --- [bug-hunter] [tp1463823265-53] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=56902ms in the future QueuedThreadPool[qtp1463823265]@57402ba1{STARTED,8<=12<=200,i=2,r=-1,t=-3097ms,q=0}[ReservedThreadExecutor@1caa9eb6{reserved=0/16,pending=0}]

Taking a heap dump with version 12.0.3, you will notice that the HttpConnection is cleared from memory immediately after the client closes the connection, and there are no timeout handlers involved.

Test with Jetty 12.0.7

2024-05-07T10:06:07.188+03:00 DEBUG 752444 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@ade4573{200,GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:06:07.188+03:00 DEBUG 752444 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@6e9e20b3{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1271) -> null} of HttpChannelSerializedInvoker@feacc82{tail=null}
2024-05-07T10:06:07.188+03:00 DEBUG 752444 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@6e9e20b3{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1271) -> null} of HttpChannelSerializedInvoker@feacc82{tail=Link@6e9e20b3{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1271) -> null}}
2024-05-07T10:06:07.188+03:00 DEBUG 752444 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@feacc82{tail=null}
2024-05-07T10:06:07.188+03:00 DEBUG 752444 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-07T10:06:08.181+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@15ec7b5c[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 3\n\n>>>})
2024-05-07T10:06:08.181+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@2b6af403[rc=1,DirectByteBuffer@122e3c61[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@122e3c61[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@ade4573{200,GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : generate: NEED_CHUNK for SendCallback@1c57a51d[PROCESSING][i=null,cb=ChannelResponse@ade4573{200,GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : returning entry ConcurrentEntry@65cf9f07{terminated=false,multiplex=1,pooled=Buffer@5460da42[rc=0,DirectByteBuffer@20cd057a[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@640bf88a[strategy=THREAD_ID,inUse=1,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@1c57a51d[PROCESSING][i=null,cb=ChannelResponse@ade4573{200,GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@138a6a9e{IDLE}->null [DirectByteBuffer@20cd057a[p=0,l=6,c=4096,r=6]={<<<\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@122e3c61[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@138a6a9e{WRITING}->null:IDLE-->WRITING
2024-05-07T10:06:08.182+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : write exception

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:839) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:250) ~[jetty-util-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:231) ~[jetty-util-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1419) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1460) ~[jetty-session-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1246) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:751) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.ServletContextResponse.write(ServletContextResponse.java:288) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:672) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.7.jar:12.0.7]
	... 33 common frames omitted

2024-05-07T10:06:08.187+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@138a6a9e{FAILED}->null:WRITING-->FAILED
2024-05-07T10:06:08.187+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@65cf9f07{terminated=false,multiplex=0,pooled=Buffer@5460da42[rc=0,DirectByteBuffer@20cd057a[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@640bf88a[strategy=THREAD_ID,inUse=0,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:06:08.187+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : write failed ChannelResponse@ade4573{200,GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:839) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:250) ~[jetty-util-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:231) ~[jetty-util-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1419) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1460) ~[jetty-session-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1246) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:751) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.ServletContextResponse.write(ServletContextResponse.java:288) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:672) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.7.jar:12.0.7]
	... 33 common frames omitted

2024-05-07T10:06:08.189+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@7ea7b448{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1300) -> null} of HttpChannelSerializedInvoker@feacc82{tail=null}
2024-05-07T10:06:08.189+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@7ea7b448{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1300) -> null} of HttpChannelSerializedInvoker@feacc82{tail=Link@7ea7b448{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1300) -> null}}
2024-05-07T10:06:08.189+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@feacc82{tail=null}
2024-05-07T10:06:08.189+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : returning reserved entry ConcurrentEntry@27a64239{terminated=false,multiplex=-1,pooled=null} for ConcurrentPool@7233ad51[strategy=THREAD_ID,inUse=0,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:06:08.189+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : enabled ConcurrentEntry@27a64239{terminated=false,multiplex=0,pooled=Buffer@317542ab[rc=0,DirectByteBuffer@122e3c61[p=0,l=0,c=32768,r=0]={<<<>>>event:hea...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@7233ad51[strategy=THREAD_ID,inUse=0,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:06:08.189+03:00 DEBUG 752444 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,org.eclipse.jetty.io.EofException) s=OPEN,api=BLOCKED,sc=false,e=null->s=CLOSED,api=BLOCKING,sc=false,e=null c=null cb=null w=false

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:839) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:250) ~[jetty-util-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:231) ~[jetty-util-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1419) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1460) ~[jetty-session-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1246) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:751) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.ServletContextResponse.write(ServletContextResponse.java:288) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:204) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:189) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:672) ~[jetty-ee10-servlet-12.0.7.jar:12.0.7]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.7.jar:12.0.7]
	... 33 common frames omitted

You can see the HttpConnection in memory:
Screenshot from 2024-05-07 10-06-28

Checking the logs 1.5 minutes later, we can see that the timeout handler loops every 30 seconds:

2024-05-07T10:06:34.080+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=26894/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout check, elapsed: 26894 ms, remaining: 3106 ms
2024-05-07T10:06:37.186+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=30000/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout check, elapsed: 30000 ms, remaining: 0 ms
2024-05-07T10:06:37.190+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=30005/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout expired

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:06:37.191+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] o.e.j.server.internal.HttpChannelState   : onIdleTimeout HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:06:37.192+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] o.e.jetty.util.thread.QueuedThreadPool   : queue org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@43d1725 startThread=0
2024-05-07T10:06:37.192+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : run org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@43d1725 in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=0,r=-1,t=26911ms,q=0}[ReservedThreadExecutor@424de326{reserved=1/16,pending=0}]
2024-05-07T10:06:37.192+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.j.ee10.servlet.ServletChannelState   : onIdleTimeout s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:06:37.192+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@43d1725 in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=0,r=-1,t=26911ms,q=0}[ReservedThreadExecutor@424de326{reserved=1/16,pending=0}]
2024-05-07T10:06:37.193+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=26911ms,q=0}[ReservedThreadExecutor@424de326{reserved=1/16,pending=0}]
2024-05-07T10:06:37.193+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=86911ms in the future QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=26911ms,q=0}[ReservedThreadExecutor@424de326{reserved=1/16,pending=0}]
2024-05-07T10:07:04.104+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThread@1936538e{RESERVED,thread=Thread[qtp315748820-50,5,main]} task=null ReservedThreadExecutor@424de326{reserved=1/16,pending=0}
2024-05-07T10:07:04.104+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.j.u.thread.ReservedThreadExecutor    : ReservedThread@1936538e{IDLE,thread=Thread[qtp315748820-50,5,main]} exited ReservedThreadExecutor@424de326{reserved=0/16,pending=0}
2024-05-07T10:07:04.104+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : ran ReservedThread@1936538e{IDLE,thread=null} in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=0ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:04.104+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=2,r=-1,t=0ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:04.104+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=60000ms in the future QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=2,r=-1,t=0ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:07.192+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=30000/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout check, elapsed: 30000 ms, remaining: 0 ms
2024-05-07T10:07:07.193+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=30001/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout expired

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:07:07.194+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] o.e.j.server.internal.HttpChannelState   : onIdleTimeout HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:07:07.194+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] o.e.jetty.util.thread.QueuedThreadPool   : queue org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@7e60bfb4 startThread=0
2024-05-07T10:07:07.194+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : run org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@7e60bfb4 in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=-3090ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:07.195+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.j.ee10.servlet.ServletChannelState   : onIdleTimeout s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:07:07.196+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@7e60bfb4 in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=-3092ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:07.196+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=2,r=-1,t=-3092ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:07.196+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-51] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=56907ms in the future QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=2,r=-1,t=-3092ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:37.194+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=30000/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout check, elapsed: 30000 ms, remaining: 0 ms
2024-05-07T10:07:37.195+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] org.eclipse.jetty.io.IdleTimeout         : SocketChannelEndPoint@7f4da284[{l=/[0:0:0:0:0:0:0:1]:9898,r=/[0:0:0:0:0:0:0:1]:59482,OPEN,fill=-,flush=F,to=30001/30000}{io=0/0,kio=0,kro=1}]->[HttpConnection@2b2d53cf[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@4853dc04{s=COMMITTED}]=>HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}] idle timeout expired

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:07:37.196+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] o.e.j.server.internal.HttpChannelState   : onIdleTimeout HttpChannelState@5afd2a1a{handling=null, handled=true, send=SENDING, completed=false, request=GET@8392e57b http://localhost:9898/bug/hunt HTTP/1.1}

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:07:37.196+03:00 DEBUG 752444 --- [bug-hunter] [er-1182492749-1] o.e.jetty.util.thread.QueuedThreadPool   : queue org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@48844e7f startThread=0
2024-05-07T10:07:37.196+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : run org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@48844e7f in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=-33092ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:37.197+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.j.ee10.servlet.ServletChannelState   : onIdleTimeout s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.7.jar:12.0.7]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.7.jar:12.0.7]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T10:07:37.199+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$948/0x00007fcfb850a288@48844e7f in QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=1,r=-1,t=-33094ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:37.199+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=2,r=-1,t=-33095ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]
2024-05-07T10:07:37.199+03:00 DEBUG 752444 --- [bug-hunter] [qtp315748820-50] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=26904ms in the future QueuedThreadPool[qtp315748820]@12d1f1d4{STARTED,8<=11<=200,i=2,r=-1,t=-33095ms,q=0}[ReservedThreadExecutor@424de326{reserved=0/16,pending=0}]

Screenshot of the memory dump shows that HttpConnection is still there:
Screenshot from 2024-05-07 10-06-54

Test with Jetty 12.0.9-SNAPSHOT

This looks pretty much the same as with 12.0.7, but I'll show the logs and screenshots here as well:

2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@5803ecb3{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1288) -> null} of HttpChannelSerializedInvoker@6d03202a{tail=null}
2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@5803ecb3{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1288) -> null} of HttpChannelSerializedInvoker@6d03202a{tail=Link@5803ecb3{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1288) -> null}}
2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@6d03202a{tail=null}
2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : writing last=false HeapByteBufferR@5da3d946[p=0,l=0,c=0,r=0]={<<<>>>} ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:12:08.241+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.j.server.internal.HttpChannelState   : write succeeded ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:12:08.242+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@7f57c86{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1288) -> null} of HttpChannelSerializedInvoker@6d03202a{tail=null}
2024-05-07T10:12:08.242+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@7f57c86{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1288) -> null} of HttpChannelSerializedInvoker@6d03202a{tail=Link@7f57c86{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.succeeded(HttpChannelState.java:1288) -> null}}
2024-05-07T10:12:08.242+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@6d03202a{tail=null}
2024-05-07T10:12:08.242+03:00 DEBUG 755144 --- [bug-hunter] [         task-3] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array HeapByteBuffer@efa33dc[p=0,l=20,c=20,r=20]={<<<event:heartbeat: 3\n\n>>>})
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush Buffer@4348e945[rc=1,DirectByteBuffer@4ad64a42[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : writing last=false DirectByteBuffer@4ad64a42[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : generate: NEED_CHUNK for SendCallback@7cc52eb[PROCESSING][i=null,cb=ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : returning entry ConcurrentEntry@61b5a24f{terminated=false,multiplex=1,pooled=Buffer@501e8155[rc=0,DirectByteBuffer@24b738bd[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@3530548f[strategy=THREAD_ID,inUse=1,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpConnection     : generate: FLUSH for SendCallback@7cc52eb[PROCESSING][i=null,cb=ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}] (null,[p=0,l=20,c=32768,r=20],false)@COMMITTED
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : write: WriteFlusher@1791abd9{IDLE}->null [DirectByteBuffer@24b738bd[p=0,l=6,c=4096,r=6]={<<<\r\n14\r\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@4ad64a42[p=0,l=20,c=32768,r=20]={<<<event:heartbeat: 3\n\n>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@1791abd9{WRITING}->null:IDLE-->WRITING
2024-05-07T10:12:09.240+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : write exception

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:848) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:250) ~[jetty-util-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:231) ~[jetty-util-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1429) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1460) ~[jetty-session-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1263) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:751) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.ServletContextResponse.write(ServletContextResponse.java:288) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:205) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:190) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:673) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	... 33 common frames omitted

2024-05-07T10:12:09.245+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.io.WriteFlusher        : update WriteFlusher@1791abd9{FAILED}->null:WRITING-->FAILED
2024-05-07T10:12:09.245+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : released true ConcurrentEntry@61b5a24f{terminated=false,multiplex=0,pooled=Buffer@501e8155[rc=0,DirectByteBuffer@24b738bd[p=0,l=0,c=4096,r=0]={<<<>>>\r\n14\r\n\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@3530548f[strategy=THREAD_ID,inUse=0,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:12:09.245+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.j.server.internal.HttpChannelState   : write failed ChannelResponse@46df1a7c{200,GET@ca5dfcc8 http://localhost:9898/bug/hunt HTTP/1.1}

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:848) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:250) ~[jetty-util-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:231) ~[jetty-util-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1429) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1460) ~[jetty-session-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1263) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:751) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.ServletContextResponse.write(ServletContextResponse.java:288) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:205) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:190) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:673) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	... 33 common frames omitted

2024-05-07T10:12:09.247+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Offering link Link@287cb579{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1317) -> null} of HttpChannelSerializedInvoker@6d03202a{tail=null}
2024-05-07T10:12:09.247+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Running link Link@287cb579{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1317) -> null} of HttpChannelSerializedInvoker@6d03202a{tail=Link@287cb579{Queued at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.failed(HttpChannelState.java:1317) -> null}}
2024-05-07T10:12:09.248+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.e.jetty.util.thread.SerializedInvoker  : Next link is null, execution is over in HttpChannelSerializedInvoker@6d03202a{tail=null}
2024-05-07T10:12:09.248+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : returning reserved entry ConcurrentEntry@621b0b49{terminated=false,multiplex=-1,pooled=null} for ConcurrentPool@1f2db23c[strategy=THREAD_ID,inUse=0,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:12:09.248+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] org.eclipse.jetty.util.ConcurrentPool    : enabled ConcurrentEntry@621b0b49{terminated=false,multiplex=0,pooled=Buffer@52371bdd[rc=0,DirectByteBuffer@4ad64a42[p=0,l=0,c=32768,r=0]={<<<>>>event:hea...\x00\x00\x00\x00\x00\x00\x00}]} for ConcurrentPool@1f2db23c[strategy=THREAD_ID,inUse=0,size=1,max=256,leaked=0,terminated=false]
2024-05-07T10:12:09.248+03:00 DEBUG 755144 --- [bug-hunter] [         task-4] o.eclipse.jetty.ee10.servlet.HttpOutput  : onWriteComplete(false,org.eclipse.jetty.io.EofException) s=OPEN,api=BLOCKED,sc=false,e=null->s=CLOSED,api=BLOCKING,sc=false,e=null c=null cb=null w=false

org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:117) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:848) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:250) ~[jetty-util-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:231) ~[jetty-util-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1429) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:179) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.send(AbstractSessionManager.java:1460) ~[jetty-session-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1263) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:751) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56) ~[jetty-server-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.ServletContextResponse.write(ServletContextResponse.java:288) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:205) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.channelWrite(HttpOutput.java:190) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.ee10.servlet.HttpOutput.flush(HttpOutput.java:673) ~[jetty-ee10-servlet-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:389) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.util.StreamUtils.copy(StreamUtils.java:135) ~[spring-core-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:128) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:44) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:235) ~[spring-web-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.sendInternal(ResponseBodyEmitterReturnValueHandler.java:221) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler$HttpMessageConvertingHandler.send(ResponseBodyEmitterReturnValueHandler.java:212) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.sendInternal(ResponseBodyEmitter.java:234) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter.send(ResponseBodyEmitter.java:225) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.SseEmitter.send(SseEmitter.java:135) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$SseEmitterSubscriber.send(ReactiveTypeHandler.java:388) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:332) ~[spring-webmvc-6.1.5.jar:6.1.5]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.io.IOException: Broken pipe
	at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:na]
	at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:217) ~[na:na]
	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:153) ~[na:na]
	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:563) ~[na:na]
	at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:642) ~[na:na]
	at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:111) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	... 33 common frames omitted

Screenshot from 2024-05-07 10-12-24

And the same problem occurs after timeouts as well.

Extra test with 12.0.9-SNAPSHOT:

I canceled 12 requests consecutively, and the timeout loop never ends. Even over 30 minutes later, we still observe the same pattern in the logs and in the memory dump.


java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T11:00:07.234+03:00 DEBUG 755144 --- [bug-hunter] [uler-74735260-1] o.e.j.server.internal.HttpChannelState   : onIdleTimeout HttpChannelState@3cdb9424{handling=null, handled=true, send=SENDING, completed=false, request=GET@a97936c7 http://localhost:9898/bug/hunt HTTP/1.1}

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T11:00:07.235+03:00 DEBUG 755144 --- [bug-hunter] [uler-74735260-1] o.e.jetty.util.thread.QueuedThreadPool   : queue org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$950/0x00007facdc50d1c8@a63874b startThread=0
2024-05-07T11:00:07.235+03:00 DEBUG 755144 --- [bug-hunter] [p1286868539-115] o.e.jetty.util.thread.QueuedThreadPool   : run org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$950/0x00007facdc50d1c8@a63874b in QueuedThreadPool[qtp1286868539]@4cb40e3b{STARTED,8<=11<=200,i=0,r=-1,t=31668ms,q=0}[ReservedThreadExecutor@507d64aa{capacity=16,threads=ThreadIdPool@7f5b9db{capacity=16}}]
2024-05-07T11:00:07.235+03:00 DEBUG 755144 --- [bug-hunter] [p1286868539-115] o.e.j.ee10.servlet.ServletChannelState   : onIdleTimeout s=WAITING rs=ASYNC os=OPEN is=IDLE awp=false se=false i=false al=1

java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
	at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[jetty-io-12.0.9-20240507.000748-35.jar:12.0.9-SNAPSHOT]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

2024-05-07T11:00:07.236+03:00 DEBUG 755144 --- [bug-hunter] [p1286868539-115] o.e.jetty.util.thread.QueuedThreadPool   : ran org.eclipse.jetty.server.internal.HttpChannelState$$Lambda$950/0x00007facdc50d1c8@a63874b in QueuedThreadPool[qtp1286868539]@4cb40e3b{STARTED,8<=11<=200,i=0,r=-1,t=31667ms,q=0}[ReservedThreadExecutor@507d64aa{capacity=16,threads=ThreadIdPool@7f5b9db{capacity=16}}]
2024-05-07T11:00:07.236+03:00 DEBUG 755144 --- [bug-hunter] [p1286868539-115] o.e.jetty.util.thread.QueuedThreadPool   : Evict check, period=60000ms QueuedThreadPool[qtp1286868539]@4cb40e3b{STARTED,8<=11<=200,i=1,r=-1,t=31667ms,q=0}[ReservedThreadExecutor@507d64aa{capacity=16,threads=ThreadIdPool@7f5b9db{capacity=16}}]
2024-05-07T11:00:07.236+03:00 DEBUG 755144 --- [bug-hunter] [p1286868539-115] o.e.jetty.util.thread.QueuedThreadPool   : Evict skipped, threshold=91667ms in the future QueuedThreadPool[qtp1286868539]@4cb40e3b{STARTED,8<=11<=200,i=1,r=-1,t=31667ms,q=0}[ReservedThreadExecutor@507d64aa{capacity=16,threads=ThreadIdPool@7f5b9db{capacity=16}}]

Screenshot from 2024-05-07 11-00-26

@bclozel
Copy link
Member

bclozel commented May 7, 2024

@vakiovale I think the timeout handler issue is completely separate and should be raised to the Jetty team separately.

I had a discussion with @rstoyanchev about this issue and we think that we might commit a fix in Spring Framework for this. Also, we are wondering if Jetty's behavior is consistent in this case.

In a typical asynchronous Servlet write scenario, an IOException can happen while writing to the response. At that point, we would expect the Servlet container to notify the application with AsyncListener#onError. But it seems that neither Jetty versions are doing that. With Jetty 12.0.3 the channel was closed anyway, and with 12.0.4+ it is no longer the case, see jetty/jetty.project@2773bc7#diff-c829fe054f54cb201ad7638c0cff2f87dfb1a4ae2dd32519ff397a4a54f79a47L247-L248.

We are relying on the onError callback to be called in order to avoid a race with us handling the exception where it happened in a non-Servlet container thread. Is this expected behavior that onError is not called by Jetty @gregw? In general, we expect onError would be called for any error and we had conversations related to that with the Tomcat team.

@lorban
Copy link

lorban commented May 13, 2024

@bclozel Here is my analysis of this problem:

  • The servlet spec requires that long running requests are not interrupted by idle timeout. This can be confirmed with this log o.e.j.ee10.servlet.ServletChannelState : onIdleTimeout s=WAITING, since the state is WAITING and not IDLE the idle timeout event gets ignored and rescheduled.

  • The ServletOutputStream is in blocking mode, not in async mode as you apparently aren't using ServletOutputStream.setWriteListener() as confirmed by the HttpOutput : onWriteComplete(false,org.eclipse.jetty.io.EofException) s=OPEN,api=BLOCKED log. So AsyncListener.onError() should not be called as no async operation failed; the only way to react to blocking write errors is to catch the thrown IOException and explicitly react on it.

  • Changes were done in Jetty so that an error from the reading side doesn't impact the writing side and vice-versa: if Jetty cannot read POSTed data anymore, it can still write a response if the connection allows it; and if it cannot write a response, it can still read whatever data is being uploaded, again if the connection allows it. Think of half-closed sockets where Socket.shutdownInput() or Socket.shutdownOutput() is called in the middle of a HTTP request.

In this particular case, my understanding is that you've started an async context and returned from HttpServlet.service(). This is an SSE request, no byte is sent to the server after the standard HTTP request, so the async timeout mechanism is practically disabled. Since you're using the ServletOutputStream in blocking mode, the async error mechanism is not notified.

So it looks to me like this is a bug in Spring: when you get an exception from the ServletOutputStream you should react by manually completing the AsyncContext. And it's been triggered by the fact that Jetty's previous behavior with regard to low-level errors to one side of the connection prematurely closing the connection has changed to allow working with half-closed connections.

WDYT?

@rstoyanchev
Copy link
Contributor

rstoyanchev commented May 13, 2024

Thanks for the analysis @lorban. Tomcat in particular calls AsyncListener#onError after a response error. We just wanted to double check that this is intentional that Jetty doesn't do the same.

@lorban
Copy link

lorban commented May 13, 2024

Yes, it is intentional. Jetty doesn't call AsyncListener#onError when an error is reported by a blocking call.

Though, I'm happy to discuss this if you believe this is wrong.

@rstoyanchev
Copy link
Contributor

rstoyanchev commented May 13, 2024

Okay, good to know. I'll schedule the issue.

Aside from that, it would be useful to know Jetty's reasons for not calling AsyncListener#onError, especially since Tomcat does otherwise. It would be good as well for the Servlet spec to provide guidance on this case eventually and if possible to align.

@rstoyanchev rstoyanchev added type: enhancement A general enhancement and removed status: waiting-for-triage An issue we've not yet triaged or decided on labels May 13, 2024
@rstoyanchev rstoyanchev added this to the 6.1.7 milestone May 13, 2024
@rstoyanchev rstoyanchev changed the title Memory Leak in Jetty HttpConnections with SSE in Spring Boot 3.2.4 Using Jetty 12.0.7 Jetty HttpConnections not closed with SSE on Jetty 12.0.7+ when clients close the connection May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

7 participants