【问题标题】:What causes read locks in Conan?是什么导致了柯南的读锁?
【发布时间】:2022-01-07 08:50:48
【问题描述】:

柯南会在软件包被写入(例如安装)或读取(例如???)时锁定它们。哪些操作会导致创建读锁?


我遇到的实际问题是很多人似乎经常遇到的问题,我认为锁是由中断的柯南进程留下的。我想更好地了解柯南创建锁的内容。

【问题讨论】:

  • 搜索您在网上遇到的错误,特别是在他们的错误跟踪系统中。另外,搜索它们的来源并阅读相应的代码。
  • @UlrichEckhardt 我已经这样做了,但我正在尝试调试我们的 CI 中的什么甚至崩溃以留下造成问题的锁。这是一个经常挂起的特定软件包,但我不知道它是什么运行之前无限期挂起的尝试安装。所有的清理解决方案都只是临时解决方案。无论如何,该锁是一个写锁,但我试图更好地理解柯南,以了解在我们的特定情况下出了什么问题。例如,添加 repo 会创建锁吗?是否添加或验证用户?

标签: conan


【解决方案1】:

大多数读取或写入缓存的柯南操作都有一个锁(通过使用系统文件锁的紧固件库实现)。只有在柯南坠毁或被严重杀害时,他们才应该被抛在后面。如果是这种情况,有几种选择:

  • conan remove --locks 应该清理实现锁的文件
  • 完全删除缓存文件夹(如用户主页中的.conan)。毕竟它应该被视为缓存,并且包将被重新安装或重建
  • Conan 缓存通常不是为并发设计的。这些锁是非常基本的,只会对某些特定的并发操作有所帮助(但不支持执行完全不相关任务的并行作业,为此需要使用单独的缓存)。 cache_no_locks = True 配置有可能,锁系统被完全禁用(并且所有操作应该严格互斥而不是并发)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多