Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
None
-
None
-
None
-
None
Description
Looking at the DataNode.run() and join() methods, they are manipulating the state of the dataNodeThread:
void join() {
if (dataNodeThread != null) {
try
catch (InterruptedException e) {}
}
}
There's something similar in shutdown()
This could lead to race conditions on shutdown, where the check passes and then the reference is null when the next method is invoked.
Marking major as race conditions are always trouble, and hard to test.