Reported by RV-Predict (a dynamic race detector) when running the test suite: Data race on field org.apache.tomcat.websocket.WsWebSocketContainer.backgroundProcessCount: {{{ Concurrent write in thread T43 (locks held: {}) ----> at org.apache.tomcat.websocket.WsWebSocketContainer.backgroundProcess(WsWebSocketContainer.java:862) at org.apache.tomcat.websocket.BackgroundProcessManager.process(BackgroundProcessManager.java:91) at org.apache.tomcat.websocket.BackgroundProcessManager.access$000(BackgroundProcessManager.java:32) at org.apache.tomcat.websocket.BackgroundProcessManager$WsBackgroundThread.run(BackgroundProcessManager.java:119) T43 is created by T1 at org.apache.tomcat.websocket.BackgroundProcessManager.register(BackgroundProcessManager.java:66) Concurrent read in thread T34 (locks held: {}) ----> at org.apache.tomcat.websocket.WsWebSocketContainer.backgroundProcess(WsWebSocketContainer.java:862) at org.apache.tomcat.websocket.BackgroundProcessManager.process(BackgroundProcessManager.java:91) at org.apache.tomcat.websocket.BackgroundProcessManager.access$000(BackgroundProcessManager.java:32) at org.apache.tomcat.websocket.BackgroundProcessManager$WsBackgroundThread.run(BackgroundProcessManager.java:119) T34 is created by T1 at org.apache.tomcat.websocket.BackgroundProcessManager.register(BackgroundProcessManager.java:66) }}} Not sure if this counter has to be precise, but I am reporting it anyway.
The worst that would happen is a slight delay in WebSocket session expiration so negative impacts for applications is unlikely. Fixed in trunk and 8.0.x for 8.0.27 onwards.
Based on the dev-list disucssion [1] I am reverting this fix and resolving this as invalid since it appears to be a false positive. [1] http://tomcat.markmail.org/thread/sz6afdhnrxnqiylt
Interesting, I have my reservations on this. I will find some time to investigate it further. Thanks!