Skip to content

Restarting the controller while the gNB runs leaves the dApp reading stale rows #10

Open

Description

@aferaudo

What happens

If the E3Controller restarts while the gNB keeps running, the dApp gets indications that point to rows nobody writes anymore.

Why

  • On exit, the controller deletes /e3_ran_buffers. On start, it creates a new one with the same name.
  • The epoch it sends to the gNB helper is always 1 (shm_epoch{1} in src/e3sm/slot_iq_pipeline.h).
  • The helper sees the same epoch, thinks it is already attached, and keeps writing into the old, deleted region (h_e3_attach in ocudu's ocudu_janus/e3/jbpf_e3_publish.cpp).
  • The dApp opens the new region, so it reads empty rows.

Workaround

Restart the gNB together with the controller.

Possible fix

Use a new epoch on every controller start (for example from the clock), so the helper drops the old region and attaches to the new one.

Found in the code while fixing the dApp restart bug in #8. Not reproduced yet.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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