
Каков наилучший способ отправить исправление, чтобы исправить все повреждения, которыеLP: #600941причины?
Я спрашиваю, потому что LP: #600941 был добавлен во все версии Ubuntu, которые все еще поддерживаются в настоящее время. Мне следует выбрать определенную версию и запустить ubuntu-bug
ее? Должна ли эта версия быть LTS или Oneiric или Precise (как я могу получить Precise, если он мне нужен?)
История такова, что после его выпуска все наши системы начали сталкиваться с ошибками перезапуска Nagios nrpe.
Команды типа/etc/init.d/nagios-nrpe-server restart
приведет к остановке nrpe, но не к перезапуску.
Я отследил это по способу /etc/init.d/nagios-nrpe-server
вызова скрипта start-stop-daemon
.
Проблема в том, что строфа «stop» в /etc/init.d/nagios-nrpe-server
скрипте сначала вызывает start-stop-daemon, который отправляет SIGTERM в nrpe, а затем ждет всего одну секунду.
Если к этому времени nrpe не завершится, pid-файл все еще будет существовать, и /etc/init.d/nagios-nrpe-server
скрипт удалит его.
Хуже того, если /etc/init.d/nagios-nrpe-server restart
используется , не только будет удален файл pid, но и попытка перезапустить nrpe не удастся, если демон nrpe все еще не завершил работу.
Попытка запуска в таких обстоятельствах не удастся, поскольку nrpe все еще будет привязан к сокету, а вторая попытка привязки приведет к прерыванию запуска nrpe.
Им следовало бы задаться вопросом, почему был комментарий о том, что «иногда pid-файл не удаляется».
Им следовало бы провести тестирование на системах с большой нагрузкой и, следовательно, с медленным временем отклика nrpe.
Исправление заключается в добавлении --retry 10
или чего-то подобного к вызовуstart-stop-daemon ... --stop ...
Спасибо
решение1
Во-первых, спасибо за всю работу по устранению ошибок, которую вы проделали до сих пор. Здорово, что вы хотите принять участие в исправлении этой ошибки!
Лучший способ — сообщить о новой ошибке в exact и дать понять, что это регрессия, вызванная LP:#600941. Дайте ей тег 'regression-updates'. Также было бы неплохо упомянуть ее в комментариях LP:#600941, чтобы пользователи видели это, когда они сами исследуют возникновение регрессии. Тег regression-updates гарантирует, что ваша ошибка будет рассмотрена и на нее быстро отреагируют. Так что да, сначала начните с этого:
ubuntu-bug nagios-nrpe-server
Поскольку это касается всех релизов, неважно, где вы это сделаете (лучше сделать это на платформе, которую вы можете оставить в покое, чтобы иметь возможность проверить исправления).
На данный момент точные ISO-образы, вероятно, не подлежат установке, но вы можете попробовать их здесь:
http://cdimage.ubuntu.com/daily/current/
Вы также можете перенести онейрическую машину на exact, отредактировав источники в /etc/apt/sources.list* и изменив oneiric на exact, а затем выполнив apt-get update && apt-get dist-upgrade
. Однако происходят переходы и большие изменения, так что не делайте этого в производственной системе!
Чтобы отправить исправление, лучше всего использовать Ubuntu Distributed Development. Назначьте себе ошибку, а затем выполните следующие шаги:
bzr branch lp:ubuntu/nagios-nrpe
cd nagios-nrpe
<edit files that need editing>
dch -D precise -i 'Fixing regression caused by bug 600941. (LP: #XXXXXX)'
debcommit
bzr push lp:~nutznboltz/ubuntu/precise/nagios-nrpe/fix-lpXXXXXX
bzr lp-propose
XXXXXX — ваш новый баг #
Подробнее о том, как это сделать, можно узнать здесьhttps://wiki.ubuntu.com/DistributedDevelopment
Не стесняйтесь задавать вопросы в #ubuntu-devel и/или #ubuntu-server на Freenode.