Skip to content

Meta writer crashes with invalid h5 path #412

@GDYendell

Description

@GDYendell
[Fri Sep  5 16:50:05 2025]ESC[94m[I 250905 16:50:05 meta_listener:343]ESC[0m Creating new writer test_112
[Fri Sep  5 16:50:05 2025]ESC[94m[I 250905 16:50:05 meta_listener:320]ESC[0m Configuring writer test_112 with params: {'directory': '/dls/i02-1/data/', 'file_prefix': 'test_112', 'flush_frame_frequency': 100, 'flush_timeout': 1}
[Fri Sep  5 16:50:07 2025]ESC[94m[I 250905 16:50:07 meta_listener:320]ESC[0m Configuring writer test_112 with params: {'directory': '/dls/i02-1/data/', 'file_prefix': 'test_112', 'flush_frame_frequency': 100, 'flush_timeout': 1}
[Fri Sep  5 16:50:07 2025]ESC[91m[E 250905 16:50:07 meta_listener:109]ESC[0m Unexpected exception - shutting down
[Fri Sep  5 16:50:07 2025]ESC[94m[I 250905 16:50:07 meta_listener:359]ESC[0m Stopping all writers
[Fri Sep  5 16:50:07 2025]ESC[94m[I 250905 16:50:07 meta_writer:373]ESC[0m test_112 | Finished
[Fri Sep  5 16:50:07 2025]ESC[94m[I 250905 16:50:07 meta_listener:119]ESC[0m Closing sockets
[Fri Sep  5 16:50:07 2025]Traceback (most recent call last):
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_writer.py", line 173, in _create_file
[Fri Sep  5 16:50:07 2025]    self._hdf5_file = h5py.File(file_path, "w", libver="latest")
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/h5py/_hl/files.py", line 533, in __init__
[Fri Sep  5 16:50:07 2025]    fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr)
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/h5py/_hl/files.py", line 232, in make_fid
[Fri Sep  5 16:50:07 2025]    fid = h5f.create(name, h5f.ACC_TRUNC, fapl=fapl, fcpl=fcpl)
[Fri Sep  5 16:50:07 2025]  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
[Fri Sep  5 16:50:07 2025]  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
[Fri Sep  5 16:50:07 2025]  File "h5py/h5f.pyx", line 126, in h5py.h5f.create
[Fri Sep  5 16:50:07 2025]PermissionError: [Errno 13] Unable to create file (unable to open file: name = '/dls/i02-1/data/test_112_meta.h5', errno = 13, error message = 'Permission denied', flags = 13, o_flags = 242)
[Fri Sep  5 16:50:07 2025]
[Fri Sep  5 16:50:07 2025]During handling of the above exception, another exception occurred:
[Fri Sep  5 16:50:07 2025]
[Fri Sep  5 16:50:07 2025]Traceback (most recent call last):
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/prefix/bin/eiger_meta_writer", line 8, in <module>
[Fri Sep  5 16:50:07 2025]    sys.exit(main())
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_writer_app.py", line 81, in main
[Fri Sep  5 16:50:07 2025]    meta_listener.run()
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_listener.py", line 105, in run
[Fri Sep  5 16:50:07 2025]    self.handle_data_message(socket, endpoint)
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_listener.py", line 193, in handle_data_message
[Fri Sep  5 16:50:07 2025]    writer.process_message(header, data)
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_writer.py", line 469, in process_message
[Fri Sep  5 16:50:07 2025]    handler(header["header"], data)
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_writer.py", line 497, in handle_start_acquisition
[Fri Sep  5 16:50:07 2025]    self._create_file(self._generate_full_file_path(), header["totalFrames"])
[Fri Sep  5 16:50:07 2025]  File "/dls_sw/prod/python3/RHEL7-x86_64/eiger-detector/1.15.1+dls1/lightweight-venv/lib/python3.7/site-packages/odin_data/meta_writer/meta_writer.py", line 179, in _create_file
[Fri Sep  5 16:50:07 2025]    error.message,
[Fri Sep  5 16:50:07 2025]AttributeError: 'PermissionError' object has no attribute 'message'

This should just format the error instance directly with %s.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions