这是我最近在启动五十一的新实例时遇到的错误。这是:
Process 8027 (service/main.py --51-service db --multi) did not respond
{"t":{"$date":"2022-12-13T12:43:10.939Z"},"s":"I", "c":"CONTROL", "id":20697, "ctx":"-","msg":"Renamed existing log file","attr":{"oldLogPath":"/home/isaac/.fiftyone/var/lib/mongo/log/mongo.log","newLogPath":"/home/isaac/.fiftyone/var/lib/mongo/log/mongo.log.2022-12-13T12-43-10"}}
Subprocess ['/home/isaac/.local/lib/python3.8/site-packages/fiftyone/db/bin/mongod', '--dbpath', '/home/isaac/.fiftyone/var/lib/mongo', '--logpath', '/home/isaac/.fiftyone/var/lib/mongo/log/mongo.log', '--port', '0', '--nounixsocket'] exited with error 100:
我有一个解决方案,但感觉更像是一个临时修复,因为当我重新启动计算机时错误会再次出现。
有人有永久解决方案吗?
最佳答案
这发生在你的内核意外死亡之后。它使 Mongo 数据库保持运行。
您可以分两步检查:
- 手动运行与 FiftyOne 相同的命令。您可以在
Subprocess [...]
日志行中找到它的路径。对于您的情况,请在终端中运行以下命令:
/home/isaac/.local/lib/python3.8/site-packages/fiftyone/db/bin/mongod --dbpath '/home/isaac/.fiftyone/var/lib/mongo' --port 0 --nounixsocket
(通过在必要时删除引号和逗号以及日志路径参数从您发布的错误中提取)
然后您将看到错误消息,其中包括如下内容:
{"t":{"$date":"2023-08-21T10:01:46.459+00:00"},"s":"E", "c":"CONTROL", "id":20557, "ctx":"initandlisten","msg":"DBException in initAndListen, terminating","attr":{"error":"DBPathInUse: Unable to lock the lock file: /home/isaac/.fiftyone/var/lib/mongo/mongod.lock (Resource temporarily unavailable). Another mongod instance is already running on the /home/isaac/.fiftyone/var/lib/mongo directory"}}
这清楚地表明还有另一个 mongod
正在运行(消息的 error:
部分)。这使我们进入第二步:
- 运行
ps -ef |在另一个终端窗口中 grep [m]ongo
。您将看到一行正在运行的进程。
isaac 31820 1 1 08:47 ? 00:01:03 /home/isaac/miniconda3/envs/test-env/lib/python3.9/site-packages/fiftyone/db/bin/mongod --dbpath /home/isaac/.fiftyone/var/lib/mongo --logpath /home/isaac/.fiftyone/var/lib/mongo/log/mongo.log --port 0 --nounixsocket
这是崩溃的内核留下的东西。你必须阻止它:
kill 31820
该数字是 ps
输出中第二列中出现的进程 ID。如果它不起作用,您可以执行 kill -9 31820
(更积极的进程终止)。
如果您执行了常规的kill
(没有-9
),那么一切都应该很好,您可以重新启动内核并导入五十一
.
但是如果您必须使用-9
,那么锁定文件可能会在磁盘上徘徊。你必须将其删除。找到初始错误消息中的路径并删除该文件:rm/home/isaac/.fiftyne/var/lib/mongo/mongod.lock
现在一切都应该没问题了。
关于database - 五十一个数据库错误 - 重命名现有日志文件并且子进程退出并出现错误 100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74785235/