【问题标题】:Flying Sphinx Error on Heroku - FATAL: Failed to lock.. Resource temporarily unavailableHeroku 上的飞行狮身人面像错误 - 致命:无法锁定.. 资源暂时不可用
【发布时间】:2015-03-29 07:36:05
【问题描述】:

我有一个在 Heroku(独角兽服务器)上运行的 Rails (3.2) 应用程序。我也在使用 Flying Sphinx 进行搜索。

当我尝试索引或重建时,我使用

heroky run bundle exec flying-sphinx configure
heroku run bundle exec flying-sphinx index (or rebuild)

我的一些索引在这个过程中会输出如下错误:

FATAL: failed to lock /mnt/local/flying-sphinx/4188b791429cbac91/indexes/user_delta.spl: Resource temporarily unavailable, will not index. Try --rotate option.

即使在尝试了配置、重建和/或索引之后,我也会收到一些索引的错误。

此外,Heroku 上的 Flying Sphinx 状态页面指出 Sphinx 没有运行。我不确定这是否相关。这是状态页面的截图:

如果我可以提供其他任何东西,请告诉我。

编辑

我刚刚在我的重建输出中注意到“设备上没有剩余空间”错误,不确定它是否也相关:

ERROR: index 'search_proxy_core': /mnt/local/flying-sphinx/4188b791429cbac91/indexes/search_proxy_core.tmp.spd: write error: No space left on device.

【问题讨论】:

  • 我相信我们通过 Flying Sphinx 支持解决了这个问题,是吗? :)
  • 我们确实做到了,再次感谢帕特!如果您想发布答案,我很乐意接受,否则我可以稍后添加答案。

标签: ruby-on-rails heroku unicorn thinking-sphinx


【解决方案1】:

这是几件事的结合:

  • 使用 delta 索引但不定期运行完整索引,因此 delta 索引变得非常非常大并且处理速度很慢。
  • Sphinx 的 SQL 查询使用的每个外键都没有数据库索引。
  • 其中一个索引文件中的数据损坏,导致 Sphinx 在每次查询时都会崩溃,并且如果不重新处理索引就无法修复。

我们得到了数据库索引,运行了重建,然后一切又恢复正常了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多