~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
DUHOVKIN_
Guest7184
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
anon3
b3t4f4c3
daemon
fidoid
hypn--direct
hypn-direct-nb
karamba_i2p
monkey
nemiga
not_bob_afk
plap
poriori
profetikla
qend
segfault
soos
teeth
tensor
tetrimer_
trust
tux
uis
un
unlike
user
vade
weko_
whothefuckami_
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
jr
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
Который ты в отправленные вставляешь
orignal
да
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
вот кто же знал что в сети такая бага
orignal
дед пообзеал посмотреть
Vort
хорошо
orignal
я понял почему у меня сесии долго стояли
orignal
это до первого RelayIntro было
onon
Неужели сейчас через U узлы начнут туннели нормально строиться.
orignal
плохо что перепосылки RelayResponse нету
onon
Сделай if (it->second == RelayResponse) it->second->numResends = 0;
onon
Или сделать счетчик до 4 а потом удалять
onon
Не закрывать сессию
orignal
ну можно да
orignal
но там сложнее
orignal
это хорошая кстати мысль не закывать