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

Reply via email to