Skip to content
This repository has been archived by the owner on Apr 19, 2023. It is now read-only.

possible data race on NGServer.serversocket #63

Closed
yilongli opened this issue Aug 7, 2015 · 1 comment
Closed

possible data race on NGServer.serversocket #63

yilongli opened this issue Aug 7, 2015 · 1 comment

Comments

@yilongli
Copy link

yilongli commented Aug 7, 2015

Again, we got this race report when testing the K framework:

Data race on field com.martiansoftware.nailgun.NGServer.serversocket: {{{
    Concurrent read in thread T1 (locks held: {})
 ---->  at com.martiansoftware.nailgun.NGServer.getPort(NGServer.java:384)
        at org.kframework.kserver.KServerFrontEnd.run(KServerFrontEnd.java:74)
        at org.kframework.main.FrontEnd.main(FrontEnd.java:52)
        at org.kframework.main.Main.runApplication(Main.java:109)
        at org.kframework.main.Main.runApplication(Main.java:99)
        at org.kframework.main.Main.main(Main.java:51)
    T1 is the main thread

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

It says the assignment serversocket = new ServerSocket(port, 0, addr) and the return statement return ((serversocket == null) ? port : serversocket.getLocalPort()); are in a data race. I think it's sufficient to declare serversocket as volatile.

denji pushed a commit to closure-gun/nailgun that referenced this issue Aug 10, 2015
@sbalabanov-zz
Copy link
Contributor

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants