OH3 hang/race condition with serial device symlink

For my first installation of OpenHAB, I purchased a Nortek HUSBZB-1. This Z-Wave/ZigBee dongle exposes itself to the OS as two serial devices. These are traditionally accessed via /dev/ttyUSB0 and ttyUSB1, but Ubuntu’s udev process also creates symlinks to these devices to allow consistently-named access. For example:
/dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_C1301617-if00-port0

Both the Z-Wave and ZigBee bindings work normally if I configure them with the ttyUSB* device path. However, if I configure either of them with the symlinked device path, OpenHAB hangs on start and pegs both CPU cores. I’d like to submit an issue for this behavior, but the logs don’t reveal anything useful.

Does anyone have any recommendations for what additional debug or trace logging I could enable to get useful information for an issue submission?

  • Platform information:
    • Hardware: MacBook Pro (Intel Core 2 Duo P8600, 4 GB)
    • OS: Ubuntu 20.04
    • Java Runtime Environment: OpenJDK 11.0.10
    • openHAB version: 3.0.1

Is this OpenJDK 11 or Zulu 11 ?
If it is not Zulu, please change your Java and try again.

I’ll check with Zulu 11.

Same result.

I also forgot to mention that I did add both the ttyUSB* and symlinked devices to EXTRA_JAVA_OPTS.

Looks like the last log entry before the hang is from nding.zigbee.serial.ZigBeeSerialPort, so that seems like a likely place to start with DEBUG or TRACE logging.

I just realized that namespace is truncated. What a noob.

It’s not a race condition or hang. It’s crashing and the service manager is helpfully restarting it. I found a crashlog from apport in /var/crash. I’ll open an issue and attach logs and the crash report.