[Bug] Websocket connection closed
- Dominant language
- Java
- Stars
- 15.3k
- Forks
- 3.8k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 160
Description
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.
### Version
v3.1.1
### Minimal reproduce step
Try to produce in Websocket
### What did you expect to see?
A message produced
### What did you see instead?
````2023-11-27T17:18:28,518+0000 [pulsar-external-web-5-15] WARN org.apache.pulsar.websocket.ReaderHandler - [78.242.0.0:40693] Failed in creating reader on topic non-persistent://tenant/pulsar_1/profile
org.apache.pulsar.client.api.PulsarClientException$LookupException: {"errorMsg":"org.apache.pulsar.client.api.PulsarClientException: Connection already closed","reqId":3472645042792490684, "remote":"pulsar.com/91.208.0.0:6650", "local":"/10.2.0.0:44840"}
at org.apache.pulsar.client.api.PulsarClientException.unwrap(PulsarClientException.java:1053) ~[org.apache.pulsar-pulsar-client-api-3.1.1.jar:3.1.1]
at org.apache.pulsar.client.impl.ReaderBuilderImpl.create(ReaderBuilderImpl.java:78) ~[org.apache.pulsar-pulsar-client-original-3.1.1.jar:3.1.1]
at org.apache.pulsar.websocket.ReaderHandler.(ReaderHandler.java:112) ~[org.apache.pulsar-pulsar-websocket-3.1.1.jar:3.1.1]
at org.apache.pulsar.websocket.WebSocketReaderServlet.lambda$configure$0(WebSocketReaderServlet.java:44) ~[org.apache.pulsar-pulsar-websocket-3.1.1.jar:3.1.1]
at org.eclipse.jetty.websocket.server.WebSocketServerFactory.acceptWebSocket(WebSocketServerFactory.java:275) ~[org.eclipse.jetty.websocket-websocket-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.websocket.server.WebSocketServerFactory.acceptWebSocket(WebSocketServerFactory.java:260) ~[org.eclipse.jetty.websocket-websocket-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.websocket.servlet.WebSocketServlet.service(WebSocketServlet.java:160) ~[org.eclipse.jetty.websocket-websocket-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
```
### Anything else?
on client side
```>Error 500 Failed to create producer/consumer: {"errorMsg":"org.apache.pulsar.client.api.PulsarClientException: Connection already closed","reqId":2689535377619156521, "remote":"pulsar.com/91.208.0.0:6650", "local":"/10.2.0.0:52584"}\n\n
HTTP ERROR 500 Failed to create producer/consumer: {"errorMsg":"org.apache.pulsar.client.api.PulsarClientException: Connection already closed","reqId":2689535377619156521, "remote":"pulsar.com/91.208.0.0:6650", "local":"/10.2.0.0:52584"}
\n\n\n\n\n\nURI:/ws/v2/producer/persistent/tenant/pulsar_1/ttopicSTATUS:500MESSAGE:Failed to create producer/consumer: {"errorMsg":"org.apache.pulsar.client.api.PulsarClientException: Connection already closed","reqId":2689535377619156521, "remote":"pulsar.com/91.208.0.0:6650", "local":"/10.2.0.0:52584"}SERVLET:org.apache.pulsar.websocket.WebSocketProducerServlet-38cedb7d\nPowered by Jetty:// 9.4.51.v20230217
\n\n\n\n'
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Contributor guide
Research direction
Start with the WebSocket stack trace, especially ReaderHandler.java:112, WebSocketReaderServlet.java:44, ReaderBuilderImpl.java:78, and the WebSocketProducerServlet entry point shown in the error. Reproduce the producer or reader request on Pulsar v3.1.1 and trace why the connection closes; done means the WebSocket creates the producer or consumer and produces a message without the HTTP 500 error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100