Environment: Fedora43 x86_64 KVM, packaged Python v3.14.4, using packaged v0.8 and upstream v0.9 of WSDD.
Precis: The --chroot environment causes unhandled asyncio exceptions relating to UTF-8 writing. The chroot jail needs "some more python library stuff" (not sure specifically what) in it to work. Without the chroot environment, the script runs as expected. With chroot, the process keeps running, but is nonfunctional due to the broken aio system.
Stack trace:
# ./src/wsdd.py --chroot /run/wsdd
2026-04-29 11:56:01,195:wsdd WARNING(pid 4422): no interface given, using all interfaces
2026-04-29 11:56:01,196:wsdd WARNING(pid 4422): chrooted but running as root, consider -u option
2026-04-29 11:56:01,197:asyncio ERROR(pid 4422): Exception in callback NetlinkAddressMonitor.handle_change()
handle: <Handle NetlinkAddressMonitor.handle_change()>
Traceback (most recent call last):
File "/usr/lib64/python3.14/asyncio/events.py", line 94, in _run
File "/home/cloud-user/git/wsdd/./src/wsdd.py", line 1600, in handle_change
File "/home/cloud-user/git/wsdd/./src/wsdd.py", line 1359, in handle_new_address
File "/home/cloud-user/git/wsdd/./src/wsdd.py", line 931, in __init__
File "/home/cloud-user/git/wsdd/./src/wsdd.py", line 954, in send_hello
File "/home/cloud-user/git/wsdd/./src/wsdd.py", line 467, in build_message
File "/home/cloud-user/git/wsdd/./src/wsdd.py", line 583, in xml_to_str
File "/usr/lib64/python3.14/xml/etree/ElementTree.py", line 1094, in tostring
File "/usr/lib64/python3.14/xml/etree/ElementTree.py", line 727, in write
File "/usr/lib64/python3.14/contextlib.py", line 141, in __enter__
File "/usr/lib64/python3.14/xml/etree/ElementTree.py", line 790, in _get_writer
LookupError: unknown encoding: utf-8
When the process is terminated, it gets the same exception again inside the sigterm exception handler as well.
POC workaround:
If I copy /usr/lib64/python3.14 into /run/wsdd/usr/lib64/python3.14, it works as intended - but that's pretty fragile and environment-specific. The simpler approach is to run it without the chroot.
Environment: Fedora43 x86_64 KVM, packaged Python v3.14.4, using packaged v0.8 and upstream v0.9 of WSDD.
Precis: The
--chrootenvironment causes unhandled asyncio exceptions relating to UTF-8 writing. The chroot jail needs "some more python library stuff" (not sure specifically what) in it to work. Without the chroot environment, the script runs as expected. With chroot, the process keeps running, but is nonfunctional due to the broken aio system.Stack trace:
When the process is terminated, it gets the same exception again inside the sigterm exception handler as well.
POC workaround:
If I copy
/usr/lib64/python3.14into/run/wsdd/usr/lib64/python3.14, it works as intended - but that's pretty fragile and environment-specific. The simpler approach is to run it without the chroot.