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