aim 无法删除运行

uplii1fm  于 2个月前  发布在  其他
关注(0)|答案(6)|浏览(37)

🐛 Bug

当我从UI点击删除运行时,我得到了一个弹出窗口 "Error: cannot delete run."

重现问题

第一次使用AIM的用户,请提出建议。

预期行为

环境

  • Aim 3.17.5
  • Python 3.10.11
  • pip 23.1.2
  • Linux

其他上下文

重启无法解决问题;如果有人能提供某种遥测日志,那将非常有帮助。

s2j5cfk0

s2j5cfk01#

嘿,@rdilip!
在运行aim up命令的终端中,你看到任何错误/警告吗?
一个可能的原因可能是运行仍在进行中。需要正确关闭运行,以防止可能的数据损坏和/或跟踪进程失败。

yqyhoc1h

yqyhoc1h2#

嘿,@alberttorosyan,感谢快速的回复。我收到一个错误信息,提示运行被锁定,如何解锁?我认为将这个记录在某个地方会很好,因为我只是浏览了一下文档,没有找到任何东西。

v1uwarro

v1uwarro3#

嘿,@rdilip,在你的.aim文件夹中,你应该能找到一个locks文件夹,里面包含了每个被锁定哈希的软锁。因此,你只需要找出这些哈希值并移除不再使用的锁。然而,我觉得这个过程相当不方便。不幸的是,当我在VSCode中使用调试器并停止调试器(由于错误或其他原因)时,run.close()函数并没有被调用。结果是,我的每次中止运行都仍然可见。这些运行显然对我的实验无关紧要,应该可以轻松删除。遗憾的是,这些锁的存在使得事情变得复杂。
即使看起来运行是活动的,UI也显示它已经完成(尽管“中止”是一个更准确的术语在这里)。
@alberttorosyan也许定期检查运行是否收到更新并在一段时间后自动解锁它们是有意义的?我没有查看代码,但我想这是一个可行的功能,会极大地改善清理过程。我可以帮忙提出一个PR。

beq87vna

beq87vna4#

@mauricekraus,感谢你提供的详细描述和建议!我们确实有一个检测停滞运行的机制,用于索引运行数据(出于性能原因)。然而,我们不会自动删除锁,因为这可能导致一个情况,即多个进程试图写入同一个运行并引入数据不一致。
相反,应该使用手动关闭运行的操作:
aim runs close <RUN_HASH> <RUN_HASH> ...
完成这个操作后,可以安全地删除或恢复运行。

p8ekf7hl

p8ekf7hl5#

好的,我理解你的观点,但是为什么不能通过两种方式从UI中删除运行呢?如果无论如何都要删除运行,那么数据不一致性就无关紧要了。目前,删除运行对我来说有点烦人。
我认为抛出异常(并捕获)因为运行不再存在是一个需要承担的风险。

vql8enpb

vql8enpb6#

@alberttorosyan 是否可以在UI中添加一些功能,让我们在不检查哈希值的情况下解锁文件?说实话,对我来说最大的用例是我经常有一堆5秒的运行,它立即遇到错误或我注意到有些事情不对劲,而aim的一个好处是我可以执行一个查询,如run.duration < 30 and (not run.active)。如果能不用太多额外的解析就可以批量删除所有这些,那对我来说将是一个巨大的加分。

相关问题