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
да и на i2pd.website идёт ссылка на github.com/PurpleI2P/i2pdbrowser/releases/latest
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
по моему сопли жуют