facebookarchive/nailgun

data race on field com.martiansoftware.nailgun.NGSession.done

Closed this issue · 1 comments

Race report:

Data race on field com.martiansoftware.nailgun.NGSession.done: {{{
    Concurrent read in thread T62 (locks held: {Monitor@669c82b})
 ---->  at com.martiansoftware.nailgun.NGSession.nextSocket(NGSession.java:165)
        - locked Monitor@669c82b at com.martiansoftware.nailgun.NGSession.nextSocket(NGSession.java:163) 
        at com.martiansoftware.nailgun.NGSession.run(NGSession.java:186)
    T62 is created by T13
        at com.martiansoftware.nailgun.NGSessionPool.take(NGSessionPool.java:85)

    Concurrent write in thread T13 (locks held: {})
 ---->  at com.martiansoftware.nailgun.NGSession.shutdown(NGSession.java:133)
        at com.martiansoftware.nailgun.NGServer.run(NGServer.java:431)
    T13 is created by T1
        at org.kframework.kserver.KServerFrontEnd.run(KServerFrontEnd.java:72)
}}}

It seems that the assignment done = true at line 131 should be moved into the synchronization block below.

Closing all issues older than 6 months; please reopen if it is still relevant