Я только что исправил баг, который не мог поймать больше 2х лет
С вами рубрика цепочка багов:
1. Примерно раз в день у меня каждый процесс маркет-мейкера или вылетает, или начинает на секунду творить какую-то дичь типа снять ордера и поставить не туда. Редко, но больно.
2. Я больше 2х лет не мог понять в чем дело, в логах ничего.
3. И вот на прошлой неделе я переделал систему мониторинга, которая работает по тому-же протоколу что и передача котировок между серверами: multiport UDP с подбором соединений.
4. И вдруг в системе мониторинга я вижу не ошибку, а хуйню вида
INVITE sip:10000@3.66.34.137:5004
INVITE sip:10000@18.184.70.68:5003
INVITE sip:10000@3.75.18.178:5007
Ах ты ж сука!
5. Короче, у меня были открыты порты UDP наружу. Оказывается, что 172.0.0.0/16 это публичный диапазон, а 172.16.0.0/12 - это приватный.
И вот я сделал небольшую дырку наружу для очень узкого количества публичных IPшников, которые начинаются на 172.
6. А в интернете бегают всякие злоебучие SIP-скринеры, которые херачат во все дырки свои INVITE SIP ну поговори со мной, ну пожалуйста.
7. И в этот момент конечно маркет-мейкер принимает это как конченную маркет-дату и творит дичь (а все потому что у нас очень hot path и очень ололо HFT, поэтому никакие проверки на валидность входящих данных недопустимы by-design).
8. И вишенка на торте, что AWS даже не умеет подсказывать правильно private диапазон (см скриншот).
9. Где-то в древнем 2020м году я проебался похожим образом: google bot залез мне в админку и начал клацать на ссылки "закрыть позицию". Веселый трейдинг был. А залез гуглбот потому что nginx создавался таким же отбитым как и я - в конфиге что-то не так? ну и похер, будешь без авторизации.
Йобанные сети.
#bugchain #network
Post #1787
428
- 😁 11
- ❤ 5
- 👍 2
- 🤯 1
- 😢 1
- 🤝 1