Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"gevent.exceptions.LoopExit: This operation would block forever" when tried to launch dev server #122

Open
knuurr opened this issue Jan 24, 2024 · 4 comments
Labels
question Further information is requested

Comments

@knuurr
Copy link

knuurr commented Jan 24, 2024

I'm willing to do small development for betanin.

I cloned github repo and tried to launch server.

I created venv, installed requirements, plus some other missing dependencies when I tried to launch it.... But I can't fight this one.

(venv) qbus@DESKTOP-CA07ILV:~/betanin-dev/betanin$ python3 -m betanin.entry.betanin
2024-01-24 21:37:20.524 | INFO     | __main__:_print_meta_info:34 - platform - Linux-5.15.133.1-microsoft-standard-WSL2-x86_64-with-glibc2.35
2024-01-24 21:37:20.525 | INFO     | __main__:_print_meta_info:34 - python_version - 3.10.12
2024-01-24 21:37:20.525 | INFO     | __main__:_print_meta_info:34 - betanin_version - v0.5.6

2024-01-24 21:37:20.525 | INFO     | __main__:_ensure_config:61 - using config `/home/qbus/.config/betanin/config.toml`
2024-01-24 21:37:20.525 | INFO     | __main__:_ensure_secret_key:93 - using secret key `/home/qbus/.local/share/betanin/secret_key`
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
2024-01-24 21:37:20.587 | INFO     | __main__:_start_job:101 - starting job betanin.jobs.import_torrents ()
2024-01-24 21:37:20.587 | INFO     | __main__:_start_job:101 - starting job betanin.jobs.serve_web ('', 9393)
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/qbus/betanin-dev/betanin/betanin/entry/betanin.py", line 146, in <module>
    main(None, None)
  File "/home/qbus/betanin-dev/betanin/venv/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/qbus/betanin-dev/betanin/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/qbus/betanin-dev/betanin/venv/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/qbus/betanin-dev/betanin/venv/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/qbus/betanin-dev/betanin/betanin/entry/betanin.py", line 137, in main
    gevent.joinall(
  File "src/gevent/greenlet.py", line 1065, in gevent._gevent_cgreenlet.joinall
  File "src/gevent/greenlet.py", line 1075, in gevent._gevent_cgreenlet.joinall
  File "src/gevent/_hub_primitives.py", line 250, in gevent._gevent_c_hub_primitives.wait_on_objects
  File "src/gevent/_hub_primitives.py", line 287, in gevent._gevent_c_hub_primitives.wait_on_objects
  File "src/gevent/_hub_primitives.py", line 185, in gevent._gevent_c_hub_primitives._WaitIterator.__next__
  File "src/gevent/_hub_primitives.py", line 176, in gevent._gevent_c_hub_primitives._WaitIterator.__next__
  File "src/gevent/_waiter.py", line 195, in gevent._gevent_c_waiter.MultipleWaiter.get
  File "src/gevent/_waiter.py", line 154, in gevent._gevent_c_waiter.Waiter.get
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
gevent.exceptions.LoopExit: This operation would block forever
        Hub: <Hub '' at 0x7fa5c1319e90 epoll default pending=0 ref=0 fileno=4 thread_ident=0x7fa5c436f000>
        Handles:
[]
(venv) qbus@DESKTOP-CA07ILV:~/betanin-dev/betanin$ 
@sentriz
Copy link
Owner

sentriz commented Jan 24, 2024

ah yeah that gevent stuff is really annoying and i don't fully understand it. does the issue persist with python3.11?

@knuurr
Copy link
Author

knuurr commented Jan 26, 2024

Yep,

  File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
gevent.exceptions.LoopExit: This operation would block forever
        Hub: <Hub '' at 0x7fd4ba167100 epoll default pending=0 ref=0 fileno=4 thread_ident=0x7fd4bd49ab80>
        Handles:
[]
(venv) qbus@DESKTOP-CA07ILV:~/betanin-dev/betanin$ python --version
Python 3.11.7
(venv) qbus@DESKTOP-CA07ILV:~/betanin-dev/betanin$ 

Also, if this doesn't work then how do you build Docker image? Maybe I'm missing something or don't understand. I also had issues with dependencies that not all are in requirements file. Just curious 😋

@sentriz
Copy link
Owner

sentriz commented Jan 26, 2024

i just tried this on my local machine

$ cd betanin
$ git pull
$ python -m venv venv
$ source ./venv/bin/activate.fish 
$ pip install .
$ python -m betanin.entry.betanin

seems to work fine, how did your steps differ?

@knuurr
Copy link
Author

knuurr commented Jan 26, 2024

pip install .

Lol, didn't know you can do pip install . .... I did it through pip install -r docker-requirements.txt

Still, doing pip proper way and uing 3.11 doesn't solve gevent issue.

I also assume or hope it's not related to using WSL2 for development.

I'd propose a pull request but I can't check whether it's 100% working without testing it on runing server, and without that I can't get it working.

@sentriz sentriz added the question Further information is requested label Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants