Robyn
Robyn copied to clipboard
[BUG?] Startup failure OSError: [WinError 87] The parameter is incorrect
Description
When trying to start a Robyn app using the source code on the repo's README.md example, i get a massive error.
Traceback (most recent call last):
File "C:\Users\Happy\OneDrive\Documents\Coding Projects\robyntests\app.py", line 9, in <module>
app.start(port=5000)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\robyn\__init__.py", line 127, in start
p.start()
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\process.py", line 121, in start
self._popen = self._Popen(self)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\context.py", line 327, in _Popen
return Popen(process_obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\popen_spawn_win32.py", line 93, in __init__
reduction.dump(process_obj, to_child)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\reduction.py", line 63, in dump
ForkingPickler(file, protocol, *args, **kwds).dump(obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\dill\_dill.py", line 620, in dump
StockPickler.dump(self, obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 487, in dump
self.save(obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 717, in save_reduce
save(state)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\dill\_dill.py", line 1251, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 902, in save_tuple
save(element)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 578, in save
rv = reduce(self.proto)
TypeError: cannot pickle 'builtins.SocketHeld' object
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\spawn.py", line 102, in spawn_main
source_process = _winapi.OpenProcess(
OSError: [WinError 87] The parameter is incorrect
Expected Behavior
Robyn runs I guess?
Screenshots
My code:

Environment:
- Host OS: Windows
- Browser: Firefox
- Python Version: 3.10.4
[Optional] Additional Context
I'm running my file using the generic python app.py
@justanotherbyte , can you please try running the app.py with the command:
python3 app.py --processes=1 --workers=1
And share the output with me?
Traceback (most recent call last):
File "C:\Users\Happy\OneDrive\Documents\Coding Projects\robyntests\app.py", line 9, in <module>
app.start(port=5000)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\robyn\__init__.py", line 127, in start
p.start()
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\process.py", line 121, in start
self._popen = self._Popen(self)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\context.py", line 327, in _Popen
return Popen(process_obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\popen_spawn_win32.py", line 93, in __init__
reduction.dump(process_obj, to_child)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\reduction.py", line 63, in dump
ForkingPickler(file, protocol, *args, **kwds).dump(obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\dill\_dill.py", line 620, in dump
StockPickler.dump(self, obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 487, in dump
self.save(obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 717, in save_reduce
save(state)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\dill\_dill.py", line 1251, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 902, in save_tuple
save(element)
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\pickle.py", line 578, in save
rv = reduce(self.proto)
TypeError: cannot pickle 'builtins.SocketHeld' object
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Happy\AppData\Local\Programs\Python\Python310\lib\site-packages\multiprocess\spawn.py", line 102, in spawn_main
source_process = _winapi.OpenProcess(
OSError: [WinError 87] The parameter is incorrect
same error
If it makes a difference, I am running the command like this: py app.py --processes 1 --workers 1 because I am on windows
@justanotherbyte , you're running it the right way. But this is not an expected behaviour.
I will have a look at this. Thank you!
Hopefully it should be fixed by the weekend.
Awesome thank you.
A potential fix looks like something here: https://stackoverflow.com/questions/36370724/python-passing-a-tcp-socket-object-to-a-multiprocessing-queue
Need to investigate more.
@justanotherbyte , I just had a look at this. Can you please confirm if it works on wsl?
Yes, it works on wsl
Does robyn only work on Linux?
Does robyn only work on Linux?
@justanotherbyte , it should work on all platforms. I am trying to set up a windows environment to fix this issue.
Blocked on this issue: https://github.com/sansyrox/robyn/issues/224
This has been fixed in #261. Thanks for the report.