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

RuntimeError-guard mouse handlers? #351

Open
2 tasks
goodboy opened this issue Jul 6, 2022 · 0 comments
Open
2 tasks

RuntimeError-guard mouse handlers? #351

goodboy opened this issue Jul 6, 2022 · 0 comments
Labels
bug guille broke it prolly good first issue the post-tina zone UI

Comments

@goodboy
Copy link
Contributor

goodboy commented Jul 6, 2022

problem

As a starter NOTE: this probably has much in common with what goodboy/tractor#165 is trying to solve..

I've seen this crash a few times now that often results in a hang instead of a full crash due to the original error:

/home/goodboy/repos/pyqtgraph/pyqtgraph/GraphicsScene/GraphicsScene.py:345: RuntimeWarning: Error sending hover exit event:
Traceback (most recent call last):
  File "/home/goodboy/repos/piker/310/bin/piker", line 33, in <module>
    sys.exit(load_entry_point('piker', 'console_scripts', 'piker')())
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/home/goodboy/repos/piker/piker/ui/cli.py", line 162, in chart
    _main(
  File "/home/goodboy/repos/piker/piker/ui/_app.py", line 178, in _main
    run_qtractor(
  File "/home/goodboy/repos/piker/piker/ui/_exec.py", line 188, in run_qtractor
    app.exec_()
  File "/home/goodboy/repos/pyqtgraph/pyqtgraph/widgets/GraphicsView.py", line 357, in mouseMoveEvent
    super().mouseMoveEvent(ev)
  File "/home/goodboy/repos/pyqtgraph/pyqtgraph/GraphicsScene/GraphicsScene.py", line 208, in mouseMoveEvent
    if self.sendDragEvent(ev, init=init):
  File "/home/goodboy/repos/pyqtgraph/pyqtgraph/GraphicsScene/GraphicsScene.py", line 345, in sendDragEvent
    debug.printExc("Error sending hover exit event:")
  --- exception caught here ---
  File "/home/goodboy/repos/pyqtgraph/pyqtgraph/GraphicsScene/GraphicsScene.py", line 343, in sendDragEvent
    self.dragItem.mouseDragEvent(event)
  File "/home/goodboy/repos/piker/piker/ui/_overlay.py", line 396, in maybe_broadcast
    return slot(
  File "/home/goodboy/repos/piker/piker/ui/_interaction.py", line 672, in mouseDragEvent
    self.start_ic()
  File "/home/goodboy/repos/piker/piker/ui/_interaction.py", line 400, in start_ic
    self.chart.pause_all_feeds()
  File "/home/goodboy/repos/piker/piker/ui/_chart.py", line 779, in pause_all_feeds
    self.linked.godwidget._root_n.start_soon(feed.pause)
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/trio/_core/_run.py", line 988, in start_soon
    GLOBAL_RUN_CONTEXT.runner.spawn_impl(async_fn, args, self, name)
  File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/trio/_core/_run.py", line 1429, in spawn_impl
    raise RuntimeError("Nursery is closed to new arrivals")
RuntimeError: Nursery is closed to new arrivals
  debug.printExc("Error sending hover exit event:")

the source cause for the error is usually something else that made trio's runtime crash.
in my most recent case it was this (my guess is this was the issue in #332):

Traceback (most recent call last):
File "/home/goodboy/repos/tractor/tractor/_actor.py", line 193, in _invoke
  await chan.send({'return': await coro, 'cid': cid})
File "/home/goodboy/repos/piker/piker/fsp/_engine.py", line 319, in cascade
  async with (
File "/home/goodboy/repos/piker/310/lib/python3.10/site-packages/trio/_core/_run.py", line 815, in __aexit__
  raise combined_error_from_nursery
File "/home/goodboy/repos/piker/piker/fsp/_engine.py", line 212, in fsp_compute
  async for processed in out_stream:
File "/home/goodboy/repos/piker/piker/fsp/_volume.py", line 292, in flow_rates
  dvlm_shm = dolla_vlm.get_shm(ohlcv)
File "/home/goodboy/repos/piker/piker/fsp/_api.py", line 138, in get_shm
  shm = attach_shm_array(dst_token)
File "/home/goodboy/repos/piker/piker/data/_sharedmem.py", line 563, in attach_shm_array
  raise _err
File "/home/goodboy/repos/piker/piker/data/_sharedmem.py", line 553, in attach_shm_array
  shm = SharedMemory(
File "/usr/lib/python3.10/multiprocessing/shared_memory.py", line 103, in __init__
  self._fd = _posixshmem.shm_open(
FileNotFoundError: [Errno 2] No such file or directory: '/mes.globex.20220916.ib.fsp.dolla_vlm.chart.2e6008dd-16ce-4b2f-ae47-64120e95b8d5'

no clue, but after hitting ctrl-c after such a traceback i get something like:

traceback (most recent call last):
File "/home/goodboy/repos/piker/piker/ui/_exec.py", line 109, in event
  def event(self, event):
File "/home/goodboy/repos/tractor/tractor/_debug.py", line 723, in shield_sigint
  raise KeyboardInterrupt
KeyboardInterrupt
/home/goodboy/repos/piker/310/lib/python3.10/site-packages/trio/_core/_run.py:2235: RuntimeWarning: Trio guest run got abandoned without properly finishing... weird stuff might happen
warnings.warn(

at which point further ctrl-cs do nothing..


solutions

  • put try/catch guards around ChartPlotWidget.[pause/resume]_all_feeds()
  • put a similar guard around the ChartView.[start/signal]_ic() methods?
@goodboy goodboy added bug guille broke it prolly UI good first issue the post-tina zone labels Jul 6, 2022
@goodboy goodboy changed the title RuntimeError guard mouse handlers? RuntimeError-guard mouse handlers? Jul 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug guille broke it prolly good first issue the post-tina zone UI
Projects
None yet
Development

No branches or pull requests

1 participant