error: cannot switch to a different thread
on ID10 (branch 2.0.x), a sporadic error that seems to be related to logging/elogbook:
similar to #3679
2024-04-11 09:15:07,523 eh2_exp user_input INFO : eiger4m_v2.processing.use_roi_stats=True
2024-04-11 09:15:07,528 eh2_exp exceptions ERROR : Traceback (most recent call last):
File "/home/blissadm/local/bliss2.git/bliss/shell/cli/repl.py", line 662, in eval
elogbook.command(text)
@result: None
@self: <bliss.shell.cli.repl.BlissRepl object at 0x7ffba92a9d90>
@text: 'eiger4m_v2.processing.use_roi_stats=True'
File "/home/blissadm/local/bliss2.git/bliss/common/logtools.py", line 415, in command
self.forced_log(*args, **kw)
@args: ('eiger4m_v2.processing.use_roi_stats=True',)
@kw: {'extra': {'msg_type': 'command'}}
@self: <Elogbook bliss.elogbook (NOTSET)>
File "/home/blissadm/local/bliss2.git/bliss/common/logtools.py", line 336, in forced_log
self.log(level, *args, **kw)
@args: ('eiger4m_v2.processing.use_roi_stats=True',)
@kw: {'extra': {'msg_type': 'command'}}
@level: 20
@self: <Elogbook bliss.elogbook (NOTSET)>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/logging/__init__.py", line 1512, in log
self._log(level, msg, args, **kwargs)
@args: ()
@kwargs: {'extra': {'msg_type': 'command'}}
@level: 20
@msg: 'eiger4m_v2.processing.use_roi_stats=True'
@self: <Elogbook bliss.elogbook (NOTSET)>
File "/home/blissadm/local/bliss2.git/bliss/common/logtools.py", line 421, in _log
beamline_only = self.beamline_only
@__class__: <class 'bliss.common.logtools.ElogLogger'>
@args: (20, 'eiger4m_v2.processing.use_roi_stats=True', ())
@beamline_only: None
@extra: {'msg_type': 'command'}
@kwargs: {}
@self: <Elogbook bliss.elogbook (NOTSET)>
File "/home/blissadm/local/bliss2.git/bliss/common/logtools.py", line 443, in beamline_only
return self.elog_config.get("beamline_only")
@self: <Elogbook bliss.elogbook (NOTSET)>
File "/home/blissadm/local/bliss2.git/bliss/config/settings.py", line 62, in _read
value = func(self, *args, **keys)
@args: ('beamline_only',)
@func: <function HashSetting.get at 0x7ffaf67f54c0>
@keys: {}
@self: <HashObjSetting name=elogbook:eh2_exp value={}>
File "/home/blissadm/local/bliss2.git/bliss/config/settings.py", line 897, in get
v = super().raw_get(key)
@__class__: <class 'bliss.config.settings.HashSetting'>
@default: None
@key: 'beamline_only'
@self: <HashObjSetting name=elogbook:eh2_exp value={}>
File "/home/blissadm/local/bliss2.git/bliss/config/settings.py", line 565, in raw_get
return cnx.hget(self.name, *keys)
@cnx: RedisDbProxy<RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>>
@keys: ('beamline_only',)
@self: <HashObjSetting name=elogbook:eh2_exp value={}>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/commands/core.py", line 4903, in hget
return self.execute_command("HGET", name, key)
@key: 'beamline_only'
@name: 'elogbook:eh2_exp'
@self: RedisDbProxy<RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/client.py", line 1269, in execute_command
return conn.retry.call_with_retry(
@args: ('HGET', 'elogbook:eh2_exp', 'beamline_only')
@command_name: 'HGET'
@conn: UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>
@options: {}
@pool: RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>
@self: RedisDbProxy<RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/retry.py", line 46, in call_with_retry
return do()
@do: <function Redis.execute_command.<locals>.<lambda> at 0x7ffa6bea3280>
@fail: <function Redis.execute_command.<locals>.<lambda> at 0x7ffa6bea3040>
@failures: 0
@self: <redis.retry.Retry object at 0x7ffaaa749340>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/client.py", line 1270, in <lambda>
lambda: self._send_command_parse_response(
@args: ('HGET', 'elogbook:eh2_exp', 'beamline_only')
@command_name: 'HGET'
@conn: UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>
@options: {}
@self: RedisDbProxy<RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/client.py", line 1246, in _send_command_parse_response
return self.parse_response(conn, command_name, **options)
@args: ('HGET', 'elogbook:eh2_exp', 'beamline_only')
@command_name: 'HGET'
@conn: UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>
@options: {}
@self: RedisDbProxy<RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/client.py", line 1286, in parse_response
response = connection.read_response()
@command_name: 'HGET'
@connection: UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>
@options: {}
@self: RedisDbProxy<RedisDbConnectionPool<UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>>>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/connection.py", line 882, in read_response
response = self._parser.read_response(disable_decoding=disable_decoding)
@disable_decoding: False
@disconnect_on_error: True
@host_error: '/tmp/redis.sock'
@self: UnixDomainSocketConnection<path=/tmp/redis.sock,db=0,client_name=tina:1438400>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/connection.py", line 495, in read_response
self.read_from_socket()
@disable_decoding: False
@response: False
@self: <redis.connection.HiredisParser object at 0x7ffaaa749400>
File "/users/blissadm/conda/miniconda/envs/bliss_2_0/lib/python3.9/site-packages/redis/connection.py", line 455, in read_from_socket
bufflen = self._sock.recv_into(self._buffer)
@custom_timeout: False
@raise_on_timeout: True
@self: <redis.connection.HiredisParser object at 0x7ffaaa749400>
@sock: <gevent._socket3.socket [closed] at 0x7ffa685309a0 object [closed proxy at 0x7ffa625f0220 fd=110 closed]>
@timeout: <object object at 0x7ffaf6b88b40>
error: cannot switch to a different thread