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 when following quickstart #25

Open
rosesyrett opened this issue Aug 8, 2023 · 0 comments
Open

RuntimeError when following quickstart #25

rosesyrett opened this issue Aug 8, 2023 · 0 comments

Comments

@rosesyrett
Copy link

rosesyrett commented Aug 8, 2023

Just thought I'd follow the quickstart, from a PC on the network next to the P48 test rig. This is what happens when I do:

[ton99817@pc0094 ~]$ podman run -it \
>            --rm \
>            --net host \
>            -e BEAMLINE=${BEAMLINE} \
>            -e MINIMAL=1 \
>            -e DISPLAY=${DISPLAY} \
>            --security-opt=label=type:container_runtime_t \
>            ghcr.io/diamondlightsource/htss-rig-bluesky:latest
Trying to pull ghcr.io/diamondlightsource/htss-rig-bluesky:latest...
Getting image source signatures
WARN[0000] Found incomplete layer "8f0f0b7ec533b3a551eb05bb6d03c7ae51a5c183fb1f2988e7670680bec6f08b", deleting it 
Copying blob d07bcda80c7c done  
Copying blob f03b40093957 done  
Copying blob 76580c26042e done  
Copying blob 2e1b2336eb0c done  
Copying blob 05c2151a829c done  
Copying blob 3e730e9f659c done  
Copying blob 755dd361d21d done  
Copying config 02c2e64b92 done  
Writing manifest to image destination
Storing signatures
**** The executable "caRepeater" couldn't be located
**** because of errno = "No such file or directory".
**** You may need to modify your PATH environment variable.
**** Unable to start "CA Repeater" process.
============================================
Startup completed, Bluesky in control of P48
============================================
Python 3.10.12 (main, Jun  7 2023, 19:37:06) [GCC 10.2.1 20210110]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: RE(bp.scan([det], sample_stage.theta, 0.0, 180.0, 10))
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'


Transient Scan ID: 1     Time: 2023-08-08 12:21:54
Persistent Unique Scan ID: '2a39d1f6-77e0-4280-a081-df9d8ad0f011'
New stream: 'primary'
+-----------+------------+--------------------+
|   seq_num |       time | sample_stage_theta |
+-----------+------------+--------------------+
/venv/lib/python3.10/site-packages/dodal/devices/areadetector/adutils.py:35: UserWarning: .dispatch is deprecated, use .generate_datum instead
  self.dispatch(self._image_name, ttime.time())
+-----------+------------+--------------------+
generator scan ['2a39d1f6'] (scan num: 1)



Run aborted
Traceback (most recent call last):
  File "/venv/lib/python3.10/site-packages/bluesky/run_engine.py", line 1528, in _run
    msg = self._plan_stack[-1].send(resp)
  File "/venv/lib/python3.10/site-packages/bluesky/plans.py", line 1118, in scan
    return (yield from scan_nd(detectors, full_cycler,
  File "/venv/lib/python3.10/site-packages/bluesky/plans.py", line 1013, in scan_nd
    return (yield from inner_scan_nd())
  File "/venv/lib/python3.10/site-packages/bluesky/utils/__init__.py", line 1202, in dec_inner
    return (yield from plan)
  File "/venv/lib/python3.10/site-packages/bluesky/preprocessors.py", line 954, in stage_wrapper
    return (yield from finalize_wrapper(inner(), unstage_devices()))
  File "/venv/lib/python3.10/site-packages/bluesky/preprocessors.py", line 511, in finalize_wrapper
    ret = yield from plan
  File "/venv/lib/python3.10/site-packages/bluesky/preprocessors.py", line 952, in inner
    return (yield from plan)
  File "/venv/lib/python3.10/site-packages/bluesky/utils/__init__.py", line 1202, in dec_inner
    return (yield from plan)
  File "/venv/lib/python3.10/site-packages/bluesky/preprocessors.py", line 327, in run_wrapper
    yield from contingency_wrapper(plan,
  File "/venv/lib/python3.10/site-packages/bluesky/preprocessors.py", line 577, in contingency_wrapper
    ret = yield from plan
  File "/venv/lib/python3.10/site-packages/bluesky/plans.py", line 1011, in inner_scan_nd
    yield from per_step(detectors, step, pos_cache)
  File "/venv/lib/python3.10/site-packages/bluesky/plan_stubs.py", line 1270, in one_nd_step
    yield from take_reading(list(detectors) + list(motors))
  File "/venv/lib/python3.10/site-packages/bluesky/plan_stubs.py", line 1064, in trigger_and_read
    return (yield from rewindable_wrapper(inner_trigger_and_read(),
  File "/venv/lib/python3.10/site-packages/bluesky/preprocessors.py", line 695, in rewindable_wrapper
    return (yield from plan)
  File "/venv/lib/python3.10/site-packages/bluesky/plan_stubs.py", line 1035, in inner_trigger_and_read
    yield from trigger(obj, group=grp)
  File "/venv/lib/python3.10/site-packages/bluesky/plan_stubs.py", line 462, in trigger
    ret = yield Msg('trigger', obj, group=group)
  File "/venv/lib/python3.10/site-packages/bluesky/run_engine.py", line 1588, in _run
    new_response = await coro(msg)
  File "/venv/lib/python3.10/site-packages/bluesky/run_engine.py", line 2171, in _trigger
    ret = obj.trigger(*msg.args, **kwargs)
  File "/venv/lib/python3.10/site-packages/dodal/devices/areadetector/adutils.py", line 35, in trigger
    self.dispatch(self._image_name, ttime.time())
  File "/venv/lib/python3.10/site-packages/ophyd/areadetector/detectors.py", line 98, in dispatch
    return self.generate_datum(key, timestamp, {})
  File "/venv/lib/python3.10/site-packages/ophyd/areadetector/detectors.py", line 91, in generate_datum
    p.generate_datum(key, timestamp, datum_kwargs)
  File "/venv/lib/python3.10/site-packages/ophyd/areadetector/filestore_mixins.py", line 685, in generate_datum
    return super().generate_datum(key, timestamp, datum_kwargs)
  File "/venv/lib/python3.10/site-packages/ophyd/areadetector/filestore_mixins.py", line 344, in generate_datum
    raise RuntimeError("modifying after lock")
RuntimeError: modifying after lock
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[1], line 1
----> 1 RE(bp.scan([det], sample_stage.theta, 0.0, 180.0, 10))

File /venv/lib/python3.10/site-packages/bluesky/run_engine.py:899, in RunEngine.__call__(self, *args, **metadata_kw)
    895         self._blocking_event.set()
    897     self._task_fut.add_done_callback(set_blocking_event)
--> 899 plan_return = self._resume_task(init_func=_build_task)
    901 if self._interrupted:
    902     raise RunEngineInterrupted(self.pause_msg) from None

File /venv/lib/python3.10/site-packages/bluesky/run_engine.py:1038, in RunEngine._resume_task(self, init_func)
   1034 # if the main task exception is not None, re-raise
   1035 # it (unless it is a canceled error)
   1036 if (exc is not None
   1037         and not isinstance(exc, _RunEnginePanic)):
-> 1038     raise exc
   1039 # Only try to get a result if there wasn't an error,
   1040 # (other than a cancelled error)
   1041 if exc is None:

File /venv/lib/python3.10/site-packages/bluesky/run_engine.py:1668, in RunEngine._run(self)
   1666     exit_reason = str(err)
   1667     self.log.exception("Run aborted")
-> 1668     raise err
   1669 finally:
   1670     if not exit_reason:

File /venv/lib/python3.10/site-packages/bluesky/run_engine.py:1528, in RunEngine._run(self)
   1525 # The normal case of clean operation
   1526 else:
   1527     try:
-> 1528         msg = self._plan_stack[-1].send(resp)
   1529     # We have exhausted the top generator
   1530     except StopIteration:
   1531         # pop the dead generator go back to the top

File /venv/lib/python3.10/site-packages/bluesky/plans.py:1118, in scan(detectors, num, per_step, md, *args)
   1114 _md['hints'].update(md.get('hints', {}) or {})
   1116 full_cycler = plan_patterns.inner_product(num=num, args=args)
-> 1118 return (yield from scan_nd(detectors, full_cycler,
   1119                            per_step=per_step, md=_md))

File /venv/lib/python3.10/site-packages/bluesky/plans.py:1013, in scan_nd(detectors, cycler, per_step, md)
   1010     for step in list(cycler):
   1011         yield from per_step(detectors, step, pos_cache)
-> 1013 return (yield from inner_scan_nd())

File /venv/lib/python3.10/site-packages/bluesky/utils/__init__.py:1202, in make_decorator.<locals>.dec_outer.<locals>.dec.<locals>.dec_inner(*inner_args, **inner_kwargs)
   1200 plan = gen_func(*inner_args, **inner_kwargs)
   1201 plan = wrapper(plan, *args, **kwargs)
-> 1202 return (yield from plan)

File /venv/lib/python3.10/site-packages/bluesky/preprocessors.py:954, in stage_wrapper(plan, devices)
    951     yield from stage_devices()
    952     return (yield from plan)
--> 954 return (yield from finalize_wrapper(inner(), unstage_devices()))

File /venv/lib/python3.10/site-packages/bluesky/preprocessors.py:511, in finalize_wrapper(plan, final_plan, pause_for_debug)
    509 cleanup = True
    510 try:
--> 511     ret = yield from plan
    512 except GeneratorExit:
    513     cleanup = False

File /venv/lib/python3.10/site-packages/bluesky/preprocessors.py:952, in stage_wrapper.<locals>.inner()
    950 def inner():
    951     yield from stage_devices()
--> 952     return (yield from plan)

File /venv/lib/python3.10/site-packages/bluesky/utils/__init__.py:1202, in make_decorator.<locals>.dec_outer.<locals>.dec.<locals>.dec_inner(*inner_args, **inner_kwargs)
   1200 plan = gen_func(*inner_args, **inner_kwargs)
   1201 plan = wrapper(plan, *args, **kwargs)
-> 1202 return (yield from plan)

File /venv/lib/python3.10/site-packages/bluesky/preprocessors.py:327, in run_wrapper(plan, md)
    324     else:
    325         yield from close_run(exit_status='fail', reason=str(e))
--> 327 yield from contingency_wrapper(plan,
    328                                except_plan=except_plan,
    329                                else_plan=close_run)
    330 return rs_uid

File /venv/lib/python3.10/site-packages/bluesky/preprocessors.py:577, in contingency_wrapper(plan, except_plan, else_plan, final_plan, pause_for_debug)
    575 cleanup = True
    576 try:
--> 577     ret = yield from plan
    578 except GeneratorExit:
    579     cleanup = False

File /venv/lib/python3.10/site-packages/bluesky/plans.py:1011, in scan_nd.<locals>.inner_scan_nd()
   1009     yield from bps.declare_stream(*motors, *detectors, name='primary')
   1010 for step in list(cycler):
-> 1011     yield from per_step(detectors, step, pos_cache)

File /venv/lib/python3.10/site-packages/bluesky/plan_stubs.py:1270, in one_nd_step(detectors, step, pos_cache, take_reading)
   1268 motors = step.keys()
   1269 yield from move_per_step(step, pos_cache)
-> 1270 yield from take_reading(list(detectors) + list(motors))

File /venv/lib/python3.10/site-packages/bluesky/plan_stubs.py:1064, in trigger_and_read(devices, name)
   1061     return ret
   1063 from .preprocessors import rewindable_wrapper
-> 1064 return (yield from rewindable_wrapper(inner_trigger_and_read(),
   1065                                       rewindable))

File /venv/lib/python3.10/site-packages/bluesky/preprocessors.py:695, in rewindable_wrapper(plan, rewindable)
    692     return (yield from finalize_wrapper(plan,
    693                                         restore_rewindable()))
    694 else:
--> 695     return (yield from plan)

File /venv/lib/python3.10/site-packages/bluesky/plan_stubs.py:1035, in trigger_and_read.<locals>.inner_trigger_and_read()
   1033     if isinstance(obj, Triggerable):
   1034         no_wait = False
-> 1035         yield from trigger(obj, group=grp)
   1036 # Skip 'wait' if none of the devices implemented a trigger method.
   1037 if not no_wait:

File /venv/lib/python3.10/site-packages/bluesky/plan_stubs.py:462, in trigger(obj, group, wait)
    445 def trigger(obj, *, group=None, wait=False):
    446     """
    447     Trigger and acquisition. Optionally, wait for it to complete.
    448 
   (...)
    460     msg : Msg
    461     """
--> 462     ret = yield Msg('trigger', obj, group=group)
    463     if wait:
    464         yield Msg('wait', None, group=group)

File /venv/lib/python3.10/site-packages/bluesky/run_engine.py:1588, in RunEngine._run(self)
   1583 # try to finally run the command the user asked for
   1584 try:
   1585     # this is one of two places that 'async'
   1586     # exceptions (coming in via throw) can be
   1587     # raised
-> 1588     new_response = await coro(msg)
   1590 # special case `CancelledError` and let the outer
   1591 # exception block deal with it.
   1592 except asyncio.CancelledError:

File /venv/lib/python3.10/site-packages/bluesky/run_engine.py:2171, in RunEngine._trigger(self, msg)
   2169 group = kwargs.pop('group', None)
   2170 warn_if_msg_args_or_kwargs(msg, obj.trigger, msg.args, kwargs)
-> 2171 ret = obj.trigger(*msg.args, **kwargs)
   2173 self._add_status_to_group(obj=obj, status_object=ret, group=group, action="trigger")
   2175 return ret

File /venv/lib/python3.10/site-packages/dodal/devices/areadetector/adutils.py:35, in SingleTriggerV33.trigger(self)
     32     self._status._finished()
     34 self._acquisition_signal.put(1, use_complete=True, callback=_acq_done)
---> 35 self.dispatch(self._image_name, ttime.time())
     36 return self._status

File /venv/lib/python3.10/site-packages/ophyd/areadetector/detectors.py:98, in DetectorBase.dispatch(self, key, timestamp)
     93 def dispatch(self, key, timestamp):
     94     warnings.warn(
     95         ".dispatch is deprecated, use .generate_datum instead", stacklevel=2
     96     )
---> 98     return self.generate_datum(key, timestamp, {})

File /venv/lib/python3.10/site-packages/ophyd/areadetector/detectors.py:91, in DetectorBase.generate_datum(self, key, timestamp, datum_kwargs)
     89 for p in file_plugins:
     90     if p.enable.get():
---> 91         p.generate_datum(key, timestamp, datum_kwargs)

File /venv/lib/python3.10/site-packages/ophyd/areadetector/filestore_mixins.py:685, in FileStoreIterativeWrite.generate_datum(self, key, timestamp, datum_kwargs)
    683 datum_kwargs = datum_kwargs or {}
    684 datum_kwargs.update({"point_number": i})
--> 685 return super().generate_datum(key, timestamp, datum_kwargs)

File /venv/lib/python3.10/site-packages/ophyd/areadetector/filestore_mixins.py:344, in FileStoreBase.generate_datum(self, key, timestamp, datum_kwargs)
    342 if self._locked_key_list:
    343     if key not in self._datum_uids:
--> 344         raise RuntimeError("modifying after lock")
    345 # This is temporarily more complicated than it will be in the
    346 # future.  It needs to support old configurations that have a
    347 # registry.
    348 if self._reg is not None:
    349     # If a Registry is set, we need to allow it to generate the
    350     # datum_id for us.

RuntimeError: modifying after lock

I wonder if event model changes have impacted this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant