~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Leopold
Most2
Nikat
Vort
Xeha
`
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
onon
poriori_
profetikla
soos
teeth
un
weko
whothefuckami
orignal
рестарт илиты через 10 минут
Guest7184
orignal, how can I debug a segfault? 2.50.2 on alpine is segfaulting after a few min every time. 2.49.0 was working before, then I updated. Lmk how I can help share debug info. Thanks!
Vort
try 2.51.0 maybe ?
orignal
нет
orignal
I'm not going to investigate aphine issues.
orignal
Don't buzz me with it, please.
orignal
Vort клоуны делают какую то хрень а потом еще и требуют что им чинили
orignal
потому что хрень
Vort
пока не разберешься - не поймешь
Vort
с багами всегда так
Vort
может быть как проблема в i2pd, так и в ОС
Vort
я когда-то нашёл баг в программе для винды из-за того, что в Wine глюки были )
Vort
просто винда позволяла больше глупостей, чем Wine
orignal
возмоэно
orignal
но тратить время на эту дичь я не намерен
Vort
сейчас посмотрел статью вики про Alpine и, похоже, сразу же вижу проблему
Vort
Alpine Linux was designed with security in mind. All userland binaries are compiled as Position Independent Executables (PIE) with stack smashing protection.
orignal
хочет помочь пусть изучит вопрос и поделится результатами
orignal
но он желает чтобы это сделал за него кто то другой
Vort
пусть вначале поставит 2.51.0
Vort
помнишь же баг с памятью в стримах?
Vort
он вполне и тут может вылазить
orignal
ну так пусть пробует кто ж запрешает то
orignal
чет у меня сегодня пиздец наступл тут
orignal
отваливался каждые 15 минут
Vort
у меня два подозрения:
orignal
но там почти месяц версия стояла
Vort
1. давняя проблема с тем, что со временем узел начинает работать хуже. IRC серв был включен довольно долго
Vort
2. могут быть проблемы с изменениями в стримах. там ещё много чего надо доделывать/переделывать
orignal
ну смотри он месяц стоял более или менее терпимо
orignal
а сегодня начал непонтяно что
Vort
сегодня какая-то необычная нагрузка на сеть
orignal
ну вот после пересборки и рестарта пока нормально
Vort
есть вариант, что из-за перегрузки где-то в сети на наш узел "выдавливает" каких-то дохлых пиров
orignal
тоже возможно
Vort
перезагрузка их сбрасывает - они куда-то ещё переподключаются
orignal
да возможно тоннели идут через ненадежные узлы
Vort
меня вообще очень удивляет, почему рейт у узла сейчас плавает в пределах 10-27%
Vort
и такое ощущение, что рейт зависит от какой-то фигни типа времени суток во время запуска узла
orignal
я думаю когда перейдут на новый релиз то рейт станет выше
orignal
из-за того бага с построением тоннеля
Vort
ну если исправили больше багов, чем наделали, то да )
orignal
число узлов в сети зависит от времени сутиок
orignal
в этом все дело
orignal
ну с тоннелями там был вполне конкретный баг
Vort
но суть немного не в том. непонятны причины различий в стабильных состояниях как бы. хз как пояснить
orignal
у меня такого нет
orignal
у меня всегда веечером рейт выше чем днем
Vort
узел может стабильно работать на 15% рейте, перезапуститься и попасть на 25% рейт. или наоборот - быть на 25%, а после перезапуска стать с 15%
orignal
у меня такого нет
orignal
у меня не важно в какое время запущен
Vort
хм. у меня могут быть различия из-за того, попадёт ли i2pd на одно и то же ядро процессора, что и узел Tor
Vort
но это догадки
orignal
ну да у тебя винда к тому же
orignal
у меня то везде линуксе но винда но ноутер
Vort
хотя вопрос с работой i2pd при 100% нагрузке CPU придётся решать в любом случае
orignal
и как ты предлагаешь его решать?
orignal
я вижу только снижением лимитов
Vort
измерять нагрузку по степени тормозов какого-то из потоков
Vort
и затем в CongestionLevel добавлять
Vort
в потоках же есть таймеры. можно при срабатывании измерять, сколько реально времени прошло
Vort
и если сильно большое расхождение, значит поток перегружен
orignal
ну перегружен и что дальше делать?
orignal
на работе если такая ситуация имеет место быть ставится еще один сервер ))
Vort
как и в случае с трафиком. слабо перегружен - флаг ставить. сильно перегружен - прекращать принимать транзит
orignal
да. так можно
Guest7184
Sounds good. Keep up the good work!
`
Guest7184, thank you!
R4SAS
mageia сломалась совмем
R4SAS
совсем*
Vort
Guest7184: I tested i2pd 2.51.0 with Alpine 3.19.1 x86_64, it works fine: paste.i2pd.xyz/?a44bdc61370eeaee#Ew6W4GfxttsnpTiZ9RhCuv35k6HnnhW9CqkC2xQaTXvS
orignal
а что
orignal
это такое?
R4SAS
rhel-based система
R4SAS
расчитанная на хомяков
orignal
ну и хрен с ней
orignal
хватит там одной федоры
R4SAS
крч форк мандривы
orignal
из всех этих поеий кроме Rocky котрый и есть сам RH годнота только федора
Vort
orignal: в общем, за полчаса аптайма 2.51.0 в Alpine ничего не крашнулось. похоже, какой бы баг ни был, он починен. ну или для креша нужны какие-то хитрые условия воспроизведения
orignal
ну вот пусть товарищ и скажет
orignal
я думаю у него с каким нибудь правами доступа проблема
Vort
подозреваю, что он собирать вручную пакет не будет ))
Vort
так он говорил, что (поза)прошлая версия работала. права бы и её мешали
Vort
ей*
orignal
ну "так и вы говорите"
Vort
короч я думаю, что баг был, но уже починен
orignal
выозможно
Vort
R4SAS: так просто сайт у mageia сдох? я думал речь о сборке под неё
orignal
туда ей и дорога
Vort
orignal: какое примерно время стоит ждать установления/восстановления связи стрима? 1-2 минуты нормально?
Vort
под это целевое значение уже можно константы будет подгонять
orignal
не понял вопрос
orignal
сколько стримы обениваются SYN-ами?
orignal
ну так это чисто RTT
orignal
если тоннели годные
Vort
ну вот пытается создаться стрим. тыкает SYN в один тунель, в другой. сколько стоит продолжать делать попытки?
Vort
я имею в виду ситуацию, когда туннели негодные
Vort
допустим, сервер резко ушёл в оффлайн как раз в тот момент, как клиент начал создавать стрим
Vort
да и вообще надо получше обсудить код в Stream::HandleResendTimer
Vort
заметил там сомнительное место
orignal
вот x3
orignal
там думать надо
Vort
ну я имею в виду с точки зрения юзера
Vort
и юзерских программ
Vort
сколько он готов ждать начального создания стрима и сколько терпеть лагов стрима когда связь обрывается
Vort
а по поводу сомнительного места: MAX_NUM_RESEND_ATTEMPTS = 6, но туннели менются только при попытках 2, 3 и 4. почему при 5 и 6 попытке не меняются?
orignal
не помню )
Vort
а какая логика была в отдельной смене туннелей из пары? я имею в виду отдельную обработку кейсов 2,4 и 3
Vort
ну и ещё один вопрос: почему m_RTO сбрасывается в INITIAL_RTO только в кейсах 2 и 4, но не 3?
Vort
это место однозначно надо переделывать, но для начала хотелось бы понять, почему оно именно такое, как сейчас
Vort
но если не помнишь, то вариант только один - менять наугад и надеяться на лучшее
Vort
у меня ещё вопросы припасены ) но пока что хватит тех, что уже задал
orignal
а что там в 3 я не помню
orignal
?
Vort
ну там отдельно меняется remote lease (2,4) и outbound tunnel (3)
Vort
вопрос в том, почему они меняются отдельно, а не сразу remote lease + outbound tunnel для всех попыток кроме первой
Vort
то есть, сейчас так: 1 просто перепосылка с 2x RTO, 2 lease, 3 outbound, 4 lease, 5 и 6 - ничего
Vort
я хочу сейчас потестить вариант с продолжением чередования: 5 outbound, 6 lease
Vort
но вообще надо бы понять, какой смысл в чередовании
orignal
ну видимо по моей логике я пытался по очереди определять что фейлится
orignal
ососбого смысла не было
orignal
опять же первое что пришло в голову
Vort
прочитал ответы через major. тогда вопрос в том, стоит ли оставлять чередование. я пока что конкретного мнения не имею
onon
Нету смысла, не заморачивайся.
onon
Я вот сделал алгоритм сейчас, на длинных туннеля работает вроде нормально, а попробовал на коротких - какая то шляпа...
orignal
что за ответы через major?
Vort
я выходил из чата, прочитал логи пока меня не было
onon
И получается что должен нормально работать и с RTT 20 и с RTT 3000
orignal
а все понял
onon
Вот и мучаюсь
Vort
onon: ну твой код, убирающий чередование, я уже видел. поэтому же и пытаюсь разобраться
Vort
onon: на коротких туннелях выше чувствительность к внутренним потерям транспорта
Vort
к тем потерям, которые траспорт проглатывает и превращает в лаги
onon
На коротких туннелях ниже ртт, меньше джиттер, мой алгоритм хреново работает, нужно менять логику.
Vort
джитер, скорее, редкий, но меткий :))
orignal
потому и от ирка отваливается?
Vort
меня как раз этот вопрос и беспокоит
orignal
вот смотри
Vort
основное подозрение на коммит a703d318 - что не хватает 9 секунд
orignal
нет ответа на пакет долдго как понять кто сдох?
Vort
можно предположить, что наши туннели постоянно тестируются и они хорошие, а вот у сервера - хз
Vort
наверно поэтому вначале lease меняется
orignal
а почему if (m_RTO != INITIAL_RTO)?
orignal
а нет <=
Vort
потому, что до этого поставили m_RTO = INITIAL_RTO
orignal
ну это первывй раз
Vort
то есть, разделяется RTO, основанный на RTT и RTO, поставленный от балды
orignal
а если мы его увеличивали и доучеличивались что стал больше?
Vort
если на RTT, то умножаем на два, если от балды - то не трогаем
Vort
увеличиваем только один раз - при первой попытке
Vort
короч сейчас покажу, что тестирую. надо вообще это явно прописать. но пока не прописал
Vort
надо просто перенести m_RTO *= 2 в ветку if (m_NumResendAttempts == 1) да и всё
orignal
вот да
onon
А почему if (m_RoutingSession) m_RoutingSession->SetSharedRoutingPath (nullptr); убрал?
onon
Я пробовал, у меня получилось хуже
onon
Хз почему
Vort
он в else
Vort
"<onon> Я пробовал" - что именно?
onon
Убирать if (m_RoutingSession) m_RoutingSession->SetSharedRoutingPath (nullptr);
onon
Я точно не знаю как это работает
Vort
не, я не убрал. то просто github так diff показывает
Vort
посмотри внимательнее
onon
Увидел
onon
Я так пробовал, сделал 20 кейсов и по очереди менял то туннель то лизсет
onon
Всё херня
Vort
onon: менять сразу оба - лучше? или без разницы?
Vort
были ли хорошо видные различия в тестах?
onon
Никакой разницы не было, что по отдельности, что сразу
Vort
а, ну тогда не надо спешить менять
Vort
в смысле переделывать
onon
Если у тебя получится иначе, буду сильно удивлён
Vort
перезапущу сейчас тест с переносом m_RTO *= 2 в другое место. не даёт мне покоя эта мелочь. заодно проверю, не упускаю ли чего
onon
А я просто сделал 2 сек и всё
onon
Потому что на 6 хопах в обе стороны в среднем пинг 1000
onon
Ну так если за две сек никто не ответил, меняем туннель
Vort
я чуть о другом говорю
Vort
а про то, чтобы поменять сам INITIAL_RTO - я тоже думал
Vort
засунул m_RTO *= 2; внутрь if (m_NumResendAttempts == 1)
Vort
а тьфу, не правильно. при первой попытке фигню удваивать тоже не надо
Vort
хотя это получается более интересная проблема вылезла )
Vort
если сразу попали на плохой туннель, то окно в таком случае сбрасывать не нужно :) надо сразу туннель менять
Vort
// congestion avoidance - это для случая, когда туннель был, хороший, а потом подзаглючил
Vort
если хорошего не было - то какой же тут congestion
Vort
с RTT/RTO в стримах есть ещё один косяк: туннели ведь меняются не только из-за того, что туннель залагал. есть ещё причины. так вот в тех случаях тоже надо сбрасывать часть состояния (RTO к примеру)
Vort
на всякий случай: после нескольких перезапусков узла для теста изменения вижу вот такое: Tunnel creation success rate: 30%
Vort
и это явно не повышение рейта по всей сети, это локальный эффект от перезапусков
whothefuckami
После перезапуска узла TCSR всегда поднимается
R4SAS
хехе
R4SAS
s1 (pool)
R4SAS
Uptime: 183 days, 19 hours, 4 minutes, 15 seconds
R4SAS
Network status: OK
R4SAS
Tunnel creation success rate: 32%
R4SAS
Received: 1155.93 GiB (25.24 KiB/s)
R4SAS
Sent: 1167.94 GiB (27.00 KiB/s)
R4SAS
Transit: 764.76 GiB (5.55 KiB/s)
R4SAS
Routers: 5205 Floodfills: 525 LeaseSets: 0
R4SAS
Client Tunnels: 119 Transit Tunnels: 1000
R4SAS
слабенько, но хотя бы живое
R4SAS
Router Caps: PRE
R4SAS
Version: 2.49.0
Vort
whothefuckami: если быстро перезапустить, то может и не подняться
Vort
и если один раз
Guest7184
Vort, 2.51.0 is working great. Congratz to all for the release.
Vort
thanks for the info
Vort
сделал сброс RTO стрима при смене исходящего туннеля. почти ещё не тестировал: github.com/Vort/i2pd/commit/57e46ba0cf7ccf3ed72a8da0b6fb4e2f49f6366c
Vort
подобное надо будет ещё провернуть при смене remote lease
Vort
ну и надо доделывать расчёт RTT. правда, ещё не до конца понятно, как именно
orignal
так надо смотреть
orignal
пойду описание релиза писать
Vort
при явной смене туннелей долепливать новые RTT семплы к старым смысла мало - надо сброс и RTT делать. ещё подумаю над деталями
orignal
увеличить в 2 раза как обычно
Vort
я думаю, надо иметь два варианта - когда данные хорошие и когда плохие
Vort
вот когда плохие, то как-то гадать - может и в 2 раза увеличить
Vort
но для начала хочу попробовать очистить данные и посчитать почётче
Vort
данные из первого ack`а после смены туннелей надо выкинуть, скорее всего
Vort
только учесть, что иногда альтернативы нету
Vort
данные про RTT* конечно же
onon1
Лучше чем-нибудь полезным займись
onon1
Нету смысла этот алгоритм полировать
onon1
Его нужно менять
orignal
написал описание релиза
Vort
onon1: правильная смена туннелей и правильная оценка RTT - это основы любого алгоритма
onon1
Что ты подразумеваешь под правильной сменой туннелей
Vort
вовремя
onon1
Я как бы согласен, смена туннеля не должна вызывать тех проблем, которые вызывает сейчас.
Vort
ну и ещё подразумеваю, что эта смена должна проходить без нарушения работы алгоритма
Vort
другими словами, RTT должен считаться правильно и когда туннели меняются и когда не меняются
Vort
без прыжков куда попало и без залипаний
onon1
Ты всё время такими абстрактными заявлениями отвечаешь, что у меня создаётся впечатление, что ты пытаешься казаться умнее.
onon1
Хочешь более точный RTT - меняй альфу, будет быстрее адаптироваться при смене туннелей.
onon1
Я у себя делаю так.
Vort
иногда у меня нету данных, чтобы сказать конкретнее. иногда предполагаю, что и так понятно, о чём говорю - в этом случае могу и уточнить
onon1
Ну так ты в общем и говоришь общие вещи, которые и так понятны.
Vort
ну вот я выше сказал конкретнее - в первом ack`е после смены туннелей не RTT, а время поиска RI. эти семплы надо выкидывать
Vort
чем и постараюсь заняться, если ничего не помешает
onon1
Это не всегда так
R4SAS
orignal: я тут при перезапуске словил вылет
R4SAS
после старта
orignal
давай стек
R4SAS
очередной libboost
orignal
так это внутри буста
R4SAS
ага, уже увидал
orignal
счас поглядим
orignal
может вообще его там выпилить надо
R4SAS
у тебя даты хранятся в тексте
R4SAS
в профилях
orignal
ну
R4SAS
если на штампы только перевести
orignal
или хотя бы экспешины лвить
orignal
да надо просто на число
orignal
странная вообще ощибка
R4SAS
да походу рантайм крякнулся
orignal
вот она
orignal
бага
orignal
race condition
R4SAS
rc в получении циферки месяца из трех букв
R4SAS
что то новое
R4SAS
)))
orignal
там глобальная таблица
orignal
в которой делается поиск без мьютекса
orignal
че будем делать? ставить мьютекс?
R4SAS
а есть смысл?
R4SAS
> а есть смысл?
orignal
а вот x3