Mantis - Resin
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
6445 | minor | always | 10-26-21 07:05 | 12-16-21 07:35 | |
|
|||||
Reporter: | amo | Platform: | |||
Assigned To: | OS: | ||||
Priority: | normal | OS Version: | |||
Status: | new | Product Version: | 4.0.65 | ||
Product Build: | Resolution: | open | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | |||
|
|||||
Summary: | 0006445: java.lang.IllegalStateException: TcpSocketLink[id=http://...someports...] killKeepalive called from invalid thread | ||||
Description: |
We have some web code that looks something like: generateContent(){ final AsyncContext asyncContext = request.startAsync(); requestContent(params, callback(asyncConext)) } callback(){ onData() -> writer.writeNext() -> writer.checkError ---> ResponseStream.flush() } meanwhile: at com.caucho.server.http.AbstractHttpRequest.clientDisconnect(AbstractHttpRequest.java:459) at com.caucho.server.http.AbstractHttpResponse.clientDisconnect(AbstractHttpResponse.java:211) We believe this now has a wrong/bad state because we think the client disconnected while we were getting the data they wanted so calling: state.isAsyncStarted() returns false always in this case and throws the exception on: TcpSocketLink.java:1612) Thanks Amo |
||||
Steps To Reproduce: | |||||
Additional Information: |
Here's a stack trace: java.lang.IllegalStateException: killKeepalive called from invalid thread. expected: at com.caucho.network.listen.TcpSocketLink.killKeepalive(TcpSocketLink.java:1612) at com.caucho.server.http.AbstractHttpRequest.killKeepalive(AbstractHttpRequest.java:1773) at com.caucho.server.http.AbstractHttpRequest.clientDisconnect(AbstractHttpRequest.java:459) at com.caucho.server.http.AbstractHttpResponse.clientDisconnect(AbstractHttpResponse.java:211) at com.caucho.server.http.ResponseStream.writeNextBuffer(ResponseStream.java:900) at com.caucho.server.http.ResponseStream.flush(ResponseStream.java:589) at com.caucho.server.http.ResponseStream.flushChar(ResponseStream.java:614) at com.caucho.server.http.ResponseWriter.flush(ResponseWriter.java:176) at java.base/java.io.PrintWriter.flush(PrintWriter.java:396) at java.base/java.io.PrintWriter.checkError(PrintWriter.java:433) ...some of our code calling this... |
||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|