IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/04/27
~acetone
Most2
Nikat
Spirit90
segfault
weko_
orignal R4SAS а че билд на макоси фейлится?
WayBest Лось, а как скоро твои патчи попадают в пакеты R4SAS?
orignal я же сказал в середине мая
orignal когда джависты со своей стророны релизнутся
WayBest Понял, спасибо) Не увидел видимо из-за нестабильной сети
orignal рестрат илиты через 10 минут
Nausicaa i just compiled the last commit (bb6212cc) on macos using cmake with no problems
Nausicaa thanks for the fix! you guys are the best
orignal graet
Vort 2.51.0-22 крешнуло ночью в том же самом месте
Vort вижу уже дополнительные исправления в 2.51.0-23, буду теперь его тестировать
onon1 orignal, Я придумал ещё один способ консервативного лечения нынешней проблемы.
onon1 Делаем ещё один синтетический параметр как с tcsr только для обращений к флудфилам flsr например. Считаем все запросы и ответы, считаем успешность. Естественно, всех ответивших флудфилов помечаем как ->IsReal.
onon1 А дальше делаем финт как с tcsr: if (flsr < rand() % 100) send requests only to ->IsReal
onon1 И в случае поиска лизсетов и в случае с RI. И если мы сами фф, и у нас запрашивают то, чего у нас нет, отдаём так же: if (flsr < rand() % 100) insert a ->IsReal FF into the answer
onon1 Ну и ещё обязательно нужно при очистке нетдб, с большей вероятностью вычищать непроверенные роутеры и флудфилы, но это вроде и так понятно.
onon1 Тогда сеть будет сама защищаться от подобных атак
tetrimer Сейчас еще и peerProfiles пухнет не по детски.
Most2_ 06.<trusishka> Есть какие нить изменения?
Most2_ 06.<trusishka> Чтобы перекомпилить и жить счастливо
weko Blinded message
weko было бы не плохол
WebClient95 атака ебашит
WebClient95 когда вы уже подписи свои внедрите?
orignal крэшнуло на excludedpeers или что?
orignal onon1 ну для флудфилов я давно пора добавить профилировщик
orignal тут проблема в другом
orignal пока ты рейт для флудфила вычислишь они успевают засрать всю базу
onon1 Ну так этот метод он не предотвращает засирание базы, просто это некий backpressure от количества фейковых роутеров. Чем их больше, тем меньше вероятность, что они будут использованы.
onon1 А через некоторое время будут вымыты из нетбд
orignal так то что счас делает это много быстрее
onon1 Ну да, будет скапливаться на фф, но дальше распространяться не будет
onon1 И будет работать стабильнее, т.к. флудфилы будут их постепенно "переваривать"
orignal так чем оно лучше чем счас?
onon1 Тем, что не будет отдавать regular нодам atqrjdst фф
onon1 фейковые*
orignal так и счас не отдает
onon1 Да ладно
orignal они в список флудфилов не попадают
onon1 Откуда у меня было 3к флудфилов?
orignal прямо сейча?
onon1 Нет, до того как я поставил 1000
onon1 Когда 1500 было
orignal потому что порог стоял 1500
orignal и начанало филттровать только с 1400
orignal поэтому
orignal а при пороге в 1000 их пролазит резко меньше
onon1 Но всё таки пролазят.
onon1 И это зависит от интенсивности атаки.
orignal ну так порог потому что
orignal поставь 500 вообще не будет
orignal но тогда я боюсь сеть вообще ляжет из-за джавистов
onon1 Ну как минимум, такое решение не универсально
onon1 Постоянно подгонять лимит под реальное количество фф
orignal так твое тоже
onon1 Нет, там можно хоть 10к фф
orignal пришел новый флудфил как ты знаешь хороший он или плохой?
onon1 Просто он будет отдавать только проверенные
orignal а откуда возьмутся проверенные?
onon1 Если у нас высокий рейт, будут к нему нормально запросы идти
orignal вот у тебя новый узел
onon1 Если низкий, то с низкой вероятностью
orignal откуда возьмутся прверенные?
orignal в начале их нет
onon1 Ну он же постояно добавляет некоторый процент непроверенных
orignal потому и нужен порог этот
onon1 Ну так не сразу начинает работать защита
onon1 А минут через 10
onon1 Как на tcsr
orignal ну так вот сейчас именно так и сделано
orignal и да можно убрать порог через 10 минут
onon1 В общем, ты похоже не понял, что я имел в виду.
orignal я понял что ты хочешь профилировать флудфилы
orignal но для этого ты должен к флудфилу обращаться
onon1 Да
orignal ну это правильно и давно пора сделать
orignal просто при твоем методе будет засираться быстрее чем ты будешь профил ировать
onon1 Смотри, если у нас рейт 10%, то с вероятностью 90% мы выберем проверенный фф и с вероятностью 10% - непроверенный
orignal ну понял мысль ты хочешь непровренные добавлять с писко флудфилов но не отдавать
onon1 Да
orignal вот я и боюсь что у тебя тогда список застрется быстро
onon1 И самим их проверять
onon1 Ну так потом чистка сработает
onon1 И непроверенные дропнутся
orignal так она сработает меддленнее чем добавляются
onon1 А проверенные продлятся
onon1 Ну да, не быстро.
orignal объясни мне чем ответ от флудфила лучше установки соединения с ним.
onon1 Но в текущей ситуации если бы у нас такое было, то всё работало бы сильно лучше
onon1 Если мы при этом можем проверить валидность фф - то ничем
orignal в твоем методе мы просто чаще будет пытаться поключаться к непроверенным
onon1 Далее у нас упадёт рейт и мы начнём это деоать реже
orignal ну в общем да смысл есть
Vort "<~orignal> крэшнуло на excludedpeers или что?" ну да. но в 2.51.0-22 ведь было на одну блокировку мьютекса меньше. может, в 2.51.0-23 крешить не будет
orignal может. я там просто опечатлся
orignal вместо copy сделал cut
orignal там еще одно место есть
orignal я не успел с ним разобраться
Vort orignal: я близок к разгадке одной из проблем с утечкой памяти
Vort она явно связана с массовой записью на диск
Vort сейчас подготовлю два скриншота
orignal а как запись на диск порождает утечку памяти?
Vort возможно, блокируется какой-то поток
orignal ну хорошо но потом же он разблорируется
Vort "<~orignal> ну хорошо но потом же он разблорируется" ну да, минут через 20
orignal логично что какой то тред зависает
orignal а потом накполенное просирается
orignal а какой тред у нас массово пишет на диск? Netdb
Vort важным может быть всплеск количества TCP коннектов
Vort на пике утечки, когда начинает жрать CPU
orignal меня интересует почему не просирается
Vort профили тоже поток netdb обрабатывает?
orignal почему память остается
orignal да тоже он
Vort ну у меня на графиках вниз память прыгает
orignal надо отдельный поток для них завести
Vort понимаешь - в коде может быть несколько утечек
Vort но я только вот такую видел
Vort вчера до 2.5 гигов RAM разжирела и до 0.5 спрыгнула
orignal вопрос: это чтение или запись?
Vort а вот этого я не логировал, не знаю
orignal мне не нравится этот метод
orignal const std::set<IdentHash>& GetExcludedPeers () const { return m_ExcludedPeers; };
Vort так у нас дест сам по себе сдохнуть не должен
orignal в любом случае надо дисковые операции вынести в отдельный тред
Vort только когда от него отцепятся все дропы
orignal дест сдохнуть не должен
orignal но кто то может взять список когда он меняется в другом треде
orignal вот с этим надо разобраться и переделать
Vort а ты не все такие места покрыл мьютексами?
orignal нет
orignal я только внутри
orignal но явно есть снаружи
orignal или надо метод выпилить
orignal чем я и намерен заняться
Vort "<~orignal> в любом случае надо дисковые операции вынести в отдельный тред" так они CPU не особо жрут, тут вопрос в синхронизации и блокировках
Vort надо, чтобы при тормозах винчестера поменьше частей i2pd заклинивало
Vort хз, правда, как сейчас, но, похоже, что не очень
orignal ну так идея в том чтобы основной тред не томозил а сбрасыватьв фоне
Vort если тормоза идут от записи профилей на диск, то да, логично - ждать, пока процесс завершится, не обязательно
orignal что я и хочу сделать
orignal я кстати счас изменеия пиров залью
orignal на share_ptr переделанные
orignal залил
orignal а жопа еще вот здесь
orignal auto nextFloodfill = netdb.GetClosestFloodfill (dest->GetDestination (), dest->GetExcludedPeers ());
R4SAS orignal: не знаю
onon1 Лось, там в #salrt требуют пруфов про тор
R4SAS почему то не видит openssl/sha.h
R4SAS вроде как
orignal обойдутся
orignal а он вообще openssl видит?
R4SAS по идее специально ставится 1.1.1
R4SAS но ощущение что по дефолту какая та другая версия используется
R4SAS мне сейчас не на чём проверить, ибо вм сдохла давно
orignal там должно с лююой работать
orignal может тогда отключить?
R4SAS а ты 3.3.0 проверял?
orignal нет
orignal а уже такой есть?
R4SAS есть
R4SAS я переключу на 3.0
orignal прокверю сегодня
orignal да можешь и на 3.2
R4SAS LTS только 3.0
R4SAS а, ясно
R4SAS там путь изменился
R4SAS я и забыл что там его менять планировали
Vort "<~orignal> на share_ptr переделанные" ещё же и блокировки надо будет добавлять?
orignal дальше посмотрим
orignal я пока только переделал
R4SAS заливаю фикс сборки
orignal кстати дед говорит что китайские роутеры опыть повылазили
Vort R4SAS: подобную фигню подправишь? Node.js 16 actions are deprecated
Vort и Deprecation notice: v1, v2, and v3 of the artifact actions
R4SAS классика
R4SAS ща залью
Vort спасибо. теперь бинарники сразу появляются
Vort раньше приходилось ждать сборки для XP
R4SAS и то там сборка не полноценная...
R4SAS как я ранее говорил, надо пересобирать всё вплоть до boost и openssl чтобы получилась конкретно XP
R4SAS да и не известно, пользуется ли кто либо
R4SAS не помню, приходилось ли мне пересобирать gcc тогда?
Vort я давно не проверял XP, не знаю, что там
Vort можешь пояснить суть обсуждений по поводу браузера?
Vort предлагаешь юзерам самостоятельно его собирать что ли?
R4SAS типа того
R4SAS как бы релизные архивы - это всё что лежит в репе
Vort я подозреваю, что они скорее будут сидеть на старой версии, вредя этим и себе и сети
R4SAS просто linux, mac, win
onon1 Лось, я в NetDb.cpp 671 там где роутеры помечаются к удалению добавил после
onon1 else if ((ts > it.second->GetTimestamp () + expirationTimeout/2) && // more than half of expiration
onon1 Ещё проверку:
onon1 !router->GetProfile ()->IsReal () && // unverified
onon1 Так будет работать?
Vort я тоже считал, что браузер не обновляется потому, что нету времени. догадаться, что его теперь надо собирать самостоятельно - очень непросто
Vort "Скачать I2PdBrowser" и всё. вот юзеры и думают, что это - единственно верный вариант
Vort считаю, что надо или сайт переделывать и добавлять инструкции по сборке туда или таки нагенерить бинарников
R4SAS Vort: напиши автосборщик для gha_)))
R4SAS у меня действительно времени не хватает
Vort я с браузером почти не знаком, так что не возьмусь. временно можно просто как-то уведомить юзеров, что пока что цельных бинарников не будет
Vort "<~orignal> дальше посмотрим" то же самое (при выходе): paste.i2pd.xyz/?2bb4eccd15abfa0b#7wMbS8vL7g1vAqE4Tb3CVj32YLbp7VGQGD3iasCeMKMU
Vort у m_Peers опять неадекватный размер на строчке peer = m_Peers.emplace (ident, peer).first->second;
orignal ну так я это еще не чинил
orignal ты про excluded peers скажи
Vort сейчас перегружусь со свежим бинарником и буду следить
orignal так а что атака закончилась что ли?
orignal Routers: 8652 Floodfills: 894
onon1 Он, похоже испугался, что ты сейчас всё починишь, и у него не будет такой возможности влиять на сеть.
onon1 Рассчитывает, что всё рассосётся, как в прошлый раз. И все забьют на защиту от атаки.
orignal ну в прошлый раз защита была сделана нормально
orignal просто в этот раз атака в много раз мощнее
orignal в прошлый раз атака как раз закончилась когда я запилил зашиту
onon1 А сейчас они увидели, что я предлагаю, и решили, что лучше прекратят раньше, чем ты это реализуешь.
onon1 Точно тебе говорю. Это всё мои гениальные идеи.
Vort флудфилов в базе в 2 раза меньше, чем при атаке: 3k -> 1.5k
Vort рейт 9% (был последнее время 4-5%)
Vort аптайм, правда, всего 40 минут, а это влияет
onon1 Это апопис свои сервисы домой перевёз, а пока ещё оплата хостинга оставалась, решил сервера загрузить по приколу.
relaybot 13apophis: воистину гениальные идеи :)
orignal ну давай послущаем твои предложения
orignal ну че с падениями?
Vort падения в CreateRouterInfoDatabaseLookupMsg вылазили примерно раз в сутки. час аптайма ничего не покажет
Vort но что хорошо - новых разновидностей падений нету
Vort по крайней мере, пока что
relaybot 13apophis: > orignal: ну давай послущаем твои предложения
relaybot 13apophis: предлагаю написать и2пд мануалы на китайском, чтобу наши друзья не тыкались в код куда попало.
Vort по поводу атаки: свежие поддельные RI по-прежнему приходят, но их стало меньше
Vort кстати, атакующий так и не поменял длину i= ключа, так что чат он, скорее всего, не читает
orignal Vort ага поправлю
onon1 rand() % 100 может вернуть 0?
onon1 Нашёл. v1 = rand() % 100; // v1 in the range 0 to 99
whothefuckami_ onon1: rand() это плохой генератор
whothefuckami_ Используй генераторы из <random> библиотеки
onon1 Он что, недостаточно рандомный?
Vort whothefuckami_: rand сейчас по всему коду растыкан. да и проблема больше даже не в его плохости, а в том, что он не потокобезопасный
Vort ну и плохой, да, но для какой-то мелочи - это не важно
tetrimer Как мне видится, в рамках нынешней атаки, workaround следующий: на флудфилах убираем все из tunnels.conf на другие узлы. Тогда сервера приложений более менее доступны.
Vort я давно предлагал держать по два узла из-за плохой балансировки нагрузки
Vort но при атаке не факт, что это поможет
tetrimer Вчера-сегодня помогало.
tetrimer На узлах "не флудфилах" - TCSR выше
tetrimer У меня, по крайней мере.
tetrimer У меня флудфилы на последней версии - показывают TCSR 2-4%, в то время, как не флудфилы за натом и снаружи - 9-11%.
orignal tetrimer что с падениями?
tetrimer Не падало пока больше. Сам удивляюсь: скорость не трогал.
tetrimer У меня есть стойкое ощущение, что трафик по сети гуляет как-то волнами: то в одном узле подскакивают показатели, то, через некоторое время, в другом.
tetrimer Там, где падало:
tetrimer Uptime: 22 hours, 48 minutes, 58 seconds
tetrimer Version: 2.51.0-22-g5f39f655
tetrimer Routers: 23175 Floodfills: 989 LeaseSets: 375
tetrimer Client Tunnels: 12 Transit Tunnels: 5248
orignal ну зачит починилось
orignal Vort я похоже знаю где обращения к диску эти
orignal DeleteObsoleteProfiles
orignal вот где
tetrimer За сутки - у экземпляра, который падал в прошлый раз, памяти натекло на:
tetrimer PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
tetrimer 14992 _i2pd 14 20 0 5313M 2309M nanslp 1 953:57 27,39% i2pd-g5f39f655
tetrimer Так что, может, оно просто немного не дожило до убиения процесса системой.
orignal ну мы думаем что это запись на диск
orignal счас я тут малось переделал
tetrimer Процесс netDB - там самый долгоживущий был.
orignal именно
orignal потому что там запись профилей
tetrimer PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
tetrimer 14992 _i2pd 21 0 5377M 2308M STOP 1 246:03 4,21% i2pd-g5f39f655{NetDB}
orignal счас вынесем их в отдельные треды
tetrimer У остальных TIME единицы.
orignal залил
R4SAS вроде успешно собрал
orignal ух ты
R4SAS некрофилия, да
orignal кто то ее еще использует?
orignal счас даже под семерку не собирают ))
R4SAS мабу только если )))
tetrimer Под семеркой с sp1 - как раз последние виндовые билды работают.
tetrimer С sp3 - молча вылетают.
R4SAS sp3?
R4SAS yf [h.it&
R4SAS на хрюше?
tetrimer Нет, windows7
R4SAS откуда sp3 на win7?
tetrimer Или sp2 плюс что-то там еще.
tetrimer Это на работе - мне сейчас точно не посмотреть.
R4SAS нету на 7ке SP2
R4SAS SP3 тем более
R4SAS тут только SP1
tetrimer Ну, значит нету.
R4SAS SP2 && SP3 были только на хрюше
R4SAS что то мне кажется что надо boost тоже пересобирать
R4SAS сокеты как то странно работают
R4SAS я сейчас чисто openssl пересобирал
tetrimer В общем дома у меня виртуалка с sp1 - на ней i2pd запускается. На работе - несколько разных пробовали: через пару секунд процесс пропадает из трея.
R4SAS я тебе даже скажу почему
R4SAS потому что там небось сборки от васяна
R4SAS у меня на работе спокойно всё работает
R4SAS либо у тебя на работе сисадмины мудозвоны, и систему не обновляют
tetrimer Запросто. Это же не рабочие системы, а для проверки: будет ли работать у клиентов.
R4SAS давать клиентам не обновлённую систему обычно черевато
tetrimer У клиентов - там все свое.
tetrimer Наше дело: сказать, что надо сделать, чтобы заработало.
R4SAS прелесть такая, что работает пожирая всего лишь 190 мб на всю систему. фф жрет еще 170 сверху
R4SAS даже меньше...
R4SAS хе, фф на хрюше заскринил 102
R4SAS осталась картинка того, как оно выглядело когда то
R4SAS действительно пересборка boost решила проблему
R4SAS но всё равно как то тяжко оно работает
orignal будет время делать релиз через 2 недели?
R4SAS по факту будет видно
R4SAS пока что не могу сказать
R4SAS в любом случае всё как обычно делаем
orignal опять от атаки польза
orignal вылезли многие баги
R4SAS дед тоже у себя поправил?
orignal я не знаю что они делают
orignal по моему сопли жуют