Amichai Rothman created ARIES-2119:
--------------------------------------

             Summary: TCPServer concurrency issue when accepting sockets
                 Key: ARIES-2119
                 URL: https://issues.apache.org/jira/browse/ARIES-2119
             Project: Aries
          Issue Type: Bug
          Components: Remote Service Admin
    Affects Versions: rsa-1.16.1
            Reporter: Amichai Rothman


Currently the TCPServer spawns multiple threads, and all of them call 
ServerSocket.accept() concurrently, however this class is not thread-safe. 
JDK-8278270 implies this is fixed in OpenJDK 18, however the ServerSocket API 
documentation has no mention of this so it's likely a specific implementation 
detail and not a guarantee.

In any case, it's a non-conventional idiom - the common pattern is to have a 
single thread calling accept in a loop, then handing the accepted sockets over 
to other threads for handling the connections.

In addition, the running flag accessed by all of the threads is not thread-safe 
either. It should at least be volatile.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to