IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/10/04
~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+Xeha
+relaybot
+whothefuckami
HackerMan
KabaOS
Leopold
Most2
Nausicaa
Vort
`
anon1
b3t4f4c3
fidoid_
fujifilm
moldy
nemiga
not_bob_afk
osoznayka
poriori
profetikla
segfault
soos
teeth
un
weko_
космонавт
orignal Vort похоже я починил проблему со сменой интольюсеров
Vort orignal: поставил U тест и заметил, что интродьюсером выбрался U узел без адресов. это как вообще?
Vort в общем, вот такой результат теста получился: paste.i2pd.xyz/?ffb691dbd853a348#4yZrL4LELhUuYAz2gDQN8m4UQiAb5y2uNyuhWyGcgD8X
Vort Firewalled в этом тесте я получал прикрытием входящих с помощью виндового фаерволла
orignal спс починю
orignal что такой выбрался
orignal почему добавляется и убирается счас тоже поправлю
Vort у меня два предположения по поводу отвалов интродьюсеров: 1. потери пакетов. 2. короткоживущие дырки. у тебя есть третье предположение?
Vort а U узел наверно при подключении был в netdb как R. после подключения стало понятно, что U. а затем через несколько минут он выбрался интродьюсеров
Vort интродьюсером*
Vort небось "U"-интродьюсер пострадал из-за глюченого пиртеста
orignal так у меня не отваливаются
orignal то что у тебя случаилось это я починю
Vort я тогда не совсем понял, что ты чинить собрался. выбор U - это понятно. что-то ещё? я думал ты ещё об отвале говоришь
orignal про отвалы у тебя
orignal там понятна причина
Vort вот я и спрашиваю - какая ещё причина кроме двух тех, что я предположил?
orignal логическая ошибка в коде
Vort ок
Vort тогда перетестирую попозже
orignal по поводу U там все хитрее
orignal он же выбрался потому что роутер ответил рилэй тагом
orignal значит он был в тот момент R
Vort ага. это был флудфил
orignal более того мы к нему подключились
Vort высокий шанс, что он был R, да
orignal тут уж ничего не поделать
Vort caps = XfU netdb.knownLeaseSets = 18 netdb.knownRouters = 14042 router.version = 0.9.59
orignal просто пир тест глюканул
Vort "<~orignal> тут уж ничего не поделать" раз мы знаем, что стал U - можно это учесть. сессию трогать не надо, конечно. но вот зачем для интродьюса выбирать?
orignal а как ты узнаешь что он стал U?
orignal кажлый раз передапрашивать netdb?
Vort ну да. интродьюсеры ведь редко выбираются
Vort несколько запросов в час к netdb - это не страшно
Vort лишь бы багов не наделать )
orignal посмотрю
Vort ну я имею в виду локальные запросы
Vort я же это в своей netdb увидел
orignal не факт что обновление не пришло после
orignal а оно скорее всего пришло после
Vort файл узла Fgi0 на диск отложился в 5:23. 05:25:47 +0300]@536/error - RouterContext::AddSSU2Introducer v4 Fgi0
Vort может, ситуация и редкая и может пофигу. не знаю. надо проверять по-хорошему
Vort то есть, перепроверить по всей локальной базе как часто в интродьюсерах висят U узлы
orignal починил
Vort по поводу U: может, и не надо их трогать. сейчас поясню
Vort можно не выбрать такой U, а он через минуту станет R
Vort или выбрать R, а через минуту он станет U
Vort тут наверно только обновление узлов сети на более надёжный алгоритм пир тестинга может помочь
orignal и как это проверять?
orignal я же тупо смотрю есть у нас сесссия с тагом и все
Vort я имею в виду, что, скорее всего, не стоит пытаться это чинить
Vort так как не факт, что починка что-либо улучшит
Vort могут ли SSU2 сессии отваливаться из-за того, что у меня два узла на одном IP ?
Vort вот сейчас заметил, как с одним из IP адресов сессии на двух узлах примерно одновременно отвалились
Vort при том, что на основном узле через этот IP было дофига трафика прокачано
Vort хотя это наверно мне показалось. не туда посмотрел
Vort в общем, с последним коммитом отвалы чуть реже, но всё же есть. я попробую сейчас пересобрать с другой константой kepalive. так можно будет одну из причин исключить
orignal могут если у тебя канал забит а так не лолжны
orignal последний коммит это исправлено выкидывание и тут же вставка обратно
Vort поставил SSU2_KEEP_ALIVE_INTERVAL = 5, SSU2_KEEP_ALIVE_INTERVAL_VARIANCE = 3 - всё равно отваливаются в среднем за несколько минут
orignal ты можешь посмотреть что на той стороне?
orignal может это у деда баг?
orignal он же говорил что наши keep-alive не считает за сообщения
orignal а типа держит все время
orignal счас я у него спрошу
Vort отваливаются все. просто какие-то за несколько секунд, какие-то за несколько минут
Vort но некоторые минут по 10 живут
orignal у а меня бывает что и 60 минут сидят
Vort этот узел с сервисами? может там трафик другой идёт?
orignal нет там вообще пусто
orignal ну может да тоннели сидят
orignal пошел трясти деда
Vort хмм. я кое что забыл
orignal чего?
Vort у меня на этом узле тестировались дестинейшены с 7-8 хопами. так я это и забыл. может влиять?
orignal это x3
orignal я могу скачать что у меня отвеливаются через несколько минут но не все подряд
Vort уберу ка я это нахрен и перезапущу тест
Vort отвалы остались. хм. надо логи добавить, чтобы убедиться, что закрывает "та" сторона
orignal вот да проверить надо
orignal что мы получаем termination с той стороны
Vort eSSU2TerminationReasonTimeout
Vort бля
Vort хотя.. это не то, что я подумал
Vort ещё порассматриваю
orignal то есть?
Vort уже три отвала обнаружил с RequestTermination reason 14
Vort то есть, это наша сторона рвёт связь, но почему - пока не знаю
orignal так посмотри какой код мы ставим
Vort вроде всего одна причина: if (it->second->numResends > SSU2_MAX_NUM_RESENDS)
orignal нет еще таймаут есть
Vort таймаут - это eSSU2TerminationReasonIdleTimeout
Vort код 2
orignal погоди
Vort ещё один с 14 кодом отвалился. полагаю, это основной путь проявления "моей" проблемы
orignal так хорошо давай смотреть что именно мы не пересылаем такого
orignal тип сообщения
Vort и ещё один
orignal relayresponse небось?
Vort так это наша сторона рвёт
orignal это я понимаю
orignal но наша сторона что то посылает значит
orignal вот это it->second
orignal знаешь что сделай?
Vort то есть, на что никак ответ не приходит?
Vort что?
orignal строку 2072 SSU2Sessiom.cpp замомментируй
Vort да я же там уже всего подописывал
orignal m_SentPackets.emplace (packetNum, packet);
orignal вот эту
orignal в HandleRelayIntro
Vort сейчас попробую
orignal там бага какая то с этим
orignal вообще с RelayReponse
Vort но можно было бы и попробовать угадать по самому пакету
orignal так скорее всего мы только один пакет посылаем
Vort вообще, 5 попыток - это таки дохрена
Vort тут уже потерями пакетов не объяснишь
orignal тут не потеря
orignal там бага с ними какая то
orignal с бобом тоже идет лажа
Vort ну я понял. говорю на случай если не угадали с типом, который застревает
onon А боб вообще должен подтвердать получение такого пакета?
onon Который ты в отправленные вставляешь
onon Тогда нужно выяснить, почему не подтверждает
onon Это все хосты не подтверждают, или только некоторые
onon Если не все, то какие, если все, то почему
orignal я деда вторую неделю долбаю
Vort за 7 минут ни одного отвала с закомментированной строчкой. но я ещё послежу
orignal значит пока убираем
Vort 13 минут отвала нету. завершаю тест
Vort это правда на разогнанных keepalive. но пофигу
orignal короче я комминитрую тогда строчку эту пока дед не разберется
Vort ну да. только на своём U на всякий случай проверь после того как закомментируешь
Vort странно, что у тебя было мало отвалов
Vort но может вообще не будет теперь?
orignal мало потому что на i2pd попадал чаще вилимо
orignal счас проверю
Vort по-моему, у меня и i2pd отваливались
orignal возможно
orignal ладно проверим
orignal проверил и закммитил
Vort таки стабильнее стало?
orignal нманого
orignal вот кто же знал что в сети такая бага
orignal дед пообзеал посмотреть
Vort хорошо
orignal я понял почему у меня сесии долго стояли
orignal это до первого RelayIntro было
onon Неужели сейчас через U узлы начнут туннели нормально строиться.
orignal плохо что перепосылки RelayResponse нету
onon Сделай if (it->second == RelayResponse) it->second->numResends = 0;
onon Или сделать счетчик до 4 а потом удалять
onon Не закрывать сессию
orignal ну можно да
orignal но там сложнее
orignal это хорошая кстати мысль не закывать