Skip to content

Possible concurrent access to list eeAPIPXAssocPxyList #3

@aitorperezgmv

Description

@aitorperezgmv

Hi, while debugging a weird problem during the sims campaign of one of the satellite simulators based on SIMULUS (SIMULUS 10.6.0 and sleapi-j 5.1.6) we have seen a possible concurrent access to one of the arrays in the implementation. In particular, we have seen a couple of requests to unbound links (from the MCS), i.e., two operations like the following:

"2026-05-21T06:55:31.677339000","Information","rcf=onlt0101","/Jvm","Unbound service instance"
"2026-05-21T06:55:31.677362000","Information","rcf=onlt0001","/Jvm","Unbound service instance

We understand the MCS requested to remove the binds very close in time (a few microseconds difference), one of them went through and the other one did not, producing the following exception:

java.lang.NullPointerException
at esa.sle.impl.api.apipx.pxcs.EE_APIPX_Binder.cleanAssoc(EE_APIPX_Binder.java:241)
at esa.sle.impl.api.apipx.pxcs.EE_APIPX_AssocPxy.releaseChannel(EE_APIPX_AssocPxy.java:657)
at esa.sle.impl.api.apipx.pxcs.EE_APIPX_AssocPxy.takeData(EE_APIPX_AssocPxy.java:147)
at esa.sle.impl.api.apipx.pxcs.EE_APIPX_Link.rcvData(EE_APIPX_Link.java:354)
at esa.sle.impl.api.apipx.pxcs.EE_APIPX_Link.threadMain(EE_APIPX_Link.java:282)
at esa.sle.impl.api.apipx.pxcs.local.EE_APIPX_LocalLink.threadMain(EE_APIPX_LocalLink.java:239)
at esa.sle.impl.api.apipx.pxcs.EE_APIPX_Link$ReceivingThread.run(EE_APIPX_Link.java:701)

Reading the code in EE_APIPX_Binder.java:241, we have found that the only possibility is that next() returns a null pointer. This code seems to be removing an item from the list. We believe the two requests to unbind are trying to remove different elements in the list, and, because the list is not protected by a mutex, one may remove an element that the other is still trying to access. Is this possible?

Thank you in advance for your time!
Aitor and Agustín

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions