Skip to content

rfsimulator hanging when running with phytest

RFSimulator in certain configurations causes what seems to be a deadlock between nrUE and gNB.

example gNB command:

sudo ./nr-softmodem -O ../../ci-scripts/conf_files/gnb.band78.106prb.rfsim.phytest-dora.conf --rfsim --phy-test --rfsimulator.serveraddr server -U 128 -t 28 -T 10

example ue command:

./nr-uesoftmodem --rfsim --phy-test --rfsimulator.serveraddr 127.0.0.1 

Both modems seem to be stuck in this loop:

    do {
      have_to_wait=false;

      buffer_t *b = NULL;
      for (int sock = 0; sock < MAX_FD_RFSIMU; sock++) {
        b = &t->buf[sock];

        if ( b->circularBuf )
          if ( t->nextRxTstamp+nsamps > b->lastReceivedTS ) {
            have_to_wait=true;
            break;
          }
      }

      if (have_to_wait) {
        LOG_D(HW,
              "Waiting on socket, current last ts: %ld, expected at least : %ld\n",
              b->lastReceivedTS,
              t->nextRxTstamp + nsamps);
        flushInput(t, 3, nsamps);
      }
    } while (have_to_wait);

This seems to happen when one of the executables in run without CAP_SYS_NICE (running with low priority threads). See #829 (comment 131365)

I've tested on 871078a6

Edited by Bartosz Podrygajlo