IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2022/07/08
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN_
Guest7184
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
WebClient8
Xeha
anon3
b3t4f4c3
fidoid
karamba_i2p
nemiga
not_bob_afk
onon
plap
poriori
profetikla
qend
segfault
soos
teeth
tetrimer_
uis
un
unlike
user
vade
weko
whothefuckami
orignal красота i2pd с выключнными таблицами эль-гамаля всего 16 мегов занимает
HidUser0 Топ
orignal ну так если выключить SSU то эти таблицы не нужны
R4SAS ну... если не учитывать что где то подтекает - да
R4SAS ssu2-only: 108M
R4SAS оптимизировать еще много придется
R4SAS кстати, delete t не спасло
R4SAS в данный момент 152М
orignal ну а ты как думал?
orignal ты этим заткнул valgrind но не решил проблему
orignal ясен пень что подтекает дохуя где
R4SAS сейчас конкретно ни где не течет кроме боба
R4SAS ssu2 я не считаю
orignal так это понятно
R4SAS придется опять запустить вируалку
orignal я про ssu2 и говорю надо смотреть где течет
R4SAS только как то надо продержать её неделю минимум живой
orignal в бобе надо логику смотреть
orignal а в ssu2 надо для начала пул пакетов сделать
R4SAS такой же?
orignal ну как в NTCP2
orignal на самом деле там еще дохуя надо
orignal просто многое не сделано
R4SAS на s4 я спокойно могу запустить с valgrind
R4SAS это там где reg не получится ибо озу маловато
R4SAS так что ssu2 можно будет подампать
orignal еще пока рано
orignal не та стадия
orignal там скорее всего сессии не удаляются
orignal я с этим разберусь
R4SAS я в очередной раз пошел смотреть чего не так с бобом
R4SAS пытаюсь понять где может оставаться
orignal у тебя только lookup ?
orignal но команда там
orignal может дело вовсе не в бобе в запросах лизсета в принципе
R4SAS сколько адресов опрашиваю?
orignal просто обычно их запращивают не так часто
R4SAS не совсем понял вопрос
orignal ну проблема может быть не в коде боба
orignal а в дестинейшине
orignal с запросом лизсета
R4SAS он по идее вычищается
orignal он довольно сложный
R4SAS stop -> clean
orignal нууу он же netdb дергает внутри
R4SAS и если я правильно понимаю сам LocalDestination зануляется в конце
R4SAS т.е. все структуры с дестом должны зачищены быть
orignal должны
orignal но может что то в netdb осталось
R4SAS BOBDestination::~BOBDestination ()
R4SAS delete m_OutboundTunnel;
R4SAS delete m_InboundTunnel;
R4SAS i2p::client::context.DeleteLocalDestination (m_LocalDestination);
R4SAS м..
orignal гооворю же там сложная логика
orignal я бы начал копать в эту сторону
R4SAS тут?
R4SAS auto leaseSet = localDestination->FindLeaseSet (addr->identHash);
R4SAS на рег опрос узлов происходит раз в час
orignal нет тут простой
orignal там где запрос в сеть идет
orignal там куча флудфилов опрашивается
orignal создается список
R4SAS localDestination->RequestDestination (addr->identHash, requstCallback)
orignal проверяется опрашивали ли уже
orignal вот да
orignal вот если эту строчку на вызывать
orignal а коллбэк с nullptr и посмотреть будет ли течь
R4SAS так опрос сломается ведь
orignal так ты не на настоящем reg
orignal ну и не учитывай результаты опроса
orignal я бы стал делать там
R4SAS это понятно
R4SAS я там все равно делаю опрос с дампом
R4SAS в вм
R4SAS нет запросов - нет утечек
R4SAS ни одной ошибки не вылезает в valgrind
R4SAS про 1160 байт например
R4SAS или например того же Conditional jump or move depends on uninitialised value(s)
R4SAS который как раз по стеку был в
orignal ну а ты чего ожидал?
R4SAS i2p::client::LeaseSetDestination::RequestLeaseSet
R4SAS а много чего могу ожидать
orignal ну то что я и предполагал
orignal надо внутри нее копать
R4SAS ну... в нем только гарлик и elgamal
orignal нет там должен быть поиск флудфила
orignal по DHT
orignal список уже опрошенных
orignal вот метод RequestLeaseset
orignal там вся эта ботва сидит
R4SAS LeaseSetDestination::RequestLeaseSet?
orignal короче копать надо там
R4SAS мне кажется что после успешного запроса не чистится m_LeaseSetRequests
orignal так проверь
R4SAS хотя не
R4SAS оно вроде в HandleDatabaseStoreMessage подчищается
orignal говорю же там все сложно
polistern Ужас какой-то, я открыла самый настоящий ящик Пандоры с багами)
orignal в сэме?
orignal ну так а то ж
orignal похоже до тебя там никто датаграммы не использовал ))
orignal то что в iMule это не настоящие
polistern Не, у себя, один пакет криво парсился, я его починила, а за ним целая вереница всякого))
polistern А про падения - если выдерживаю паузу с минуту перед перезапуском, то тогда не падает.
orignal а ну это бывает
orignal так у R4SAS-а было другое падение с pboted тоже на датаграммах
polistern Думала 2 недели назад релиз сделать и немного застряла. Зато теперь все основные баги исправлены))
polistern А как у него падал?
orignal на отслыке датаграммы внутри ObtainDSession вроде
orignal короче похоже там race condition
orignal а я настолкьо занят SSU2 что мне некогда разбираться
polistern Ну в основном, как я понимаю, падал pboted, перезапускался и ронял i2pd. Сейчас основные причины пофиксила почти все, должно быть значительно стабильнее.
orignal понимаешь то что в сэме оно понятно
orignal почпму
orignal но у него падало внутри датаграмного кода безотносителдьно сэма
polistern О как
orignal разбираться надо говорю
polistern Кто бы спорил)
orignal gпросто раньше датаграммы так активно не использовались
polistern Будут ещё активнее)
polistern Нужен совет по одному багу. А то всё, что нахожу, как то не про мою проблему. Или криво формулирую))
orignal конечно будут
polistern Обработчик пакетов, получая пакет, ищет для него обработчик. Если обработчика нет - посылаем ответ с ошибкой. Есть обработчик - передаём ему.
polistern НО если обработка затягивается, то получаются проблемы с обработкой новых пакетов. Вот сейчас не знаю как лучше всего запускать обработчик, чтобы не блокировал цикл.
polistern В новом треде - может быть слишком много тредов. Или зря переживаю?
orignal я бы в другой тред перекидывал как я делаю в SSU
polistern Видела ещё вариант с detach, типа когда закончит, тогда закончит. Но я переживаю, что какие-то могут не закончить никогда))
orignal да оно
orignal то есть я выбираю пакеты из сокета
orignal и передаю их в сервис который крутится в другом треде на обработку
polistern io_service сам следит за этим тредом получается?
orignal нет там выше есть код
orignal где его метод run бежит в отдельном треде
orignal а post да грубо говоря ставит там в очередь задании
orignal а run ее разгребает
orignal если не хочешь io_service посмотри как в Tunnels.cpp сделана очередь
orignal там тоже тоннельное сообещние передается на обработку в другой тред
polistern Ок, сейчас гляну
orignal в SSU2 кстати более прозрачно сделано
orignal там ровно 2 треда
orignal один для чтения сокетов а второй для обработки
polistern Вроде разобралась, попробую с io_service.
HidUser0 [16:46] <~orignal> один для чтения сокетов а второй для обработки
HidUser0 Но ведь если поток обработки зависнет, то эффект будет такой же, если бы все было в один поток
` boost обсуждаете?
polistern Вроде сделала. Когда зависнет погляжу))
orignal HidUser0 зато не потерется пакет
HidUser0 Какой?
HidUser0 Следующий?
HidUser0 Будет вечно ждать поток же
orignal по UDP который
orignal если ты будешь в тормозном треде обрабатывать то будут дропаться
orignal а на предмет зависания ну так там смотреть надо как сделать
polistern Раз такое дело, то я скорее всего и сеть на endpoint переделаю. Но уже в другом релизе)
orignal это логично
` polistern, много осталось? По личным ощущениям.
` До 1.0
` Время, сестра, скажи время!11
polistern Ну скорее до 0.9 - до конца года скорее всего, 1.0 - это уже считай другая версия протокола, там ещё думать что исправлять на будущее.
polistern Главное на 0.9 не зависнуть на 20 лет, как Java I2P))