New Windows issue (with current code including fix #48)
- Dominant language
- Python
- Stars
- 114
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
Hi tshirtman,
A simple stop_all() on a server is producing an error message on Win10 (not on Linux):
```
Traceback (most recent call last):
File "D:\blender-2.80-windows64\2.80\python\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "D:\blender-2.80-windows64\2.80\python\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\users\hebus\Application Data\Blender Foundation\Blender\2.80\scripts\addons\MOM\oscpy\server.py", line 336, in _listen
data, sender = sender_socket.recvfrom(65535)
OSError: [WinError 10038] Windows Error 0x2736
```
This happens despite the recent try/catch because its an OSError and not a ConnectionResetError that the new code can intercept.
I edited manually the line 337 to catch all errors as a workaround and my code can now stop the server and reconnect successfully. You will of course determinate a proper solution.
I found this while googling on the error message:
https://stackoverflow.com/questions/35889267/an-operation-was-attempted-on-something-that-is-not-a-socket-tried-fixing-a-lot
Contributor guide
Research direction
Start in server.py at the _listen method and the recvfrom call around line 336, then review the existing exception handling added for stop_all(). Reproduce the Windows stop_all() failure if possible and verify that stopping the server no longer emits the WinError 10038 traceback and that reconnecting still works.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100