Skip to content

[Bug] remoteUpdateDstAddr_ is per-connection but overwritten by each semaphore #767

@miss-x-incognita

Description

@miss-x-incognita

IBConnection stores a single remoteUpdateDstAddr_ for IB no-atomic. When multiple semaphores are built on one IBConnection (e.g., src/core/executor/executor.cc), each semaphore constructor calls setRemoteUpdateDstAddr to update the single remoteUpdateDstAddr_. Therefore, only the last semaphore’s GPU address remains in remoteUpdateDstAddr_; earlier semaphores on the same connection no longer receive inbound updates at the correct location.

I would suggest either refactoring IB no-atomic delivery so the destination is not stored once per connection (stateless or per-completion semantics), or formally forbidding multiple semaphores on one connection for IB no-atomic. Let me know which you prefer so that I can raise a PR to fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions