Здравствуйте, serg_joker, Вы писали:
_>Всё так, и пререзапускается у нас автоматом. Но была ситуация — при вычитке, разборе, и дальнейшей обработке сообщения из кафки срабатывал неверный ассёрт, ну так вот вышло, моя лажа. И программа падала, не закоммитив это сообщение. А потом поднималась — и вычитывала его опять...
А если бы там по делу был assert? А программа не падала бы, а продолжала жить инвалидом?
_>План Б, конечно, был: выгребли руками это сообщение из очереди. Но пока упало, пока осознали, пока до нас (девов) добрались — время. А у нас private LTE core, пока сервис лежит, абоненты не могут звонить и IoT устройства слать ничего не могут. Клиент нервничал, в результате нервничал я, а я этого не люблю, и ещё больше не любит руководство (справедливо).
Похоже, в плане Б не хватает действия на случай, если программа падает без какого-либо прогресса.
Возможно, правильным действием было бы хранить предыдущую версию и автоматически на неё откатываться, если с новой после обновления всё плохо. Ну и там, письма электрические писать во все стороны, чтобы шуму поднять
Pzz>>ASAN я как-то не осилил. Больно многого они хотят. Например, пересборки библиотек, от которых зависит программа, с ASAN-ом. Это ж полсистемы надо пересобрать да еще как-то бесконфликтно разложить. Нафиг такой инструментарий.
_>Такого требования, чтобы библиотеки пересобирать, нет. Могут быть сложности, если память выделяетя в библиотеке, а освобождается в прикладном коде, но это само по себе нездорово. У меня библиотеки собираются без ASAN, продукт с ним, и никаких спецэффектов не наблюдал.
А мне питонщики сказали, что есть. Кто из вас неправ?
https://github.com/python/cpython/issues/135774