Public bug reported:
It appears that the wsdd client is crashing when run by gvfsd in this context.
I'm not familiar with the relevant protocols, so I don't know if my Printer is
sending some invalid response or wsdd is buggy, but crash logging an error is
the wrong behavior (addressed obfuscated):
```
http.client.InvalidURL: URL can't contain control characters. '/
http://[2000:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%eno1]:3911/
http://192.168.xx.yy:3911/' (found at least ' ')
```
Here is the complete log entry:
```
Jul 12 22:15:08 myhost gvfsd[304734]: 2026-07-12 22:15:08,909:asyncio ERROR(pid
304734): Exception in callback MulticastHandler.read_socket(<socket.socke...
50692, 0, 0)>)
Jul 12 22:15:08 myhost gvfsd[304734]: handle: <Handle
MulticastHandler.read_socket(<socket.socke... 50692, 0, 0)>)>
Jul 12 22:15:08 myhost gvfsd[304734]: Traceback (most recent call last):
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/asyncio/events.py", line 88, in _run
Jul 12 22:15:08 myhost gvfsd[304734]: self._context.run(self._callback,
*self._args)
Jul 12 22:15:08 myhost gvfsd[304734]: File "/usr/bin/wsdd", line 328, in
read_socket
Jul 12 22:15:08 myhost gvfsd[304734]:
handler.handle_packet(msg.decode('utf-8'), address)
Jul 12 22:15:08 myhost gvfsd[304734]: File "/usr/bin/wsdd", line 739, in
handle_packet
Jul 12 22:15:08 myhost gvfsd[304734]: self.handle_message(msg, src)
Jul 12 22:15:08 myhost gvfsd[304734]: File "/usr/bin/wsdd", line 532, in
handle_message
Jul 12 22:15:08 myhost gvfsd[304734]: retval = handler(header, body)
Jul 12 22:15:08 myhost gvfsd[304734]: ^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File "/usr/bin/wsdd", line 795, in
handle_probe_match
Jul 12 22:15:08 myhost gvfsd[304734]:
self.perform_metadata_exchange(endpoint, xaddr)
Jul 12 22:15:08 myhost gvfsd[304734]: File "/usr/bin/wsdd", line 846, in
perform_metadata_exchange
Jul 12 22:15:08 myhost gvfsd[304734]: with urllib.request.urlopen(request,
None, 2.0) as stream:
Jul 12 22:15:08 myhost gvfsd[304734]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/urllib/request.py", line 215, in urlopen
Jul 12 22:15:08 myhost gvfsd[304734]: return opener.open(url, data, timeout)
Jul 12 22:15:08 myhost gvfsd[304734]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/urllib/request.py", line 515, in open
Jul 12 22:15:08 myhost gvfsd[304734]: response = self._open(req, data)
Jul 12 22:15:08 myhost gvfsd[304734]: ^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/urllib/request.py", line 532, in _open
Jul 12 22:15:08 myhost gvfsd[304734]: result =
self._call_chain(self.handle_open, protocol, protocol +
Jul 12 22:15:08 myhost gvfsd[304734]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/urllib/request.py", line 492, in _call_chain
Jul 12 22:15:08 myhost gvfsd[304734]: result = func(*args)
Jul 12 22:15:08 myhost gvfsd[304734]: ^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/urllib/request.py", line 1373, in http_open
Jul 12 22:15:08 myhost gvfsd[304734]: return
self.do_open(http.client.HTTPConnection, req)
Jul 12 22:15:08 myhost gvfsd[304734]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/urllib/request.py", line 1344, in do_open
Jul 12 22:15:08 myhost gvfsd[304734]: h.request(req.get_method(),
req.selector, req.data, headers,
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/http/client.py", line 1356, in request
Jul 12 22:15:08 myhost gvfsd[304734]: if self.__state == _CS_REQ_STARTED:
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/http/client.py", line 1367, in _send_request
Jul 12 22:15:08 myhost gvfsd[304734]: def _send_request(self, method, url,
body, headers, encode_chunked):
Jul 12 22:15:08 myhost gvfsd[304734]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/http/client.py", line 1201, in putrequest
Jul 12 22:15:08 myhost gvfsd[304734]: else:
Jul 12 22:15:08 myhost gvfsd[304734]: File
"/usr/lib/python3.12/http/client.py", line 1301, in _validate_path
Jul 12 22:15:08 myhost gvfsd[304734]: raise ValueError(
Jul 12 22:15:08 myhost gvfsd[304734]: http.client.InvalidURL: URL can't contain
control characters. '/
http://[2000:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%eno1]:3911/
http://192.168.xx.yy:3911/' (found at least ' ')
```
** Affects: wsdd (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2160479
Title:
wsdd crash with unruly printer
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/wsdd/+bug/2160479/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs