aps-8id-dys / ipython-8idiuser

8-ID-I ipython configuration for bluesky (and other)
1 stars 1 forks source link

AD_Acquire can't create metadata file because of permission problem #285

Closed qzhang234 closed 2 years ago

qzhang234 commented 2 years ago

Line dm_workflow.create_hdf5_file(hdf_with_fullpath) in AD_Acquire is raising permission error. The issue was not there in the past during Lambda or Rigaku operations. Any suggestions would be appreciated.

Full error message below:

Error from IPython terminal ``` In [8]: RE(AD_Acquire(eiger, 'B005_Test', 1e-3, 1e-3, 10000, path='/home/8ididata/2022-1/bluesky202 ...: 205/', submit_xpcs_job=False)) (AD_Acquire): num_images=10000 (EigerDetector): num_images=10000 (EigerDetector): file_name=B005_Test (EigerDetector): hdf.image_dir=/home/8ididata/2022-1/bluesky202205/B005_Test/ (EigerDetector): hdf1 stage_sigs=OrderedDict([('enable', 1), ('create_directory', -3), ('auto_increment', 'Yes'), ('array_counter', 0), ('auto_save', 'Yes'), ('num_capture', 10000), ('file_template', '%s%s_%4.4d.h5'), ('file_write_mode', 'Stream'), ('blocking_callbacks', 'Yes'), ('parent.cam.array_callbacks', 1), ('file_name', 'B005_Test'), ('file_path', '/home/8ididata/2022-1/bluesky202205/B005_Test/'), ('capture', 1)]) Transient Scan ID: 215115 Time: 2022-05-21 13:31:50 Persistent Unique Scan ID: 'dc6814af-41ec-45ea-8064-9debd757c4e0' New stream: 'baseline' New stream: 'Timebase_monitor' New stream: 'pind1_monitor' New stream: 'pind2_monitor' New stream: 'Atten1_monitor' New stream: 'Atten2_monitor' New stream: 'pid1_controlled_value_monitor' New stream: 'pid1_final_value_monitor' New stream: 'primary' +-----------+------------+ | seq_num | time | +-----------+------------+ | 1 | 13:32:01.4 | +-----------+------------+ generator AD_Acquire ['dc6814af'] (scan num: 215115) HDF5 workflow file name: /home/8ididata/2022-1/bluesky202205/B005_Test/B005_Test_0001-10000.hdf Run aborted Traceback (most recent call last): File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/run_engine.py", line 1513, in _run msg = self._plan_stack[-1].send(resp) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 1307, in __call__ return (yield from plan) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 1162, in baseline_wrapper return (yield from plan_mutator(plan, insert_baseline)) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 803, in monitor_during_wrapper return (yield from plan2) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 861, in fly_during_wrapper return (yield from plan2) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams10/8IDIUSER/.ipython-bluesky/profile_bluesky/startup/instrument/plans/xpcs_acquire.py", line 320, in AD_Acquire return (yield from full_acquire_procedure(md=md)) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/utils/__init__.py", line 1140, in dec_inner return (yield from plan) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 952, in stage_wrapper return (yield from finalize_wrapper(inner(), unstage_devices())) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 509, in finalize_wrapper ret = yield from plan File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 950, in inner return (yield from plan) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/utils/__init__.py", line 1140, in dec_inner return (yield from plan) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 803, in monitor_during_wrapper return (yield from plan2) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 170, in plan_mutator raise ex File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py", line 123, in plan_mutator msg = plan_stack[-1].send(ret) File "/home/beams10/8IDIUSER/.ipython-bluesky/profile_bluesky/startup/instrument/plans/xpcs_acquire.py", line 298, in full_acquire_procedure dm_workflow.create_hdf5_file(hdf_with_fullpath) File "/home/beams10/8IDIUSER/.ipython-bluesky/profile_bluesky/startup/spec_support/APS_DM_8IDI.py", line 302, in create_hdf5_file with h5py.File(filename, "w-") as f: File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/h5py/_hl/files.py", line 507, in __init__ fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr) File "/home/beams/8IDIUSER/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/h5py/_hl/files.py", line 224, in make_fid fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl) File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper File "h5py/h5f.pyx", line 126, in h5py.h5f.create PermissionError: [Errno 13] Unable to create file (unable to open file: name = '/home/8ididata/2022-1/bluesky202205/B005_Test/B005_Test_0001-10000.hdf', errno = 13, error message = 'Permission denied', flags = 15, o_flags = c2) --------------------------------------------------------------------------- PermissionError Traceback (most recent call last) Input In [8], in () ----> 1 RE(AD_Acquire(eiger, 'B005_Test', 1e-3, 1e-3, 10000, path='/home/8ididata/2022-1/bluesky202205/', submit_xpcs_job=False)) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/run_engine.py:892, in RunEngine.__call__(self, *args, **metadata_kw) 888 self._blocking_event.set() 890 self._task_fut.add_done_callback(set_blocking_event) --> 892 plan_return = self._resume_task(init_func=_build_task) 894 if self._interrupted: 895 raise RunEngineInterrupted(self.pause_msg) from None File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/run_engine.py:1030, in RunEngine._resume_task(self, init_func) 1026 # if the main task exception is not None, re-raise 1027 # it (unless it is a canceled error) 1028 if (exc is not None 1029 and not isinstance(exc, _RunEnginePanic)): -> 1030 raise exc 1031 # Only try to get a result if there wasn't an error, 1032 # (other than a cancelled error) 1033 if exc is None: File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/run_engine.py:1653, in RunEngine._run(self) 1651 exit_reason = str(err) 1652 self.log.exception("Run aborted") -> 1653 raise err 1654 finally: 1655 if not exit_reason: File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/run_engine.py:1513, in RunEngine._run(self) 1510 # The normal case of clean operation 1511 else: 1512 try: -> 1513 msg = self._plan_stack[-1].send(resp) 1514 # We have exhausted the top generator 1515 except StopIteration: 1516 # pop the dead generator go back to the top File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:1307, in SupplementalData.__call__(self, plan) 1305 plan = monitor_during_wrapper(plan, self.monitors) 1306 plan = baseline_wrapper(plan, self.baseline) -> 1307 return (yield from plan) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:1162, in baseline_wrapper(plan, devices, name) 1160 return (yield from plan) 1161 else: -> 1162 return (yield from plan_mutator(plan, insert_baseline)) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:803, in monitor_during_wrapper(plan, signals) 801 plan1 = plan_mutator(plan, insert_after_open) 802 plan2 = plan_mutator(plan1, insert_before_close) --> 803 return (yield from plan2) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:861, in fly_during_wrapper(plan, flyers) 859 plan1 = plan_mutator(plan, insert_after_open) 860 plan2 = plan_mutator(plan1, insert_before_close) --> 861 return (yield from plan2) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File /home/beams10/8IDIUSER/.ipython-bluesky/profile_bluesky/startup/instrument/plans/xpcs_acquire.py:320, in AD_Acquire(areadet, file_name, acquire_time, acquire_period, num_images, path, submit_xpcs_job, atten, md) 317 logger.error(err) 319 logger.info("calling full_acquire_procedure()") --> 320 return (yield from full_acquire_procedure(md=md)) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/utils/__init__.py:1140, in make_decorator..dec_outer..dec..dec_inner(*inner_args, **inner_kwargs) 1138 plan = gen_func(*inner_args, **inner_kwargs) 1139 plan = wrapper(plan, *args, **kwargs) -> 1140 return (yield from plan) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:952, in stage_wrapper(plan, devices) 949 yield from stage_devices() 950 return (yield from plan) --> 952 return (yield from finalize_wrapper(inner(), unstage_devices())) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:509, in finalize_wrapper(plan, final_plan, pause_for_debug) 507 cleanup = True 508 try: --> 509 ret = yield from plan 510 except GeneratorExit: 511 cleanup = False File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:950, in stage_wrapper..inner() 948 def inner(): 949 yield from stage_devices() --> 950 return (yield from plan) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/utils/__init__.py:1140, in make_decorator..dec_outer..dec..dec_inner(*inner_args, **inner_kwargs) 1138 plan = gen_func(*inner_args, **inner_kwargs) 1139 plan = wrapper(plan, *args, **kwargs) -> 1140 return (yield from plan) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:803, in monitor_during_wrapper(plan, signals) 801 plan1 = plan_mutator(plan, insert_after_open) 802 plan2 = plan_mutator(plan1, insert_before_close) --> 803 return (yield from plan2) File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:170, in plan_mutator(plan, msg_proc) 168 continue 169 else: --> 170 raise ex 171 # if inserting / mutating, put new generator on the stack 172 # and replace the current msg with the first element from the 173 # new generator 174 if id(msg) not in msgs_seen: 175 # Use the id as a hash, and hold a reference to the msg so that 176 # it cannot be garbage collected until the plan is complete. File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/bluesky/preprocessors.py:123, in plan_mutator(plan, msg_proc) 121 ret = result_stack.pop() 122 try: --> 123 msg = plan_stack[-1].send(ret) 124 except StopIteration as e: 125 # discard the exhausted generator 126 exhausted_gen = plan_stack.pop() File /home/beams10/8IDIUSER/.ipython-bluesky/profile_bluesky/startup/instrument/plans/xpcs_acquire.py:298, in AD_Acquire..full_acquire_procedure(md) 295 if not os.path.exists(os.path.dirname(hdf_with_fullpath)): 296 os.makedirs(os.path.dirname(hdf_with_fullpath)) --> 298 dm_workflow.create_hdf5_file(hdf_with_fullpath) 300 # update these str values from the string registers 301 dm_workflow.transfer = dm_pars.transfer.get() File /home/beams10/8IDIUSER/.ipython-bluesky/profile_bluesky/startup/spec_support/APS_DM_8IDI.py:302, in DM_Workflow.create_hdf5_file(self, filename, **kwargs) 299 logger.info(f"creating HDF5 file {filename}") 301 # any exception here will be handled by caller --> 302 with h5py.File(filename, "w-") as f: 303 # get a version number so we can make changes without breaking client code 304 f.create_dataset("/hdf_metadata_version", 305 data=[[registers.hdf_metadata_version.get()]]) #same as batchinfo_ver for now 306 ##version 15 (May 2019) is start of burst mode support (rigaku) 307 308 #######/measurement/instrument/acquisition 309 #######some new acq fields to replace batchinfo File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/h5py/_hl/files.py:507, in File.__init__(self, name, mode, driver, libver, userblock_size, swmr, rdcc_nslots, rdcc_nbytes, rdcc_w0, track_order, fs_strategy, fs_persist, fs_threshold, fs_page_size, page_buf_size, min_meta_keep, min_raw_keep, locking, **kwds) 502 fapl = make_fapl(driver, libver, rdcc_nslots, rdcc_nbytes, rdcc_w0, 503 locking, page_buf_size, min_meta_keep, min_raw_keep, **kwds) 504 fcpl = make_fcpl(track_order=track_order, fs_strategy=fs_strategy, 505 fs_persist=fs_persist, fs_threshold=fs_threshold, 506 fs_page_size=fs_page_size) --> 507 fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr) 509 if isinstance(libver, tuple): 510 self._libver = libver File ~/.conda/envs/bluesky_2022_2/lib/python3.9/site-packages/h5py/_hl/files.py:224, in make_fid(name, mode, userblock_size, fapl, fcpl, swmr) 222 fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl) 223 elif mode in ['w-', 'x']: --> 224 fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl) 225 elif mode == 'w': 226 fid = h5f.create(name, h5f.ACC_TRUNC, fapl=fapl, fcpl=fcpl) File h5py/_objects.pyx:54, in h5py._objects.with_phil.wrapper() File h5py/_objects.pyx:55, in h5py._objects.with_phil.wrapper() File h5py/h5f.pyx:126, in h5py.h5f.create() PermissionError: [Errno 13] Unable to create file (unable to open file: name = '/home/8ididata/2022-1/bluesky202205/B005_Test/B005_Test_0001-10000.hdf', errno = 13, error message = 'Permission denied', flags = 15, o_flags = c2) ```
prjemian commented 2 years ago

Who owns (in terms of Linux file system, user & group) the directory? What permissions does the directory have? The bluesky session must be able to write a file in that directory. You can try on a command line to create a file there without bluesky just to verify.

On Sat, May 21, 2022, 1:38 PM Qingteng Zhang @.***> wrote:

Assigned #285 https://github.com/aps-8id-dys/ipython-8idiuser/issues/285 to @prjemian https://github.com/prjemian.

— Reply to this email directly, view it on GitHub https://github.com/aps-8id-dys/ipython-8idiuser/issues/285#event-6655260869, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARMUMAWVIZZAZO5G3HIIH3VLEUSFANCNFSM5WSFYKWQ . You are receiving this because you were assigned.Message ID: @.***>

qzhang234 commented 2 years ago

@prjemian You are right, I tried: dm_workflow.create_hdf5_file('/home/8ididata/2022-1/bluesky202205/B005_Test/test.txt') and it gave me the same Permission Denied error;

However when I tried: dm_workflow.create_hdf5_file('/home/8ididata/2022-1/bluesky202205/test.txt') it worked.

@sureshnaps I noticed that I cannot change the permission of the folder generated by Eiger, probably because it was under dpuser. Is it possible to ask DP to change it from their end?

image

image

qzhang234 commented 2 years ago

Also attached is the error log from DM. It seems like DM is kicked off, but failing at Stage 1 because the hdf file is not created

error_log.txt

qzhang234 commented 2 years ago

@prjemian Suresh suggested switching to 8idiuser login and now the file saving cannot be completed on the HDF plugin. Any suggestions?

image

qzhang234 commented 2 years ago

Somehow this issue did not prevent Bluesky from acquiring images, and the hdf metadata file was also saved. Marking the issue as solved for now

prjemian commented 1 year ago

It's the same problem with directory permissions. The IOC created the directory with the ownership and permissions it had at the time. Look at the directory path and change the ownership and permissions or change the directory.

On Sun, May 22, 2022, 2:15 AM Qingteng Zhang @.***> wrote:

Closed #285 https://github.com/aps-8id-dys/ipython-8idiuser/issues/285 as completed.

— Reply to this email directly, view it on GitHub https://github.com/aps-8id-dys/ipython-8idiuser/issues/285#event-6655770865, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARMUMAWC7MQ6LEANRD2PDTVLHNINANCNFSM5WSFYKWQ . You are receiving this because you were mentioned.Message ID: @.***>