You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Rémy Maucherat <re...@apache.org> on 2026/01/05 15:40:56 UTC
Re: Buildbot failure in on tomcat-11.0.x
On Mon, Jan 5, 2026 at 4:07 PM <bu...@apache.org> wrote:
>
> Build status: BUILD FAILED: failed compile (failure)
> Worker used: bb_worker2_ubuntu
> URL: https://ci2.apache.org/#builders/112/builds/1929
> Blamelist: remm <re...@apache.org>
> Build Text: failed compile (failure)
> Status Detected: new failure
> Build Source Stamp: [branch 11.0.x] 0727a95cd9a557a720481d482011bbef84697adc
This is clearly related to my change that resets the channel to null,
as the WS does close stuff on stop. I didn't see it locally on my
testsuite runs.
05-Jan-2026 14:46:54.984 SEVERE [main]
org.apache.catalina.core.StandardContext.listenerStop Exception
sending context destroyed event to listener instance of class
[org.apache.tomcat.websocket.TesterEchoServer$Config]
java.lang.NullPointerException: Cannot invoke
"java.nio.channels.SocketChannel.write(java.nio.ByteBuffer[], int,
int)" because "this.sc" is null
at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.run(NioEndpoint.java:1675)
at org.apache.tomcat.util.net.SocketWrapperBase$OperationState.start(SocketWrapperBase.java:1002)
at org.apache.tomcat.util.net.SocketWrapperBase.vectoredOperation(SocketWrapperBase.java:1373)
at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:1302)
at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:1277)
at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:167)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:524)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlockInternal(WsRemoteEndpointImplBase.java:316)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:269)
at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:777)
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:574)
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:541)
at org.apache.tomcat.websocket.WsSession.close(WsSession.java:529)
at org.apache.tomcat.websocket.WsWebSocketContainer.destroy(WsWebSocketContainer.java:992)
at org.apache.tomcat.websocket.server.WsContextListener.contextDestroyed(WsContextListener.java:46)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4048)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:4652)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:235)
I don't think the change should be reverted, maybe add a null check or
some other trick instead. Leaving in the reference to the socket and
the socket wrapper could be a way to go.
Rémy
>
> Steps:
>
> worker_preparation: 0
>
> git: 0
>
> shell: 0
>
> shell_1: 0
>
> shell_2: 0
>
> shell_3: 0
>
> shell_4: 0
>
> shell_5: 0
>
> shell_6: 0
>
> shell_7: 0
>
> compile: 1
>
> shell_8: 0
>
> shell_9: 0
>
> shell_10: 0
>
> shell_11: 0
>
> Rsync docs to nightlies.apache.org: 0
>
> shell_12: 0
>
> Rsync RAT to nightlies.apache.org: 0
>
> compile_1: 2
>
> shell_13: 0
>
> Rsync Logs to nightlies.apache.org: 0
>
>
> -- ASF Buildbot
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org