Bug 58384 - Data race on field org.apache.tomcat.websocket.WsWebSocketContainer.backgroundProcessCount
Summary: Data race on field org.apache.tomcat.websocket.WsWebSocketContainer.backgroun...
Status: RESOLVED INVALID
Alias: None
Product: Tomcat 8
Classification: Unclassified
Component: WebSocket (show other bugs)
Version: 8.0.x-trunk
Hardware: PC Linux
: P2 normal (vote)
Target Milestone: ----
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-12 16:10 UTC by Yilong Li
Modified: 2015-09-15 21:20 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yilong Li 2015-09-12 16:10:31 UTC
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.
Comment 1 Mark Thomas 2015-09-15 13:49:05 UTC
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.
Comment 2 Mark Thomas 2015-09-15 21:17:26 UTC
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
Comment 3 Yilong Li 2015-09-15 21:20:28 UTC
Interesting, I have my reservations on this. I will find some time to investigate it further. Thanks!