IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/04/08
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Leopold
Most2
Nausicaa
Ruskoye_911
Vort
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
un
weko_
whothefuckami
orignal else if (!m_CurrentOutboundTunnel->IsEstablished ())
orignal m_CurrentOutboundTunnel = m_LocalDestination.GetOwner ()->GetTunnelPool ()->GetNewOutboundTunnel (m_CurrentOutboundTunnel);
orignal вот здесь надо проверять какое было переключение
orignal и если было на совсем другой тоннель то сбрасывать RTO
orignal слишком большие окна у стримов у ирка получаются
orignal есть и 128 даже
orignal WINDOW_SIZE_DROP_FRACTION надо поднять
Vort "<~orignal> вот здесь надо проверять какое было переключение" так я же скидывал свой коммит, который именно это и делает (57e46ba0)
Vort "<~orignal> слишком большие окна у стримов у ирка получаются" - так IRC, вроде, много данных не шлёт - не всё ли равно, какое у него окно?
Vort за ночь (10 часов аптайма) с коммитом 57e46ba0 меня ни разу из IRC не выкинуло. похоже, что помогает. жаль, пока не знаю, как надёжнее оценивать изменения
Vort по поводу окна - надо думать, что делать с окном при смене туннелей. я пока что не могу придумать логичного обоснования ни для одного из подходов к этому вопросу
Vort сделал PR со сбросом RTO, предлагаю тестировать: github.com/PurpleI2P/i2pd/pull/2048
tetrimer Что-то у меня irssi с ночи ругается "08:34 -!- Capabilities now available: sasl", а с телефона - вообще не зайти в irc.
Vort tetrimer: так а чем это сообщение мешает? оно не похоже на ошибку
Vort построил я гистограмму с номерами перепосылок из коммита 57e46ba0 для 15 часового стрима к этому чату
tetrime1 так не бывает:)
Vort похоже, проблема понятна: сеть часто не в состоянии за минуту (6 перепосылок) восстановить связь. поэтому добавляю в PR ещё один коммит, меняющий количество перепосылок на 9 (полторы минуты)
Vort поставил себе на тест коммит с увеличенным количеством попыток: b2e21a4
Vort "<tetrime1> так не бывает:)" что не бывает? я долго в чате провисел что ли без дисконнекта? так узел с исправлениями и вообще у меня дестинейшен 1хоповый
tetrimer Vort: Это я с телефона глючу: писал в один канал, попал - в другой. Прошу прощения.
Vort tetrimer: исправления потестируешь? :)
tetrimer Можно. Надо только понять - откуда правильно брать исходник.
Vort одно и то же
tetrimer * [новая ветка] stream_resends -> origin/stream_resends
tetrimer Уже актуально.
Vort надо, чтобы коммит b2e21a4 попал на тестирование
Vort я ветку несколько раз обновлял
onon Нужно выяснить почему оно падает
onon Я не умею
tetrimer Vort: собрал 2.46.1-458-gb2e21a4f, сейчас перегружусь.
orignal давай тогда PR
orignal ммержил
Vort orignal: что неудобно - проверять надо и клиент и сервер. хотя даже просто обновление клиента у меня дало положительный эффект
orignal ну так я сегодня сервер и обновлю ))
Vort если 9 перепосылок будет мало, можно будет 12 (то есть, 2 минуты) сделать. но пока стоит попробовать на 9, может хватит
orignal меня бспокоит размер окна что при обрывае пачка будет уходить в никуда
Vort в случае IRC или вообще?
orignal в долгоживудих стримах вообще
Vort а тут вопрос в том, пользуются ли они этим размером окна - то есть, будет ли вообще пачка
Vort в IRC, скорее всего, не будет
Vort а если кто-то большой файл качает, так там регуляция будет работать. ну... насколько нынешний алгоритм позволяет
Vort можно попробовать не увеличивать окно если им стрим не пользуется, но это идея почти что наугад
orignal так вопрос со сменой тоннеля остался
orignal как ты определяешь переключился на точно такой же или другой?
orignal это надо в TunnelPool.cpp менять
Vort регуляция, кстати, работает иногда на удивление чётко:
Vort "<~orignal> так вопрос со сменой тоннеля остался" - тут два вопроса по сути: 1. что делать с окном при смене туннеля
Vort 2. как понадёжнее определить момент смены туннеля "той" стороной
Vort "<~orignal> как ты определяешь переключился на точно такой же или другой?" ну если сами меняем, то вот так: github.com/PurpleI2P/i2pd/blob/04bccedd9b515eb28abaed7bcd34a64e73c1cdbb/libi2pd/Streaming.cpp#L931-L932
Vort а если та сторона меняет - то пока что никак
orignal я имею ввиду свой
orignal outbound
Vort ну вон ссылку кинул
orignal а все понял
orignal я просто подумал что можно убрать лишнее сравнение если возвращать из NewOutboundTunnel как значние
orignal и чтобы проверки не было в двух разных местах
Vort так C++ вроде не особо позволяет два значения вернуть
orignal std::pair и все
Vort ну хз как будет чище. можно и переписать, не суть
orignal либо возвращаемый праметр по ссылке
orignal согласен
orignal просто надо переделалть будет
onon Vort, попробуй нормальный CC для стримов, я выше скидывал. Только он крешится иногда, хз почему.
onon Может на ноль где деление.
onon Я знаю ты умеешь такое находить.
Vort onon: я надеюсь когда-то разобраться в новом алгоритме, но пока что важнее привести в порядок старый алгоритм - чтобы было куда откатываться в случае неудачных экспериментов
Vort по поводу поиска проблем могу посоветовать универсальный подход - метод деления пополам
Vort для этого нужно иметь рабочую версию, нерабочую версию и сделать что-то среднее между ними
Vort проверить, будет ли новая версия глючить. в зависимости от результата - опять делать среднее между прошлым средним и ближайшей версией
Vort в итоге обычно удаётся прийти к единственному мелкому изменению, которое создаёт проблемы
onon2 С таким подходом увеличение скорости ипупи, я скорее всего не увижу.
onon2 Это называется оверинжиниринг
onon2 Ну или просто бесполезное рукоблудие по клавиатуре.
onon2 Я говорю, у нас в ракете двигатель хреновый, мы на нём не контролируем перегрузки, нужно новый вставлять, а ворт говорит - подожди, я тут кислородный патрубок изогнул в другой плоскости, сейчас нормально заработает.
orignal так надо летать на старом пока делается новый
onon1 Ну так я и не предлагаю сразу на стартовый стол новый неопробованный двигатель отправлять.
onon1 Просто бесполезная трата времени
orignal ну так никто ж не спорит
orignal вот счас надо починить отвалы ирка
` А потом можно переписать на "язык будущего 🦀" )00
orignal пойду пересоберсь где баунсер
orignal посмотрим как будет
Vort "onon2 Это называется оверинжиниринг" - это подход, близкий к Интеловскому en.wikipedia.org/wiki/Tick%E2%80%93tock_model
Vort на одном этапе алгоритм не сильно продвинутый, зато без багов
Vort на другом этапе - более продвинутый, но с багами
Vort переходить же от одного забагованного алгоритма на другой забагованный опасно - можно потерять контроль за ситуацией ("технический долг")
Vort orignal: что ответить юзеру на гитхабе про b32 адреса? что таки публичные, потому что публикуются на флудфилах?
Vort кстати, я довольно гадкий баг сегодня пронаблюдал. клиент допрыгался по туннелям до ошибок "Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message" и "ElGamal decrypt hash doesn't match"
Vort надо будет подумать, как выловить эту хрень. она может быть причиной некоторых зависаний стримов
Vort onon2: когда у тебя были пятиминутные подвисания стримов, вот такая ^^ хрень случаем не сыпалась?
R4SAS ха
Vort я у них на фейсбуке такое же сообщение видел от 5 октября 2023 года
R4SAS orignal: я обновился, дело за тобой
orignal счас займусь
orignal рестрат илиты через 10 минут