пятница, 27 марта 2015 г.

[prog.bug] Динамическая типизация рулит и бибикает...

Просто обожаю, когда такие вещи выскакивают на боевой системе:

Понятно, что софта без багов не бывает. Но тут-то речь идет о компании, куда без красного диплома не стоило и соваться.

Казалось бы, причем здесь динамическая типизация? Наверное при том, что в статике какая ошибка в код едва ли просочилась бы.

PS. Причем там поломалось что-то еще хитрее. Даже при попытке сменить фотографию для мероприятия выскакивает почему-то неработающий диалог выбора места проведения мероприятия.

PPS. Не знаю, как долго этот баг проявлялся, но после того, как я на него наткнулся, исправили его довольно быстро.

четверг, 26 марта 2015 г.

[prog.sobjectizer] Внезапный юзкейс для лимитов сообщений

При реализации run-time мониторинга потребовался тест, в котором агенты бы отсылали друг-другу кучу сообщений. Решил использовать идею "писем счастья": когда агент получает сообщение, он рассылает его по N адресам. Получатели сообщения так же рассылают его по N других адресов и т.д. Адреса рассылки для агентов задаются случайным образом, так что большинство агентов оказывается загруженными более-менее одинаково.

Но т.к. каждый агент отсылает больше сообщений, чем получает (на каждое полученное отсылается N новых, где N > 1), то сценарий "писем счастья" должен приводить к росту очередей сообщений. Что при длительной работе теста вызовет деградацию приложения из-за перерасхода памяти.

Лимиты сообщений оказались простым и эффективным способом борьбы с этим явлением. Просто для каждого агента устанавливается ограничение на количество сообщений. В итоге после некоторого времени на раскачку теста размеры очередей для агентов стабилизируются и больше не растут. Лишние сообщения выбрасываются, что предохраняет приложение от деградации.

Вот так внезапно лимиты сообщений, за реализацию которых я брался с изрядной долей сомнений, оказались полезны на практике гораздо раньше, чем предполагалось.

Сами по себе лимиты уже реализованы и даже более-менее задокументированы (#1, #2). Ждут завершения работ над версией 5.5.4 и релиза где-то в первых числах апреля.

среда, 25 марта 2015 г.

[life] Совок остается и исчезает совсем не там, где хотелось бы...

К термину совок я отношусь не то, что спокойно, но даже с симпатией (как и к термину ватник). Но, т.к. термин этот появился не на пустом месте, приходится признавать, что связанные с ним отрицательные коннотации имеют место быть. Хотя иногда хочется, чтобы некоторые увиденные вещи поменялись местами.

Пара свежих примеров.