-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Closed
Closed
Copy link
Labels
in: messagingIssues in messaging modules (jms, messaging)Issues in messaging modules (jms, messaging)in: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancementA general enhancement
Milestone
Description
Yohan Liyanage opened SPR-11201 and commented
In the latest snapshot build of 4.0, SockJS based Web Socket implementation fails to dispatch messages to subscribers randomly, when connected over Internet.
When I looked into the log file, I do not see any stack traces, but I see the following log output.
:38:51.577 [clientOutboundChannel-4] DEBUG o.s.m.simp.stomp.StompEncoder - Encoded STOMP command=MESSAGE headers={content-type=[application/json;charset=UTF-8], subscription=[sub-0], message-id=[fklmkqzi-0], destination=[/queue/synchronize]}
08:38:51.578 [clientOutboundChannel-4] TRACE o.s.w.s.s.t.s.WebSocketServerSockJsSession - Cancelling heartbeat
08:38:51.578 [clientOutboundChannel-4] TRACE o.s.w.s.s.t.s.WebSocketServerSockJsSession - Preparing to write SockJsFrame content='a["MESSAGE\ncontent-type:application/json;charset=UTF-8\nsubscription:sub-0\nmes...(truncated)'
08:38:51.581 [clientOutboundChannel-4] TRACE o.s.w.s.s.t.s.WebSocketServerSockJsSession - Write SockJsFrame content='a["MESSAGE\ncontent-type:application/json;charset=UTF-8\nsubscription:sub-0\nmes...(truncated)'
08:38:51.581 [clientOutboundChannel-4] TRACE o.s.w.s.a.j.JettyWebSocketSession - Sending TextMessage payload= a["MESSAGE.., length=439, last=true], WebSocket session id=f70433f
08:38:51.582 [clientOutboundChannel-4] WARN o.s.w.s.s.t.s.WebSocketServerSockJsSession - Terminating connection after failure to send message: null
08:38:51.582 [clientOutboundChannel-4] DEBUG o.s.w.s.a.j.JettyWebSocketSession - Closing WebSocket session id=f70433f
08:38:51.586 [clientOutboundChannel-4] DEBUG o.s.w.s.s.t.s.WebSocketServerSockJsSession - SockJS session id=fklmkqzi was closed, CloseStatus [code=1011, reason=null]
08:38:51.586 [clientOutboundChannel-4] DEBUG o.s.w.s.h.LoggingWebSocketHandlerDecorator - Connection closed for SockJS session id=fklmkqzi, CloseStatus [code=1011, reason=null]
08:38:51.586 [clientOutboundChannel-4] TRACE o.s.m.s.ExecutorSubscribableChannel - [clientInboundChannel] sending message id=c3363e80-892a-d836-4ae2-23c2fbc91ef8
08:38:51.586 [clientInboundChannel-1] TRACE o.s.m.s.a.s.SimpAnnotationMethodMessageHandler - Ignoring message, no destination
08:38:51.586 [clientInboundChannel-1] DEBUG o.s.m.s.b.DefaultSubscriptionRegistry - Unregistering subscriptions for sessionId=fklmkqzi
08:38:51.587 [clientInboundChannel-1] TRACE o.s.m.s.u.DefaultUserDestinationResolver - Ignoring DISCONNECT message
08:38:51.587 [clientOutboundChannel-4] TRACE o.s.m.s.ChannelInterceptorChain - postSend (sent=true) message id c3363e80-892a-d836-4ae2-23c2fbc91ef8
08:38:51.587 [clientOutboundChannel-4] DEBUG o.s.m.simp.stomp.StompEncoder - Encoded STOMP command=ERROR headers={message=[Failed to write SockJsFrame content='a["MESSAGE\ncontent-type:application/json;charset=UTF-8\nsubscription:sub-0\nmes...(truncated)'; nested exception is java.nio.BufferOverflowException]}
From this, it appears that there seems to be a java.nio.BufferOverflowException. However, the stack trace is not being logged and it seems to be lost.
On the client side (Chrome), I see "WebSocket connection to 'ws://209.../' failed: Received unexpected compressed frame".
Environment Details:
Spring 4.0.0 Snapshot
Jetty 9.1.0
CentOS 6
Affects: 4.0 RC2
Referenced from: commits d0556e6
Metadata
Metadata
Assignees
Labels
in: messagingIssues in messaging modules (jms, messaging)Issues in messaging modules (jms, messaging)in: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancementA general enhancement