В ряде случаев выполнение posttrans-filetriggers может завершиться ошибкой. В этом случае в файле files-awaiting-filetriggers оказываются сохранёнными имена всех файлов с предыдущей транзакции. В случае большого обновления files-awaiting-filetriggers может занимать несколько десятков мегабайт и содержать несколько сотен тысяч имён файлов, для которых требуется выполнить скрипты файловых триггеров. В случае большого числа файлов вероятность ошибки в каком либо из триггеров существенно возрастает. В итоге, после установки и выполнения скриптов может быть выдана следующая ошибка: error: execution of /usr/lib/rpm/posttrans-filetriggers scriptlet from (null)-(null)-(null) failed, exit status 1 В этом случае огромный файл files-awaiting-filetriggers сохранится и при следующей установке скрипты снова будут запущены для всех сотен тысяч файлов, для которых при выполнении скриптов в прошлый раз произошла ошибка. При этом ошибка, как правило повторяется, файл files-awaiting-filetriggers сохранятся и возникает проблема: - во время каждой последующей, даже самой простой, установки файловые триггеры запускаются снова и снова для всех предыдущих файлов, которые были установлены с момента сбоя. Пример такого файла привожу в виде ссылки: http://ftp.etersoft.ru/pub/people/sin/files-awaiting-filetriggers.xz
Что хотелось бы изменить в этой логике?
(В ответ на комментарий №1) > Что хотелось бы изменить в этой логике? Женя, ping? В rpm 4.13.0 реализована точно такая же логика.
В логике хотелось бы таких изменений, чтобы оно не падало и не тормозило. Вообще, наверное, стоит разбивать файл на части, при превышении фиксированного размера. Запускать триггеры по частям, в таком случае. А в случае ошибки - выдавать предупреждения с указанием того, какой файл нужно, если что, удалить.