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] prepor.livejournal.com 2014-11-19 03:23 pm (UTC)(link)
Я, если что, не советовал, а упоминал ;)

[identity profile] swizard.livejournal.com 2014-11-19 04:12 pm (UTC)(link)
Это дурное влияние эрланга, вестимо: раз сообщения, значит, let it crash :)

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

[identity profile] aamonster.livejournal.com 2014-11-19 07:44 pm (UTC)(link)
1. А не проще было перекрыть abort()?
2. Почему 1 в тестах не сделано?

[identity profile] maxdz.livejournal.com 2014-11-19 11:22 pm (UTC)(link)
А нафига такие мучения с какими-то левыми библиотеками? Незамысловатые сокетные сервер и клиент (сервер многотредовый, с отдельным тредом на каждое входящее соединение) - пишутся ручками, за пару часов "с нуля"...
Edited 2014-11-19 23:25 (UTC)

[identity profile] maxdz.livejournal.com 2014-11-19 11:24 pm (UTC)(link)
П.С. К слову, если это отладочная верия так валится - попробуйте релиз. Вполне возможно, что в отладочной версии стоят кучи ассертов, которые (если не переопределены) в консольных приложениях вызывают аборт().

[identity profile] osdm.livejournal.com 2014-11-20 03:17 pm (UTC)(link)
А потом эти люди будут говорить, что exception-ы - это зло.