nrfutil device list command fails

I just freshly (Nov 25, 2024) installed the nrfutil 'core' exe and the nrfutil device command.

I try to list my nrf devices (a nrf52840 dongle is connected and another nrf52840 through jlink), but the command fails:

$ nrfutil device list
thread '<unnamed>' panicked at src\serialport\module\src\windows.rs:118:55:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at core\src\panicking.rs:221:5:
panic in a function that cannot unwind
stack backtrace:
0: 0x7ffcc9b646a1 - nrfdl_plugin_identifier
1: 0x7ffcc9b760d9 - nrfdl_plugin_identifier
2: 0x7ffcc9b62de7 - nrfdl_plugin_identifier
3: 0x7ffcc9b65ea9 - nrfdl_plugin_identifier
4: 0x7ffcc9b65a2c - nrfdl_plugin_identifier
5: 0x7ffcc9b66722 - nrfdl_plugin_identifier
6: 0x7ffcc9b665bf - nrfdl_plugin_identifier
7: 0x7ffcc9b64def - nrfdl_plugin_identifier
8: 0x7ffcc9b66206 - nrfdl_plugin_identifier
9: 0x7ffcc9b84e6d - nrfdl_plugin_identifier
10: 0x7ffcc9b84f13 - nrfdl_plugin_identifier
11: 0x7ffcc9b84fab - nrfdl_plugin_identifier
12: 0x7ffcc9a6dcab - nrfdl_plugin_enumerate
13: 0x7ffcf43b1060 - <unknown>
14: 0x7ffcf43b4d38 - is_exception_typeof
15: 0x7ffd491149c6 - RtlCaptureContext2
16: 0x7ffcc9a6d946 - nrfdl_plugin_enumerate
17: 0x7ffd0f02933a - <unknown>
18: 0x7ffd0f0268bd - <unknown>
19: 0x7ffd0f023e86 - <unknown>
20: 0x7ffd0f023b6f - <unknown>
21: 0x7ffd0f004553 - <unknown>
22: 0x7ffd0f024822 - <unknown>
23: 0x7ffd0f027e03 - <unknown>
24: 0x7ffd0f004e64 - <unknown>
25: 0x7ffd0f003918 - <unknown>
26: 0x7ffd1da229a9 - Concurrency::details::_Schedule_chore
27: 0x7ffd490d287a - RtlHashUnicodeString
28: 0x7ffd490a5e46 - RtlClearThreadWorkOnBehalfTicket
29: 0x7ffd46ee257d - BaseThreadInitThunk
30: 0x7ffd490caf08 - RtlUserThreadStart
thread caused non-unwinding panic. aborting.
Error: Subprocess C:\Users\ronaldh\.nrfutil\bin\nrfutil-device.exe failed with unexpected exit code Some(-1073740791)

Setting the RUST_BACKTRACE env-var produces the extra:

Stack backtrace:
0: git_odb_object_data
1: git_odb_object_data
2: git_midx_writer_new
3: <unknown>
4: <unknown>
5: <unknown>
6: <unknown>
7: git_odb_object_data
8: <unknown>
9: git_midx_writer_new
10: BaseThreadInitThunk
11: RtlUserThreadStart

Unplugging either or both connected nrf devices from USB doesn't change the behavior.

What gives?

NOTE: programming the nrf52840 dongle using the programmer tool in "nrf connect desktop" is just fine.

