IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/01/16
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest7184
Leopold
Most2
Nausicaa
Ruskoye_911
Vort
`
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
un
weko_
whothefuckami
orignal по поводу скорости построения тоннелей
orignal const int TUNNEL_POOL_MAX_NUM_BUILD_REQUESTS = 2;
orignal вот тут можно попробовать поднять скажем до 5
weko могу глять что у меня
weko глянуть
orignal поставь сразу 10
weko у меня уже повышено я могу посмотреть сколько стоит
weko ну просто я повысил и не жалуюсь
weko const int TUNNEL_POOL_MANAGE_INTERVAL = 4; // in seconds
weko const int TUNNEL_POOL_MAX_NUM_BUILD_REQUESTS = 5;
weko orignal: 17:08:53@766/error - Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message
weko это когда виснет
weko Incoming Tags: 18015
orignal ну это часто бывает
orignal скорее всего дубликат
orignal или не пришли новые таги
weko вот сначала стриминг пишет что куча дубликатов приходит
weko 17:08:42@766/warn - Garlic: Flags/static section AEAD verification failed
weko при чём тред Destination полностью забит когда это происходит
weko ну начинается
weko 17:08:24@766/warn - Streaming: Duplicate message 353719 on sSID=1885719319
weko это явно ACK где то всрался
orignal запросто
weko [17:10:33] <orignal> или не пришли новые таги
weko а они когда отправляются?
orignal там сложно
orignal таги сами пересчитываются но там есть тагсеты
orignal переключение между которыми согласосывается сообщениями
weko 17:08:42@766/warn - Garlic: Flags/static section AEAD verification failed
weko 17:08:42@766/warn - Garlic: Trying to generate more ECIES-X25519-AEAD-Ratchet tags
weko 17:08:42@766/error - Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message
weko 17:08:42@766/warn - Garlic: Flags/static section AEAD verification failed
weko 17:08:42@766/error - Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message
weko 17:08:42@766/warn - Garlic: Flags/static section AEAD verification failed
weko Blinded message
weko <orignal> переключение между которыми согласосывается сообщениями
weko а оно же тоже может всраться?
orignal это значит что таг не нашелся в тагсете
orignal а почему это тоже надо разбираться
orignal явно тагсет сменился
weko отправитель сменил тагсет а получатель не в курсе?
orignal я уже не помн точно
orignal почитай спек
weko ну тут же явно баг
weko и я его исправлю врядли
weko хм
weko 17:08:41@162/warn - NTCP2: Received AEAD verification failed
weko 17:08:41@162/warn - NTCP2: Session with cQeSXHiju51kZmZKHozk-44hytf054cGEUoGHowUBlw= already exists. Replaced
orignal его снчала надо вопроизвести и понять что вообще происходит
weko я думал это другое, но это адрес роутера отправителя
weko тут 0+0
weko orignal: ок давай снова проверю
orignal надо точный сценарий при котором вопроизводится
orignal тогда вспомниать буду
weko хорошо смотрю
weko опять всрался ACK и началось через 30 секунд
orignal ну надо более глубкий анализ
orignal через сколько сообщений
orignal переключался ли тагсет
orignal почему на одной стороне таг оказался а на дугой нет
weko логи не удобно сделаны
weko в питоне logging есть очень удобный
weko и тут как то с NTCP2 связано
weko 17:27:30@162/warn - NTCP2: Received AEAD verification failed
weko 17:27:31@162/warn - NTCP2: Session with cQeSXHiju51kZmZKHozk-44hytf054cGEUoGHowUBlw= already exists. Replaced
weko orignal: это регулярно случается
orignal ну так анализирй дальше
weko 17:46:36@362/info - Transports: RouterInfo for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= not found, requested
weko 17:46:36@362/warn - Transports: Peer profile for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= reports unreachable. Dropped
weko 17:46:36@362/info - Transports: RouterInfo for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= not found, requested
weko 17:46:36@362/warn - NetDb: Destination UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= is requested already
weko 17:46:36@362/warn - Transports: Peer profile for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= reports unreachable. Dropped
weko 17:46:36@362/info - Transports: RouterInfo for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= not found, requested
weko это адрес получателя
weko Transports: RouterInfo for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= not found, requested
weko вот это очень интересно конечно
weko у нас нету RI роутера с которым у нас транспорт
orignal и когда заканчивается?
orignal с чего ты взял что у нас транспорт?
weko orignal: потому что данные идут
weko 20 MB/s не телепортируются же)
weko к тому же тут 0+0
weko значит транспорт точно должен быть
weko кстати просраного ACK тут нету
weko так в профиль попадает что ubreachable хотя по факту это не так
weko unrachable*
weko сука
weko понятно о чём я
weko теперь вопрос почему
weko и к тому же вопрос, почему если мы дропаем RI так как он недоступный, то зачем его запрашивать снова? к тому же два раза, судя по NetDb: Destination UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= is requested already
weko тут не один баг
orignal данные идут по NTCP по SSU2 или просто в очереди копятся?
orignal роутер такой есть в природе UBxd?
weko да
weko это роутер получателя
orignal он есть в сети?
weko да
weko он получает данные
orignal запрашиваем снова потому что новые данные идут
weko схема 0+0
orignal так почему он попадает как unreachable?
weko я думаю потому что он дропает
weko Garlic: Can't handle ECIES-X25519-AEAD-Ratchet messag
orignal и что с того?
orignal причем тут это?
weko потому что это одновременно происходит
weko на двух роутерах
orignal это не объясняет почему он стал unreachable
weko да на получателе на 5 секунд начинаются логи, значит он в профиле недсотупный как раз потому что дропается
weko orignal: ну роутер дропает сообщения
weko видимо поэтому
orignal по логике там нет сессий
weko либо это
weko 17:42:30@107/warn - NTCP2: Received AEAD verification failed
orignal он unreachable потому что не устанавливает
orignal так вот почему
weko я кидал этот лог уже
weko <orignal> так вот почему
weko и почему же происходит?
orignal так вот я и хочу чтобы ты разобрался
orignal что происходит при попытке соединения
weko начинается всё именно с 17:42:30@107/warn - NTCP2: Received AEAD verification failed
weko orignal: оно уже соеденино
orignal это не проблема
orignal нет
orignal if (!it->second.sessions.empty ())
orignal it->second.sessions.front ()->SendI2NPMessages (msgs);
weko да потому иначе данные бы не шли
orignal ты не ответил какое там соединение
weko NTCP2
orignal сессий то у него нет
orignal в списке сессиий
weko не понимаю
orignal я тебе выше код кинул
weko про какие сессии речь?
orignal у трапспорта нету сессий
orignal потому он туда и попадает
orignal но ты доказываешь что сессия есть
orignal то есть в списке NTCP2 если а у транспорта уже нет?
weko хочешь сказать она ломается?
orignal если так то это серьезная бага
orignal я тебе объясняю логику работы
weko ща посмотрю
orignal <weko> 17:46:36@362/info - Transports: RouterInfo for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= not found, requested
orignal вот это действительно не надо
orignal надо проверять на unreachable
weko ага я сказал)
weko orignal: да сессия ломается
orignal это сделаю
weko а почему ломается?
orignal вопрос почему он ставноится unreachable
orignal явно не соединяется дальше
weko ага
orignal вот это и надо понять что происхлодит вообще
weko и откуда тогда Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message
orignal это как раз не надо
orignal оно к делу не относится
weko думаешь? а я думаю вполне может
weko у нас рушится сессия и сообщения от роутера не проходят
weko я думаю приходит неверный RI
orignal надо понятно что с траспортами сначала
weko через какое то время он снова созадётся
weko а стоп
weko нихуя нет
orignal потому что unreachable действитет недолго
weko первый роутер думает что транспорта нету. а второй думает что есть
notyameii hey guys. i want to ask a few questions since im trying to build an i2p tracker. is english allowed?
weko notyameii: i2p bittorent tracker?
orignal а что показывает netstat?
orignal это ж NTCP2
weko orignal: а нет показалось. и на первом было
weko я просто попутал
weko да через некоторое время восстанавливаетися
notyameii i am modifying an already built torrent tracker called UNIT3D. since its built for the surface web it does not work on i2p.
notyameii Are there any doccumentation on how trackers announce on i2p? its kind of hard to find material about it.
weko i2p-projekt.i2p
weko there docs about bittorrent in i2p
weko geti2p.net also
notyameii thank you! <3
weko orignal: всё таки я был прав. на втором роутере сессия показывается, на первом нет
weko при том что она работает
orignal ну и как такое может быть?
weko баг с отображением
orignal на самом деле я знаю
weko в нонсоли
weko консоли
orignal нет это страый баг ядра лиункса
orignal на одной стороне сокет открыт а на дргой нет
orignal причем локалхост
weko orignal: опа блять. значится зависло. и в этот момент отобразилось на первом роутере
orignal мы на такое натыкались на работе
weko и что с этим делать
orignal но второй закроется по таймауту
orignal но надо подумать
weko так оба роутера думаю что с сессией всё ок
weko но у второго это Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message
orignal ключи же не будут совпадать
orignal блять
` > давайте думать [РОСКОМНАДЗОР], подсказывайте [РОСКОМНАДЗОР], как сделать по красоте
orignal не бывает у NTCP2 Garlic
orignal это другой уровень
weko orignal: тогда почему оно в тот же момент появляется
weko это очевидно связано
orignal ой все
orignal естественно связано
orignal вопрос что происходит на уровне NTCP2
orignal гадо там смотреть ошибки
orignal потому что у каддолго сообщениея есть Poly1305
orignal каждого
weko могу дебаг попробовать, ну ощущение что диск забьёт за пару секунд
orignal нет не надо
orignal анализируй сам
weko ну в смысле уровень логов дебаг
weko хорошо
orignal выделяй цепочку событий
orignal в какой момент что пришло
orignal или не пришло
orignal понимаешь надо понять что вот если стоит себе сессия что запускат цепочку событий
weko тоесть надо понять является ли поток данных причиной?
weko или если нет то что причина
orignal надо понять что ее вызывает
orignal может какой то экспешин ошибка сокета
orignal может какой то длинный фрейм и тому подобное
orignal короче что именно ломает сессию
weko 18:44:30@643/warn - NTCP2: Couldn't send frame Bad file descriptor
orignal вот это уже ближе к теме
orignal поищи что дальше делается
orignal по хорошему мы должны закрыть сессию
orignal если мы этого не делаем это бага
weko ща
weko SendTerminationAndTerminate (eNTCP2DataPhaseAEADFailure);
weko тут наверняка баг с закрытием
orignal а чего вдруг AEAD?
orignal надо сразу закрывать
weko хз)
orignal ладно гляну позже
weko всё таки нет наверное
weko 18:44:30@837/warn - NTCP2: Received AEAD verification failed
weko вот видимо кривую причину пишет
weko точнее не настоящую
orignal да нет это не должно порождать проблему
orignal вот bad file desciptor это да
orignal это истиная причина
weko orignal: это причина, но даже если случилось, должно же пересоздать сессию?
weko и дальше работать
weko а тут не работает
orignal ну надо разбираться дальше
orignal как мы обрабатываем эту ситуацию
orignal и кстати почему вообще такая проблема возникла
weko if (ecode != boost::asio::error::operation_aborted)
weko LogPrint (eLogWarning, "NTCP2: Couldn't send frame ", ecode.message ());
weko Terminate ();
orignal угу тут все правильно
orignal а дальше надо смотреть по цепочке
weko Terminate смотрю
orignal я думаю там внутри Terminate не может закрыть сокет
weko надо проверить правда ли закрывается
weko сокет
orignal возможно там получается новый эксепшин который ловится в треде
orignal и в итоге не отрабатаывает до конца
weko точнее сокет он у себя локально закрывает в любом случае
weko но shutdown наверняка не срабатывает
weko у нас же bad file desciptor
orignal я думаю там экспшин где то кидается
weko то есть вторая сторона не знает что мы закрылись
weko <orignal> я думаю там экспшин где то кидается
weko можно проверить
weko поменять уровень и посмотреть
weko m_Socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
weko if (ec)
weko LogPrint (eLogDebug, "NTCP2: Couldn't shutdown socket: ", ec.message ());
orignal да это просто флаг
orignal там дальше есть close
weko да я вижу
weko вот shitdown это с сообщением второй стороне видимо
weko а close просто закрыть
weko верно?
weko shitdown лол))
orignal это линксовская хрень
orignal из-за тредов
weko 18:44:30@837/warn - NTCP2: Received AEAD verification failed
weko это видимо из-за того что закрываем посреди отправки данных
weko хотя нет
weko не должно быть такого
weko всё равно пока не ясно откуда
weko 18:44:30@837/warn - NTCP2: Received AEAD verification failed
weko для этого данные должны изменится как то
orignal надо посмотреть какая длина фрейма
orignal возможно не влазит
orignal я тут починил чтобы не создавались пиры для дохлых ротуеров
weko orignal: даже если не влазит. если нужное количество данных не прочиталось, тоесть если не всё пришло, оно не должо пытаться проверять
orignal не может так быть там transfer_all стоит
weko ну вот да я про это
weko мы ждём пока всё не придёт
orignal может оно в буфер пишется меньше чем надо
weko всё что должно
orignal а потом то что не влезло в буфер затирается
orignal наппример так
weko orignal: может как раз из-за того что Bad file descriptor
orignal запросто
orignal вполне мог он затереться
weko orignal: просто даже то что в буфере затёрлось всё равно не отправится. а если не отправится весь фрейм то и не будет пытаться проверять на другой стороне
orignal может это при получении наример
orignal или при отправке затерлось
weko Bad file descriptor так вот это из-за чего может быть?
weko связано с i2pd или нет?
orignal это самый интесный вопрос
orignal могло и ядро насрать
weko а i2pd как то влияет на него?
weko <orignal> могло и ядро насрать
weko тогда в любом случае надо исправлять дальнейшее поведение. Но если возникает из-за бага в коде то тоже нужно исправить
orignal естественно надо такую ситуацию обрабатывать правильно
weko возможно мы уже на закрытый сокет пытаемся отправить
weko хотя вроде есть проверка
weko но что если пока мы отрпаляем, сокет закрывается?
orignal там бы была другая ошибка
weko тут проверка IsTerminated
orignal ну могла другая сторона закрыть
orignal в принципе
weko ну да я об этом же
weko что закрыла другая сторона, пока мы отправляем
orignal так было бы closed by peer что то такое
weko if (ri.IsUnreachable ())
weko LogPrint (eLogError, "NTCP2: RouterInfo verification failed in SessionConfirmed from ", GetRemoteEndpoint ());
weko SendTerminationAndTerminate (eNTCP2RouterInfoSignatureVerificationFail);
weko return;
weko это как
orignal ну это правильно
weko почему если IsUnreachable то eNTCP2RouterInfoSignatureVerificationFail
orignal когда подпись неверная там дейсвительно ставится этот флаг
weko и только тогда?
orignal потому что неверная подпись ставит Unreachabler
orignal нет
orignal там еще куча вариантов
weko так а если по другой причине
orignal просто это не сделано
orignal надо сделать код ошибки полноценный
orignal но я как обычно
weko но вот вопрос
weko даже если Unreachable то и что?
weko это же не мешает сессию сделать
orignal ты чего?
orignal если роутер кривой
orignal какая с ним может быть сессия
weko так Unreachable же значит что адреса в RI нет
orignal нет это не значит
orignal там есть еще IsReachable
orignal вот говорит о том есть адреса или нет
weko хуйня названия тогда
orignal а Unreachable это означет "хуевый роутер"
orignal так я что говорю
weko не понятно
orignal надо его поменять
orignal изначально было так
weko я просто код читаю и вижу такое... я ж знаю что Reachable значит что есть адрес. тогда unreachable значит что его нет
weko по такой логике
weko а оказывается вообще другое
orignal ну корявая логика
orignal надо переименовть
orignal Unreachable на Bad
weko eNTCP2Message3Error вообще топ
orignal ну это появилось позднее
weko orignal: надо добавить милисикунды в логи
weko мили*секунды
weko m_TimeFormat
orignal надо наверное да
orignal так вроде же есть в конфиге это
weko ну я поставил
weko 16/Jan/2024:20:49:42 +0000
orignal а нет так только про дату
orignal ты прав добавить надо
orignal но мне как оыбычно некогда
weko где эти форматы находятся?
orignal в Log.cpp
orignal TimeAsString(msg->timestamp)
weko да но тут не формат сам
weko m_TimeFormat
weko а мне его же поменять надр
orignal strftime(m_LastDateTime, sizeof(m_LastDateTime), m_TimeFormat.c_str(), localtime(&t));
orignal угу
orignal m_TimeFormat("%H:%M:%S")
weko да
orignal далее man strftime
weko Daemon.cpp
orignal и смотреть что там надо писать
weko милисекунды сделать чтоб всегда были или чтоб когда true в конфиге?
orignal параметром естественно
orignal logmilliseconds
weko а хотя пока пох я пока заливать не буду... сейчас важно чтобы понять что причиной является
weko logtimems
orignal у нас на работе в логах даже микросекунды
weko да потому что милисекунд нету
weko можно только микросекунды
orignal нет не поэтому
orignal потому что надо
orignal у нас сотни сообщений в миллисекунду идут
weko ну милисекунд в любом случае нету ))
orignal у нас нормально их печатает если надо
weko ну именно в strftime нету
orignal ну я не знаю что хаген намудел
orignal делается простым делением
weko strftime это стандартная функция вроде
weko из C даже
weko в питоне такая же есть
orignal ну так сделай консатенацию из нее с скуендами
orignal и добавить отдельной строкой миллисекунды
weko я просто добавлю микросекунды ))
weko а микросекунд тож нету. значит ручками
weko через жопу, но добавил ))
weko для теста подойдёт
weko Received AEAD verification failed
weko первопричина
weko уже после Couldn't send frame Bad file descriptor
weko orignal: тогда вопрос почему фейлится проверка
weko так, видимо есть другой вариант ошибки
weko по той же причине
weko на втором всё так же Received AEAD verification failed , но после идёт Receive length read error: End of file
weko а на первом нету про дескриптор
weko там сразу идёт RouterInfo for UBxd~t6gvZQ1JowOQq1w9qhn~~2Gy7XCE6eJjXmUQZ8= not found, requested
weko но суть таже
weko orignal: короче говори какую ещё информацию надо ...
weko 3+3 уже 5 MB/s.... возможно, буферы были, наоборот, слишком маленькие ?
weko или возможно из-за того быстрого роста окна были пробелемы... не знаю.
orignal значит не до конца прочитывается
orignal надо проверять полученную дину
weko главное пиши если что надо ещё посмотреть
weko воспроизодится баг очень стабильно
orignal пока не знаю
weko ну в плане постоянно а не через ровно N времени
orignal меня интересует почему не пересодтняется
weko я просто тогда не буду текущее состояние менять
weko orignal: потому что Unreachable
weko а почему ставить тоже вопрос
weko ставиться
weko надо найти где и убрать
orignal так он стал Unreachable потому что не смог соединиться
orignal а вот почему
weko так уже ясно что нужно в логи вывести )
weko нужно посмотреть почему не соединило
orignal у тебя только NTCP2 или еще и SSU2 есть?
weko только NTCP2
orignal значит там ацептор не включился
weko SSU2 отключено
weko так это же серьёзная бага
weko если ацептора нет то не принимаются новые коннекты
orignal так а куда он пропал
orignal может экспепшин какой
orignal и не поднялся еще