Сбой darktable-cli из-за заблокированного файла базы данных - Фотопедия
0 голосов
/ 15 марта 2019

Я использую darktable-cli для экспорта фотографий из моей библиотеки. Я начал получать сообщение об ошибке с последней версией (2.6.1). Это ошибка сегментации с ошибкой

[init] the database lock file contains a pid that seems to be alive in your system: 16768
[init] database is locked, probably another process is already using it

Я всегда получаю эту ошибку, если работает darktable. И если темная таблица не работает, большую часть времени. У меня есть скрипт, выполняющий 4 экземпляра darktable-cli параллельно. Как я уже говорил, у меня не было этой ошибки с предыдущими версиями.

Я не знаю, как работает darktable внутри, но я чувствую, что не должно быть необходимости в библиотеке для клиента Есть ли в этом необходимость?

В качестве рабочего решения я попытался изменить библиотеку для темных вызовов. Но опция --library игнорируется. Darktable по-прежнему работал с библиотекой по умолчанию. Команда:

darktable-cli raw-file xmp-file jpg-file --width 1920 --height 1080 --core --conf plugins/imageio/format/jpeg/quality=50 --conf plugins/imageio/storage/disk/overwrite=true --library /tmp/darktable.db

Является ли этот аргумент команды правильным?

Ответы [ 2 ]

4 голосов
/ 15 марта 2019

Сам я не использую Darktable, поэтому не могу сам проверить, но это может быть повторением ошибки , исправленной два года назад. Вы можете отправить им отчет об ошибке, и пока он обсуждался / исправлялся, вы можете вернуться к предыдущей версии, чтобы сохранить работоспособность ваших вещей.

Редактировать: проверяя документацию , вы можете попытаться вызвать darktable-cli, явно указав для библиотеки :memory:, чтобы она выглядела примерно так:

darktable-cli [...] --library ':memory:'
2 голосов
/ 15 марта 2019

К сожалению, вы не можете запустить несколько экземпляров darktable одновременно.

Если ваш скрипт выполняет 4 экземпляра darktable-cli параллельно, это ваша ошибка. Вам нужно сериализовать ваш скрипт для запуска не более одного darktable-cli за раз. Необходим какой-то механизм блокировки файлов, ожидающий выхода старого darktable-cli. Примером такой программы является flock.

Например, flock /some/where/somefile.txt darktable-cli raw-file xmp-file jpg-file --width 1920 --height 1080 --core --conf plugins/imageio/format/jpeg/quality=50 --conf plugins/imageio/storage/disk/overwrite=true --library /tmp/darktable.db должно работать.

...