Skip to content

lsp-devtools inspect hangs upon quiting #229

@castedo

Description

@castedo

VERSION 0.3

REPO STEPS:

  • start lsp-devtools inspect
  • quit, either by CTRL-Q or clicking "palette" and then "Quit"
  • wait a few seconds or 5 minutes
  • CTRL-C (twice if you don't wait 5 minutes)

RESULT
Hanging program, if you wait 5 minutes then:

/usr/lib64/python3.14/asyncio/events.py:94: RuntimeWarning: The executor did not finishing joining its threads within 300 seconds.

or if you hit CTRL-C earlier then:

^CTraceback (most recent call last):
  File "/usr/local/bin/lsp-devtools", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/local/lib/python3.14/site-packages/lsp_devtools/cli/__init__.py", line 65, in main
    return parsed_args.run(parsed_args, extra)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/lsp_devtools/cli/inspector.py", line 98, in inspector
    app.run()
    ~~~~~~~^^
  File "/usr/local/lib/python3.14/site-packages/textual/app.py", line 2277, in run
    return asyncio.run(run_app())
           ~~~~~~~~~~~^^^^^^^^^^^
  File "/usr/lib64/python3.14/asyncio/runners.py", line 203, in run
    with Runner(debug=debug, loop_factory=loop_factory) as runner:
         ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/asyncio/runners.py", line 63, in __exit__
    self.close()
    ~~~~~~~~~~^^
  File "/usr/lib64/python3.14/asyncio/runners.py", line 73, in close
    loop.run_until_complete(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        loop.shutdown_default_executor(constants.THREAD_JOIN_TIMEOUT))
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/asyncio/base_events.py", line 706, in run_until_complete
    self.run_forever()
    ~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/asyncio/base_events.py", line 677, in run_forever
    self._run_once()
    ~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/asyncio/base_events.py", line 2008, in _run_once
    event_list = self._selector.select(timeout)
  File "/usr/lib64/python3.14/selectors.py", line 452, in select
    fd_event_list = self._selector.poll(timeout, max_ev)

and for the final CTRL+C:

^CException ignored on threading shutdown:
Traceback (most recent call last):
  File "/usr/lib64/python3.14/threading.py", line 1576, in _shutdown
    atexit_call()
  File "/usr/lib64/python3.14/threading.py", line 1547, in <lambda>
    _threading_atexits.append(lambda: func(*arg, **kwargs))
  File "/usr/lib64/python3.14/concurrent/futures/thread.py", line 31, in _python_exit
    t.join()
  File "/usr/lib64/python3.14/threading.py", line 1132, in join
    self._os_thread_handle.join(timeout)
KeyboardInterrupt: 

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglsp-devtoolsIssues affecting the lsp-devtools package

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions