~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
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 минут