onon
Нужно в Streaming.cpp строка 1228 добавить ещё одну проверку:
onon
if (m_WindowIncCounter && m_WindowSize < MAX_WINDOW_SIZE && !m_SendBuffer.IsEmpty () && m_PacingTime > m_MinPacingTime)
onon
Чтобы не увеличива��ь размер окна, в случае если исходящая скорость ограничивается.
onon
А то сейчас дроп окна некорректно отрабатывает в таком случае.
orignal
счас сделаю
orignal
как назвать коммит?
onon
"не увеличивать размер окна, в случае если исходящая скорость ограничивается" как-то так наверное
orignal
по английски скажи ))
orignal
а то я малость буххой
onon
Do not increase the window size if the speed limit is reached when it is limited
orignal
счас
orignal
сделал
onon
угу
orignal
сделал очередь для SSU2 поглядим
Vort
хм. рискованно как-то выглядит метод с bool empty
Vort
ну или я не понимаю, как это работает
Vort
плюс непонятно, а будет ли вообще очередь расти? или по одному пакетику туда-сюда кидаться будет?
orignal
когда тред который забирает будет занят тогда и будет расти
orignal
а что непонятного с empty?
Vort
если мимо функции будет добавление, то вся эта конструкция сломается нафиг? так как не будет ни empty, ни его разгрузки
Vort
"<~orignal> когда тред который забирает будет занят тогда и будет расти" значит, таки дергатня будет при слабой нагрузке. ладно. может, и не страшно
orignal
согласен
orignal
нет не будет
orignal
сммотри дергание это ведь когда мьютекс реально блокируется
orignal
ну а если как ты говоришь слабая нагрузка и обрабатывается сразу при добавлении не поз ли?
orignal
но на самом деле так вряд ли будет потому что расшифровка сообщения занимает существеенно дольше чем выборка из сокета
Vort
то есть, после того как первый пакет "проглотится", тред уйдёт в размышления и за это время можно будет в очередь поднавалить?
Vort
хотя я плохо понимаю, как работает post
Vort
не просто ли это добавление в очередь, только другую?
orignal
та очередь сильно медленная
Vort
допустим, такой сценарий: пришло 10 пакетов. предполагаем, что единовременно
Vort
что помешает им превратиться в 10 post`ов?
orignal
очередь была пустая в этот момент
orignal
10 пакетов разумеется подряд
orignal
первый вставился сделал post на тред который обрабатывает
orignal
если он занят в этот момент то остальные вставятся в нее пока post этот обработается
Vort
а, всё, дошло
Vort
10 post`ов не будет просто из-за этой хитрой системы с bool empty
orignal
непорядок тут в другом ты прав
orignal
что если тот тред не занят то они все по одному будут обрабатываться
Vort
lock_guard 10 раз дёрнется разве что
orignal
я это епеределаю чтобы встяляли пачками
orignal
проблема не в то сколько он дернется
orignal
а сколько раз вызовестя flush
Vort
я о переключении контекста изначально думал, да
Vort
но вообще надо бы размер очереди как-то хитро пологировать
Vort
тогда станет понятно, надо ли что-то менять
orignal
я печатал
orignal
бывало что под нагрузкой несколько десятков пакетов накапливалось
Vort
а бывало ли что из сокета вытащили пачку, а через очередь по одной штуке протаскивалось?
Vort
меня именно этот сценарий беспокоит
Vort
если пришёл среднего размера кусок, то средним же размером его бы и переложить
orignal
да запросто если ты вызываешь post а он отрабатывается многвенно
Vort
если приходит мелочь, то пусть мелочью и перекладывается
Vort
большой кусок стоит разбить
Vort
а средний если и разбивать, то лишь чуть-чуть
Vort
но вообще, по-хорошему, такие экспермиенты надо под контролем профилирования делать
Vort
так как ситуация неочевидная и можно наоптимизировать херню
Vort
кстати, у меня почему-то TCSR просел. был 30-40%, сейчас 20%. опять какеры виноваты?
Vort
это же не должно быть из-за того, что я узел обновил :)
orignal
счас гляну
orignal
да у меня тоже везде просело
Vort
знач какеры
orignal
там где релиз стоит
orignal
я думаю причина в обновлении сети
Vort
вчера было нормально
Vort
слишком резкое изменение
orignal
так у них счас массово пошло обновление
Vort
java ?
orignal
да
Vort
тогда возможно
orignal
они только позвачера выкатили
orignal
idk все сопли жевал
orignal
меня беспокоит вот какой сецнарий
orignal
не было активности пришла пачка пакетов так первый обработыется отдельно
orignal
что неправильно
Vort
если там миллисекунды, то пофигу
Vort
это ни одна юзерская софтина не заметит
orignal
проблема в лишнем флаше
orignal
оно же и на акки и на пачки в тоннелях влияют
onon
У меня на U роутерах заметно подрос транзит Transit Tunnels: 321
onon
Думаю из-за фикса интродьюсеров
Vort
если java роутеры массово перезагружаются, то вполне возможно перераспределение нагрузки по сети
onon
А может обновления явы как-то связано
Vort
в том чилсе и по U узлам
onon
Угу
Vort
"<~orignal> не было активности пришла пачка пакетов так первый обработыется отдельно" значит empty - плохой повод для запуска процесса обработки очереди
Vort
но как сделать по нормальному не знаю
Vort
как-то на numPackets завязывать наверно стоит
Vort
может, запускать перекачивание либо по превышении numPackets какого-то порога либо по выходу из функции вычитывания из сокета (если порог не превышен)
orignal
я знаю
orignal
надо снчала собрать список полученных а потом им splice
Vort
тогда и мьютекс дёргать меньше надо, да?
orignal
который тоже делается мнгновенно
orignal
да
orignal
я просто это еще не закончил
orignal
и я еще не передлала flush правильно
Vort
небольшое наблюдение: узел 79.81.102.79 никуда не исчез и продолжает долбёжку с Signature verification failed
Vort
orignal: можешь по своим логам глянуть - он там тоже есть? или это персонально для меня такое? :)
orignal
а что это за узел и почему нам до него есть дело?
orignal
нет у меня нету
Vort
что-то не так с его RI и почему-то он постоянно пытается сделать подключение
Vort
вижу тут два варианта
Vort
либо это баг и надо попробовать понять, в чём его суть
Vort
либо какая-то атака
orignal
так а в чем баг?
orignal
ты же видишь его подключения
Vort
какой-то софт неправильные RI гененрирует
Vort
надо убедиться, что это не i2pd и не i2p java
orignal
вопрос в другом
Vort
короч запущу сейчас второй узел и посмотрю, будет ли он туда гадить
orignal
почему он заебывает только тебя
onon
А давайте просто владельца сервера найдём и сделаем ему больно.
Vort
не хочу отладчик к основному узлу подключать
orignal
у меня много Signature verification failed в логах
Vort
это да. но у меня этот адрес - основной их источник
orignal
меня вот такой 88.122.23.30 заеьывает
Vort
с остальными тоже когда-то надо будет разбираться
Vort
а у меня твоего нету. хмм
Vort
но тоже Франция по геолокации
orignal
какой ниубдь докер наверное кривой
Vort
а вообще нашёлся один раз
Vort
9 сентября у меня был
orignal
а меня сейчас долбает
Vort
странно
Vort
а вчера тоже долбал?
onon
Сделал "плавное" переключение RemoteLease. Когда ��удет свободное время, глянь, может я там чего накосячил.
orignal
гляну
orignal
вчера не знаю у меня логи трутся
Vort
ладно
Vort
"дятлы" на отдельный узел садиться не захотели. пришлось хакнутый бинарник на основной узел подсовывать
Vort
повезло, что они рестарта не заметили. ибо он у меня медленный
Vort
вот результат (архив с 3 файлами): paste.i2pd.xyz/?c6359ea5f1d0ff4b#9rangtRS8PKKLKHt5kRkYZQCqgzYscqNFXLJRQy3M5Bk
Vort
RI главного дятла, у которого вместо подписи фигня - 79_81_102_79.dat
Vort
103_1_185_106.dat и 152_172_99_239.dat - дятлы попроще. у них просто в адресах 0.0.0.0 и 127.0.0.1
orignal
и что нам это даст?
orignal
какая версия и какой тип подписи?
Vort
у 79.81.102.79 router.version = 0.9.57
Vort
а вот как тип подписи проверить - я пока что не знаю
Vort
java выплёвывает такой RI без комментариев
Vort
но там видны странности - на шум данные не похожи
orignal
так i2pd_tools же
Vort
A0B41AB9AAAA000020DAFF9FFFFF0000B8B41AB9AAAA0000C01241B9AAAA00002703000000000000A0DAFF9FFFFF0000B0DAFF9FFFFF0000201241B9AAAA0000
orignal
то есть ты хочешь сказать что джава считает подписи правильной?
Vort
вот такая там подпись
Vort
джава просто пишет Router info 79_81_102_79.dat is invalid
orignal
такая подпись быть не может никак
Vort
2703 - это 0x327 = 807. размер RI (правильный при чём) в байтах
orignal
это где?
Vort
остальные числа похожи на указатели
Vort
ну среди тех байт, которые должны быть подписью
Vort
Blinded message
onon
Хочет эксплойт через RI передать
onon
Злодей
orignal
не видно смысла в этом
orignal
короче надо делать код чтобы банить дятлов
onon
Ты пока тот код, что я выше скинул в ветку-то не добавляй только.
orignal
угу
onon
Что-то он как-то медленно работает
onon
Или это дед в релиз лимиты по скорости в 36кб сделал на туннель
onon
Во я тупой, на том прокси поставил i2p.streaming.maxInboundSpeed = 32768 и забыл.
onon
И думаю, что всё так медленно
orignal
лол
Vort
я думаю, у юзеров с битыми RI могут быть или файлы повреждены или оборудование
Vort
но по крайней мере, там не видно никакого скрытого послания (матом:))
Vort
то есть, вполне вероятен баг древней версии
orignal
или ключси
Vort
вот я думал, может, стоит проверить, как i2pd обрабатывает ситцацию, когда файл ключей испоганен
orignal
ему пох
Vort
но для начала надо бы проверить, i2pd у тех роутеров или java
Vort
а это надо делать вручную, похоже
Vort
"<~orignal> ему пох" будет подписывать мусором?
orignal
да
orignal
ключ прочитает от фонаря таким и будет
orignal
кстати да надо бы ошибки проверять
Vort
а openssl не пошлёт нахрен за такое?
Vort
может в том RI просто _место под подпись_ ?
orignal
пошлет но я наверное там не проверяю ошибки ))
orignal
переделал на splice