Parents
  • Hi,

    Can you provide more information about your environment?

    I just freshly (Nov 25, 2024) installed the nrfutil 'core' exe and the nrfutil device command.

    Which "nrfutil" and "nrfutil device" versions do you use?

    Where did you install nrfutil from?

    $ nrfutil device list
    thread '<unnamed>' panicked at src\serialport\module\src\windows.rs:118:55:
    called `Option::unwrap()` on a `None` value
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    thread '<unnamed>' panicked at core\src\panicking.rs:221:5:
    panic in a function that cannot unwind

    Is this recent problem? Did you have this issue before?

    Best regards,
    Dejan

  • As I said I just installed it today from the internet, so yes it is a recent problem and no I didn't have this issue before.


    $ nrfutil.exe --version
    nrfutil 7.12.0 (39003c9 2024-06-10)
    commit-hash: 39003c9d0e5d946af0f417cfadf4ac55a6d03c19
    commit-date: 2024-06-10
    host: x86_64-pc-windows-msvc
    build-timestamp: 2024-06-10T15:56:55.227746900Z
    classification: nrf-external

    $ nrfutil.exe device --version
    nrfutil-device 2.7.6 (040a257 2024-11-15)
    commit-hash: 040a25785d0b79da111e042ef002f04cf8547e46
    commit-date: 2024-11-15
    host: x86_64-pc-windows-msvc
    build-timestamp: 2024-11-15T10:11:07.009117500Z
    classification: nrf-external

    Detected SEGGER J-Link version: JLink_V7.94i

  • OK, now the behavior is:

    $ nrfutil device list
    thread 'main' panicked at src\list.rs:63:30:
    comName did not have a string value
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    Error: Subprocess C:\Users\ronaldh\.nrfutil\bin\nrfutil-device.exe failed with unexpected exit code Some(101)

    Although there is now no unhandled exception, it still doesn't help me much...

    Friendly names are for human consumption. I think it is a bad idea to parse a friendly name to discover the COMx. There MUST be a better way (even in windows)!

  • I will add a few screenshots that could potentially help solving this.

    There are so many 'FriendlyName's in the registry, I wasn't able to figure out which FriendlyName the nrfutil-device program finds to determine the COM name. The COM3 is my samsung phone (Copilot: The ssudmdm.sys file is a driver associated with Samsung mobile devices.) and the COM6 is the BLE sniffer.




    The USB serial device (com6) is the nrf52840 dongle now programmed as BLE sniffer, so it doesn't support DFU anymore. The USB DFU is some other device (maybe also my samsung), not the nrf dongle nor the jlink.

  • OK, I guess I figured out what you're doing.
    You are traversing the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB to find 'FriendlyName's for USB devices.

    I see indeed that for my 2 COM ports, there is one that has the COMx in parentheses in the FriendlyName (the BLE sniffer) and one that hasn't (the samsung phone). You are at the mercy of the USB device driver vendor it that is available or not.
    However, in the subkey 'Device Parameters' ALWAYS has reliably the PortName key which has the COMx name.

    I would advise to use that instead of parsing the FriendlyName to try and find the PortName, which may or may not be available.

    Your're welcome!

  • Hi,

    Thank you very much for your suggestion. We will look into your suggested solution and work further on a better fix.

    Best regards,
    Dejan

  • Note that now I know the behavior is caused by the samsung phone not having the PortName included in the FriendlyName, I can confirm that with the samsung phone disconnected, the `nrfutil device list` command works normally.

Reply Children
  • Hi,

    Thank you for this comment. I have made relevant team aware of this.

    Best regards,
    Dejan

  • Hi,

    We are getting closer to releasing the fix. I expect to get back to you by the end of the next week.

    Best regards,
    Dejan

  • Hi,

    The fix has been released. Can you try to update your nrfutil-device?

    Best regards,
    Dejan

  • Just now, I updated the device command of nrfutil to 2.7.14, but the behavior is still the same when the android phone is plugged in the USB. With the RUST_BACTRACE=full, I get:

    $ RUST_BACKTRACE=full nrfutil device list
    thread 'main' panicked at src\list.rs:62:30:
    comName did not have a string value
    stack backtrace:
    0: 0x7ff672b9a641 - <unknown>
    1: 0x7ff672bb1c4a - <unknown>
    2: 0x7ff672b961e7 - <unknown>
    3: 0x7ff672b9a485 - <unknown>
    4: 0x7ff672b9bfb7 - <unknown>
    5: 0x7ff672b9bd97 - <unknown>
    6: 0x7ff672b9c643 - <unknown>
    7: 0x7ff672b9c4c9 - <unknown>
    8: 0x7ff672b9ad8f - <unknown>
    9: 0x7ff672b9c0ce - <unknown>
    10: 0x7ff672bceb21 - <unknown>
    11: 0x7ff672bceafc - <unknown>
    12: 0x7ff6727c7f55 - <unknown>
    13: 0x7ff672bb1c4a - <unknown>
    14: 0x7ff6727c8a72 - <unknown>
    15: 0x7ff672921ffb - <unknown>
    16: 0x7ff672913317 - <unknown>
    17: 0x7ff6728e8ca0 - <unknown>
    18: 0x7ff67295cdc5 - <unknown>
    19: 0x7ff6727e3bda - <unknown>
    20: 0x7ff6727bf7e2 - <unknown>
    21: 0x7ff6727c4fe6 - <unknown>
    22: 0x7ff6728d21da - <unknown>
    23: 0x7ff672b8edec - <unknown>
    24: 0x7ff6727bf96c - <unknown>
    25: 0x7ff672bba44c - <unknown>
    26: 0x7fff59a1259d - BaseThreadInitThunk
    27: 0x7fff5a88af38 - RtlUserThreadStart
    Error: Subprocess C:\Users\ronaldh\.nrfutil\bin\nrfutil-device.exe failed with unexpected exit code Some(101)

    Stack backtrace:
    0: git_odb_object_data
    1: git_odb_object_data
    2: git_midx_writer_new
    3: <unknown>
    4: <unknown>
    5: <unknown>
    6: <unknown>
    7: git_odb_object_data
    8: <unknown>
    9: git_midx_writer_new
    10: BaseThreadInitThunk
    11: RtlUserThreadStart

  • Hi,

    Thank you for the status update.
    We will further look into this issue. I expect to get back to you during next week.

    Best regards,
    Dejan

Related