metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-11-19 06:06 pm

Везет как QA

Либа nanomsg, кто-то тут в комментариях мне ее посоветовал.
http://comments.gmane.org/gmane.comp.lib.nanomsg/1277
Убил целый день, только ради того, чтобы тесты запустились и сфейлились корректно на машине, на которой рабочий порт этой либы занят чем-то, например другим инстансом проги.

Эти программисты нетрадиционной ориентации зовут на каждый мыслимый и немыслимый чих abort(), вместо того чтобы вернуть код ошибки, а этот abort() на винде вызывает диалоговое окно вида "всему копец, продолжаем, отлаживаем или игнорируем". В консольных приложениях из автотестов, да. Причем cmake ctest на винде игнорирует stderr, соответственно, чтобы найти причину ошибки - мне пришлось сначала перекопать это угребище windbg, а затем добавить OutputDebugString в виндовый билд.

Если у меня от занятости сокетов или там от того, что черви сгрызли сетевой стек, прога будет ебаться с abort() - идите вы нахер с такими либами.

[identity profile] swizard.livejournal.com 2014-11-19 04:17 pm (UTC)(link)
А на самом деле, ты даже не можешь себе представить, какая это боль, беспомощность и безысходность -- корректная обработка ошибок в этих кластерах :( В большинстве случаев, действительно, намного проще грохнуть нахер весь процесс (с диагностикой) и рестартнуть его заново, чем разбираться, а чё это он перестал на сообщения отвечать, а может он занят, а может он болеет, а может у него в fsm-е баг, а может это сеть отвалилась...