понедельник, 5 марта 2018 г.

Как подключение RabbitMQ сломало нам отображение версий

У нас есть обратный поток в JMS, но обычно мы отправляем сообщения в EMS (Tibco). Тут возникла задачка отправлять сообщения сразу в два потока: EMS и RabbitMQ.

Разработчик все настроил, я проверяю. Собрала сборку, подняла. Сообщения ходят, все хорошо. Но у нас есть функционал отображения номера ревизии прямо в интерфейсе, чтобы легко проверять, обновился ты или нет. Ну и разработчику по необходимости скинуть. И вот я вижу, что у меня вместо длинной mercurial-версии а-ля «6b10ea3a2646» отображается «LATEST(TIP)» о_О


Пишу разработчику:

— А это что за фигня такая? (скриншот)
— Да это ты небось под профилем каким-то левым собрала для MATS-ов. Забей, локальная проблема.

Хм, хм. Подозрительно, конечно. Да, MATS-тесты (так мы называем интеграционные тесты) я правда гоняла на этой сборке. Для прогона ты указываешь maven отдельный профиль. Но саму то сборку я собирала без извращений!

Но да ладно, в конце концов, локальные проблемы иногда случаются, поэтому решила поверить на слово. Проверила новый функционал, передала коллеге на регресс. Она накатывает обновление на dev-стенд — а там тоже проблема с версией. И туда сборка накатывается автоматом из TeamCity, так что все извращения исключены.

Пришлось таки разбираться с багом Smile :)
В итоге причина нашлась:

Проблема прилетела откуда не ждали. В rabbitmq.jar оказался файл version.properties, который путал нам все карты. Переименовал наш в version-customer.properties

А ведь, казалось бы... Вообще несвязанный функционал — подключение JMS и отображение версий. Но чего только не встретишь =)

Самое удобное здесь то, что сборки мы собираем часто, поэтому определить виновного довольно легко: вчера все было ок, сегодня уже не ок, а делал ты только вот эту и эту задачу. Так что или баг правда локальный и поможет пересборка проекта, или ищи зависимости в коде. Даже если эта задача на функционал влиять вроде как не должна ツ

Комментариев нет:

Отправить комментарий