IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/03/02
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Leopold
Most2
Nausicaa
Vort
Xeha
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
poriori_
profetikla
soos
un
weko
whothefuckami_
Vort поправил два предупреждения статического анализатора, которые несколько дней назад обсуждалои
Vort и ещё два, которые нашёл MSVC
Vort бинарник не тестировал, но, думаю, тут нечему ломаться
Vort есть ещё одно предупреждение, но по поводу того, как его исправить, я не уверен
Vort m_SigningKeys определяется вот так:
Vort std::map<std::string, std::pair<std::shared_ptr<i2p::crypto::Verifier>, FamilyID> > m_SigningKeys; // family -> (verifier, id)
Vort typedef int FamilyID;
Vort то есть, можно поменять
Vort m_SigningKeys.emplace (cn, std::make_pair(verifier, m_SigningKeys.size () + 1));
Vort на
Vort m_SigningKeys.emplace (cn, std::make_pair(verifier, FamilyID(m_SigningKeys.size () + 1)));
Vort и предупреждение уйдёт
Vort если это правильное изменение, то говорите, добавлю его в PR 1893
orignal да нет не надо на Family забей оно ж не используется почти
orignal можешь и закоммитить
Vort по поводу утечек: уже аптайм 21 часа у узла, загадочных Private Data блоков памяти почти нету. Executable по крайней мере нет совсем
Vort понемногу растёт куча, но, это, видимо, не совсем утечка
Vort так что имеем две проблемы: 1. загадочные блоки памяти (проявляется при загадочных условиях, очень редко) 2. рост каких-то контейнеров в куче. может быть не багом, а особенностью
orignal имеем главную проблему про которую говороит R4SAS
orignal почему у него сотни мег отжирает
Vort номер 2 по моей классификации?
Vort он вроде про кучу говорил, да?
orignal скорее всего она
Vort то есть, для начала надо понять хотя бы тип памяти, который у него "течёт"
orignal то что через malloc выделяется
Vort через malloc куча
Vort ну и new
Vort и это должно обычными утилитами ловиться
orignal new это тот же malloc с консткрутором
Vort а вот та хрень с Private Data - это и загадочно и опасно - хз как такое ловить с такой низкой воспроизводимостью
Vort жаль он скриншот удалил - не могу перепроверить, сколько у него Private Data отжирал
Vort VMMap, кстати, позволяет сохранять результаты в файл
Vort можно проблему "сохранять" для дальнейшего изучения
Vort ну, точнее, метаданные о ней
Vort запустил очередной статический анализатор. на этот раз от Visual Studio
Vort сколько же он бреда выдаёт ) но одна мелочь меня уже заинтересовала
Vort похоже, при fileNameLength = 255 тут будет доступ за пределы памяти
Vort ещё обнаружилось, что hash может вернуться без инициализации при ошибке: github.com/PurpleI2P/i2pd/blob/75ab385ab707cbdaaeea3bb83fe82a7ed7ee0485/libi2pd/Blinding.cpp#L331
Vort но это не похоже на что-то важное
orignal первое надо конечно проверку добавить
orignal второе там без разнцы что возвращатьь при ошибке
Vort в первом случае, скорее, достаточно массив на байт больше сделать
Vort ну или if ( fileNameLength > 254 ) поставить
Vort вместо if ( fileNameLength > 255 )
orignal вот тут if ( fileNameLength > 255 ) {
orignal надо >=
Vort я притягиваю баги :)
Vort решил попробовать запустить вторую копию i2pd
Vort вижу - зависла. разбираюсь в причине и вижу коннект к 127.0.0.1:443
Vort а у меня там Tor запущен. думаю - и зачем i2pd мой Tor понадобился?
Vort оказалось, что я попал на ресид с таким вот хитрым адресом
Vort что в таких случаях надо делать? адрес - i2p.novg.net
orignal ааааа
orignal его выпилить надо
orignal он сдох
orignal хочешь можешь сам PR сделать
orignal я все собираюсь да забываю
Vort "Remove unreachable reseed" ?
Vort как назвать то есть
orignal отлично
orignal да можно просто было obsolete
Vort ещё баги )
Vort можно чуть вопросов задать?
orignal давай
orignal да багов море
Vort хотя ответ я уже сам нашёл. так что просто ссылку на баг кину
Vort i2p::config::GetOption: @return this function returns false if parameter not found
Vort так параметр всегда будет found
Vort со своим стандартным значением
Vort там надо проверять, пустое значение или нет
orignal надо глянуть
orignal и этот код не я делал а jeff_ явно
orignal да лажа там
orignal надо проверять на пустоту
Vort сейчас напишу свой вариант
Vort std::string riPath; i2p::config::GetOption("reseed.floodfill", riPath);
Vort if (riPath.length() > 0)
orignal riPath.empty() проще
Vort согласен. но вообще-то проверку я спёр отсюда: github.com/PurpleI2P/i2pd/blob/75c9f596b2beafb16cb172fd19ab8658ed785814/libi2pd/Reseed.cpp#L51 :)
orignal да без разницы в общем то
Vort может, глупый вопрос - ресиды без подписей не работают?
Vort пытаюсь завести чистый бинарник и получаю Reseed: SU3 verification failed
Vort думал, что такая возможность есть, но, похоже, нету
orignal работают
orignal ты чеего?
orignal ("reseed.verify", value<bool>()->default_value(false), "Verify .su3 signature")
Vort значит, я подождал мало времени. или ещё какой-то баг словил/сделал
Vort буду разбираться
orignal нет у тебя где то конфиг есть где включено
Vort таки я тупанул
Vort оно true в contrib\i2pd.conf и я оттуда скопировал даным давно не разбираясь. а сейчас сделал клон основного конфига тоже не разбираясь )
Vort так что я верно предположил, что этот вопрос будет глупым )
orignal ты ресидами не увлекайся
orignal а то забанят
Vort хм. ресид же не отключить
orignal reseed.urls
orignal или делай только по ygg там не банят
orignal по ygg это все наши
Vort а, ну оно так и получилось
Vort urls =
Vort а yggurls остался как был
orignal ресид же вызывается когда netdb пустая
Vort да я хочу утечки половить
Vort и мне активность высокая ни к чему
Vort и так хватает утечек. ну или ложные срабатывания - разбираюсь