https://bz.apache.org/bugzilla/show_bug.cgi?id=58401
Bug ID: 58401
Summary: Potential data race inside the data array used in
org.apache.catalina.tribes.io.ChannelData &
org.apache.catalina.tribes.membership.MemberImpl
Product: Tomcat 8
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
Reported by RV-Predict (a dynamic race detector) when running the test suite:
Data race on array element #16: {{{
Concurrent read in thread T47 (locks held: {Monitor@7ccb7286,
Monitor@7ccb7255, Monitor@258500df})
----> at
org.apache.catalina.tribes.io.ChannelData.getDataPackage(ChannelData.java:216)
at
org.apache.catalina.tribes.io.XByteBuffer.createDataPackage(XByteBuffer.java:350)
at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:68)
- locked Monitor@258500df at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:n/a)
at
org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:51)
at
org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:54)
at
org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:82)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76)
at
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor$MangleOrderInterceptor.sendMessage(TestOrderInterceptor.java:187)
- locked Monitor@7ccb7255 at
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor$MangleOrderInterceptor.sendMessage(TestOrderInterceptor.java:n/a)
at
org.apache.catalina.tribes.group.interceptors.OrderInterceptor.sendMessage(OrderInterceptor.java:88)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76)
at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:233)
at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:186)
at
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor$2.run(TestOrderInterceptor.java:111)
- locked Monitor@7ccb7286 at
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor$2.run(TestOrderInterceptor.java:110)
T47 is created by T1
at
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor.testOrder2(TestOrderInterceptor.java:124)
Concurrent write in thread T37 (locks held: {})
----> at
org.apache.catalina.tribes.io.XByteBuffer.toBytes(XByteBuffer.java:478)
at
org.apache.catalina.tribes.membership.MemberImpl.getData(MemberImpl.java:204)
at
org.apache.catalina.tribes.membership.MemberImpl.getData(MemberImpl.java:170)
at
org.apache.catalina.tribes.membership.MemberImpl.getData(MemberImpl.java:164)
at
org.apache.catalina.tribes.membership.McastServiceImpl.send(McastServiceImpl.java:501)
at
org.apache.catalina.tribes.membership.McastServiceImpl.send(McastServiceImpl.java:487)
at
org.apache.catalina.tribes.membership.McastServiceImpl$SenderThread.run(McastServiceImpl.java:575)
T37 is created by T31
at
org.apache.catalina.tribes.membership.McastServiceImpl.start(McastServiceImpl.java:280)
}}}
RV-Predict uses System.identityHashCode to identify distinct memory locations.
When there is a hashcode collision, it could lead to false alarm. This occurs
more often on race report which involves array element. I am not familiar with
the code enough to check if this data array can shared between threads.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]