https://bz.apache.org/bugzilla/show_bug.cgi?id=58371

            Bug ID: 58371
           Summary: Data race on field
                    org.apache.tomcat.util.buf.MessageBytes.hasStrValue
           Product: Tomcat 8
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Util
          Assignee: dev@tomcat.apache.org
          Reporter: yilong...@runtimeverification.com

Reported by RV-Predict (a dynamic race detector) when running the test suite:
Data race on field org.apache.tomcat.util.buf.MessageBytes.hasStrValue: {{{
    Concurrent read in thread T18 (locks held: {Monitor@56dc46b6})
 ---->  at
org.apache.tomcat.util.buf.MessageBytes.toString(MessageBytes.java:156)
        at
org.apache.catalina.connector.Request.getRequestURI(Request.java:2178)
        at
org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:202)
        - locked Monitor@56dc46b6 at
org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:192) 
        at
org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:187)
        at
org.apache.catalina.core.TestAsyncContextImpl$DispatchingServlet$1.run(TestAsyncContextImpl.java:710)
    T18 is created by T17
        at
org.apache.catalina.core.TestAsyncContextImpl$DispatchingServlet.doGet(TestAsyncContextImpl.java:715)

    Concurrent write in thread T17 (locks held: {Monitor@74cf9f3a})
 ---->  at
org.apache.tomcat.util.buf.MessageBytes.toString(MessageBytes.java:167)
        at org.apache.coyote.RequestInfo.updateCounters(RequestInfo.java:167)
        at org.apache.coyote.Request.updateCounters(Request.java:566)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1153)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
        at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:277)
        - locked Monitor@74cf9f3a at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:259)
 
        at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    T17 is created by T15
        at
java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:1010)
}}}

Consider declaring hasStrValue as volatile to avoid instructions reordering?

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to