🐛 Bug
在使用AIM时遇到了一个bug。当尝试使用aim.Run
函数通过哈希值定位运行时,遇到了以下错误:
>>> aim.Run(run_hash='51031438759943878c6f9808')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/ext/exception_resistant.py", line 70, in wrapper
_SafeModeConfig.exception_callback(e, func)
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/ext/exception_resistant.py", line 47, in reraise_exception
raise e
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/ext/exception_resistant.py", line 68, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/sdk/run.py", line 828, in __init__
super().__init__(run_hash, repo=repo, read_only=read_only, experiment=experiment, force_resume=force_resume)
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/sdk/run.py", line 276, in __init__
super().__init__(run_hash, repo=repo, read_only=read_only, force_resume=force_resume)
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/sdk/base_run.py", line 50, in __init__
self._lock.lock(force=force_resume)
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/storage/lock_proxy.py", line 38, in lock
return self._rpc_client.run_instruction(self._hash, self._handler, 'lock', (force,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/ext/transport/client.py", line 260, in run_instruction
return self._run_read_instructions(queue_id, resource, method, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/ext/transport/client.py", line 285, in _run_read_instructions
raise_exception(status_msg.header.exception)
File "/home/me/miniconda3/lib/python3.11/site-packages/aim/ext/transport/message_utils.py", line 76, in raise_exception
raise exception(*args) if args else exception()
^^^^^^^^^^^
TypeError: Timeout.__init__() missing 1 required positional argument: 'lock_file'
重现问题
只需运行以下代码(我已经确保这段代码已经放在目标仓库中)就可以重现这个问题。
import aim
aim.Run(run_hash='51031438759943878c6f9808')
预期行为
按照文档中所述,定位具有目标哈希值的运行。
环境
- Aim版本3.17.5
- Python版本3.11.4(conda)
- pip版本23.1.2
- OS(Linux和Mac都存在问题)
- 其他相关信息
8条答案
按热度按时间vaqhlq811#
你链接的修复是否适用于所有情况,还是仅在使用PyTorch Lightning时有效?
yrefmtwq2#
它只会修复 lightning ,但你可以在你的func调用中添加类似的参数,这应该能解决你的问题。
jmo0nnb33#
感谢HoBeedzc报告此问题。据我了解,这个问题仅出现在远程跟踪服务器上吗?
j13ufse24#
是的,我正在使用远程跟踪服务器。出于隐私考虑,我已经隐藏了aim远程仓库的IP地址。实际代码如下:
我尝试了各种方法,包括本地和远程仓库,并得出以下结论:
aim.Run.close()
方法)。lqfhib0f5#
是否有任何解决方案?当我尝试在远程存储库中识别运行时,我也遇到了这个错误。我尝试关闭和释放锁,但似乎没有什么帮助。
这在后续版本中修复了吗?我正在使用3.17.5
zengzsys6#
在我看来,这个功能似乎超时了,错误没有被正确处理。在
lock
函数上设置较短的超时时间绝对是个bug,因为整个想法是等待直到安全地获取锁。vhipe2zx7#
当我们运行torch-lightning集成和并行训练任务时,也会出现这种情况。
9nvpjoqh8#
深入挖掘。实际上,我不再认为这是grpc的问题,而是软锁定。出于某种原因,它使用了软锁定,但当在仓库位置调用此功能时,返回False
软锁定机制本身或检测正确的锁类型可能存在错误。请注意,
/aim
是覆盖层 - 此服务器运行在Kubernetes之上,因此它将使用根上的容器文件系统,已挂载到/aim
的卷是ext4,因此/aim
下的目录应该能够使用锁。