Robyn icon indicating copy to clipboard operation
Robyn copied to clipboard

[BUG?] Startup failure OSError: [WinError 87] The parameter is incorrect

Open justanotherbyte opened this issue 3 years ago • 11 comments
trafficstars

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: image

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 avatar Jul 28 '22 18:07 justanotherbyte

@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?

sansyrox avatar Jul 28 '22 18:07 sansyrox

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

justanotherbyte avatar Jul 28 '22 19:07 justanotherbyte

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 avatar Jul 28 '22 19:07 justanotherbyte

@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.

sansyrox avatar Jul 28 '22 20:07 sansyrox

Awesome thank you.

justanotherbyte avatar Jul 28 '22 21:07 justanotherbyte

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.

sansyrox avatar Jul 28 '22 21:07 sansyrox

@justanotherbyte , I just had a look at this. Can you please confirm if it works on wsl?

sansyrox avatar Jul 31 '22 02:07 sansyrox

Yes, it works on wsl

justanotherbyte avatar Aug 01 '22 17:08 justanotherbyte

Does robyn only work on Linux?

justanotherbyte avatar Aug 01 '22 17:08 justanotherbyte

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.

sansyrox avatar Aug 01 '22 19:08 sansyrox

Blocked on this issue: https://github.com/sansyrox/robyn/issues/224

sansyrox avatar Aug 06 '22 00:08 sansyrox

This has been fixed in #261. Thanks for the report.

sansyrox avatar Aug 20 '22 16:08 sansyrox