IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/04/07
~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest18377
HackerMan
KabaOS
Most2
Nausicaa
Ruskoye_911
Trusishka
Vort
`
acetone_
anon3
b3t4f4c3
flumental
mittwerk
nemiga
not_bob_afk
plap
poriori_
profetikla
segfault
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 я не помню
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 в профилях
R4SAS если на штампы только перевести
orignal или хотя бы экспешины лвить
orignal да надо просто на число
orignal странная вообще ощибка
R4SAS да походу рантайм крякнулся
orignal вот она
orignal бага
orignal race condition
R4SAS rc в получении циферки месяца из трех букв
R4SAS что то новое
orignal там глобальная таблица
orignal в которой делается поиск без мьютекса
orignal че будем делать? ставить мьютекс?
R4SAS а есть смысл?
R4SAS > а есть смысл?
orignal а вот x3