~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest8889
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
`
acetone_
anon3
b3t4f4c3
fidoid_
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
tensor
un
weko_
whothefuckami
R4SAS
хм. у меня не собирается чет
R4SAS
я почему то в atomic уперся
R4SAS
ругнулось что не может найти файл, хотя он там...
orignal
в как раньше собиралось?
R4SAS
да я про msvc
orignal
не ну это мне не посилам ))
R4SAS
libi2pd\Ed25519.cpp(416,31): warning C4805: '!=': unsafe mix of type 'int' and type 'bool' in operation
Vort
предупреждение видел
Vort
думаю, код там нормальный
Vort
atomic я добавил в cmake как OPTIONAL_COMPONENTS atomic
Vort
может, в этом проблема?
R4SAS
видать
R4SAS
я добавил дефайн и оно переварило
R4SAS
-DBOOST_ATOMIC_DYN_LINK
Vort
а, тут же ещё может влиять разная версия студии
Vort
у меня 2015
R4SAS
я на 19
Vort
может, там как-то по другому что-то
R4SAS
мб
Vort
а буст собирал так, как я писал?
R4SAS
я его взял с релизов
orignal
15 это на которой майнеры собирают?
R4SAS
да
R4SAS
но бывает еще на 12 собирают
Vort
"я его взял с релизов" тогда, видимо, локально допиливать мейкфайл надо. к примеру, я под /MT всё затачивал, чтобы зависимости не тащило
R4SAS
а cmake я так понимаю ты с WITH_STATIC использовал?
orignal
кстати ситуация с этими кодами интересная
orignal
idk утверждает что они у них уже работают а дрозд вообще не в курсе
Vort
R4SAS: да
Vort
d:\CMake\bin\cmake.exe -DBOOST_ROOT=d:\boost_1_81_0 -DOPENSSL_ROOT_DIR=d:\openssl-1.1.1t -DZLIB_ROOT=d:\zlib-1.2.13 -DZLIB_LIBRARY=d:\zlib-1.2.13\contrib\vstudio\vc14\x64\ZlibStatDebug\zlibstat.lib -DWITH_AESNI=OFF -DWITH_STATIC=ON -G"Visual Studio 14 2015 Win64" .
R4SAS
ну, примерно так же
Vort
на всякий случай ещё ключи буста и openssl
Vort
b2 variant=release,debug link=static runtime-link=static address-model=64
Vort
perl Configure VC-WIN64A no-shared
R4SAS
в моем случае так:
R4SAS
cmake -G "Visual Studio 16 2019" -A x64 -DBOOST_ROOT=d:\devel\boost\boost_1_81_0 -DZLIB_ROOT=d:\devel\zlib -DZLIB_LIBRARY=d:\devel\zlib\lib\zlibstatic.lib -DWITH_STATIC=ON .
R4SAS
openssl у меня по дефолтному пути, так что не указываю
R4SAS
собираю так:
R4SAS
cmake --build . --config Release -- -m
R4SAS
на выходе 6.3 мб
R4SAS
но пришлось сделать кучку правок
R4SAS
openssl не хочет линковаться без crypt32
weko
Transit Tunnels: 9221
weko
Что 5
relaybot
13mauzer: стопудова 5
Vort
сделал первую визуализацию потребления памяти из собранных данных
Vort
утечки пока что _явно_ не видно, зато видны эффекты от деятельности SSU2. не призываю пока что что-либо в SSU2 менять, но учитывать этот эффект надо
Vort
надо, кстати, учиывать, что куча "съёживаться обратно" не особо любит и вот такие всплески как на графике оставляют на куче заметный след
Most3
<q> make[1]: *** Нет правила для сборки цели «mk_obj_dir». Останов.
Most3
<q> У меня не хочет собираться i2pd-tools
Vort
"<~R4SAS> openssl не хочет линковаться без crypt32" надо разобраться, почему у тебя вот эта строчка не срабатывает: github.com/Kitware/CMake/blob/394e1540a3aa3d0309bef87f3ec11de6d1c081e7/Modules/FindOpenSSL.cmake#L201
Leopold
jeff hello
Leopold
Need your help
weko
We have problem with server UDP tunnel
Leopold
there is problem with UDP in i2p
Leopold
So when trying to play more than one player on same server tunnel
Leopold
Game think that players how one
Leopold
We tryed in mindustry, xonotic, teeworlds
Leopold
If using different server tunnel for each player, all is okay
weko
With more then 2 players from I2P in udp game, it strange lagging
Leopold
weko can say more detail about it
weko
So we tested several games, and its also lagging with >2 players
Leopold
>1
weko
Ye
Vort
"<~R4SAS> но пришлось сделать кучку правок" проверил патч у себя: после вызова cmake файлы проекта не поменялись - думаю, это значит, что ничего не сломалось. хорошо.
Vort
понял, откуда у меня вчера креши были. дело в остановке i2p::transport::transports
R4SAS
я там еще потом немного менял
Vort
в конструкторе поставить удаления - будет утечка. в Stop () - будет креш (из-за NetDb). сделал Stop2 () и воткнул его после остановке i2p::data::netdb.Stop(); посмотрю как будет
Vort
R4SAS: что? могу потестировать
R4SAS
чутка позже скину, сейчас с одной из машин разбираюсь
Vort
окей. в общем, моя мысль в том, что crypt32 должен автоматом подключаться. а в остальном всё норм было в том патче
R4SAS
ну.. у тебя cmake откуда?
R4SAS
сам ставил?
Vort
с оф сайта
Vort
а, может, тебе свежее нужен? хотя вряд ли
R4SAS
у меня тут тот что идет с msvc в поддержке
R4SAS
а это 3.20
Vort
cmake-3.25.2-windows-x86_64.zip
R4SAS
ну вот
Vort
глянь что у него там в FindOpenSSL.cmake. ну когда сможешь
R4SAS
там нет этого
Vort
чего этого? подключения crypt32? или вообще FindOpenSSL.cmake нету?
R4SAS
нет блока _OpenSSL_has_dependencies
R4SAS
он тут обрезаный какой то
Vort
а, ну тогда норм воткнуть crypt32 вручную. разве что может коммент стоит добавить что это для старого cmake
R4SAS
ак видишь в чем дело
R4SAS
версия модуля такая же
R4SAS
paste.i2pd.xyz/?b2152396dce5bf1c#HiN8q5wr7U3syN6uNjYRPbG3dsLjhSSKXrtAxax7A5GZ - вот всё что тут есть
R4SAS
по этому вопросу
`
№НадоБылоСтавитьЛинух
R4SAS
ясно. мейнтейнеры не дописывали в ченджлог
R4SAS
появилось оно в 3.21
Vort
хах. как раз полез проверять. значит, не буду. понятно
R4SAS
надо будет просто проверку на версию сделать
Vort
да, так будет яснее
R4SAS
ладно, все равно туда залез
R4SAS
134G var
R4SAS
hmmm
`
преступно, конечно, позволять включенным логами по умолчанию так разрастаться
`
(не про конкретно этот случай, но были ранее, у кого с настройками по умолчанию разрасталось)
Leopold
У меня до гига что ли разраслось
Leopold
Я думал, по умолчанию логи i2pd не писались в файл
relaybot
13mauzer: /var/log на отдельный раздел
R4SAS
нет, это не логи
R4SAS
контейнер для сборки под wrt и entware скорее всего
R4SAS
Leopold: по умолчанию пишет
whothefuckami
Может на лине по умолчанию логи в syslog?
R4SAS
нафиг?
whothefuckami
Чтоб место экономить ?
R4SAS
оно всё равно будет писать в системный журнал
R4SAS
а это всё равно файл
whothefuckami
Системный журнал умеет сам себя чистить
R4SAS
и логи в пакете тоже умеют
whothefuckami
Хммм
whothefuckami
Тогда ладно
whothefuckami
<~R4SAS> 134G va
R4SAS
там стоит хранение 3 дрей
whothefuckami
Навернор просто не повезло
R4SAS
дней*
R4SAS
я же говорю это контейнер для сборки openwrt
whothefuckami
ah damn
whothefuckami
Читать не умею, слепой
R4SAS
во время сборки тулчейнов контейнер писал большое количество исходников в /tmp
R4SAS
остановил его, сразу вычистилось до 40 гб
Vort
R4SAS: похоже, там опечатка. "crypt32" дважды добавляется
R4SAS
Vort: поробуй 3.20 сделать в проверке
Leopold
Из файла i2pd.conf не было ясно изначально, что пишется в файл var/log/i2pd.conf. Я думал, что в stdout.
Leopold
## Logging configuration section
Leopold
## By default logs go to stdout with level 'info' and higher
R4SAS
Leopold: в пакете другие параметры
Leopold
Потом уже я обнаружил гигаабайтный файл лога и сделал loglevel = none
R4SAS
в конфиге описаны параметры приложения по умолчанию
Leopold
Что за пакет?
R4SAS
у тебя какая система?
Vort
R4SAS: не понял ответа. должно быть, как я понимаю, вначале без "crypt32", а если меньше, 3.21, то ещё и плюс "crypt32". а по той ссылке что ты кинул и на 69 строке "crypt32" и на 72 строке "crypt32"
R4SAS
Vort: смотри внимательно на пеееервый символ строки
Leopold
Разные системы
R4SAS
а
R4SAS
понял
Leopold
И на всех OpenRC
R4SAS
забыл там убрать
R4SAS
убери
Vort
ага
Leopold
Журнала systemd нет
R4SAS
Leopold: ты каким образом ставишь i2pd?
Leopold
из репа дистрибутива
R4SAS
а теперь подумай
R4SAS
что есть "пакет"
Leopold
А что значит "в пакете другие параметры"
R4SAS
в пакете используются парамерты запуска, отличные от стандартных
R4SAS
так яснее?
R4SAS
посмотри в init.d/i2pd
R4SAS
сразу поймешь
Leopold
Сейчас посмотрю
R4SAS
или где там у вас в openrc
R4SAS
крч сам найдешь
R4SAS
command_args="--service --daemon --log=file --logfile=$logfile --conf=$mainconf --tunconf=$tunconf --tunnelsdir=$tundir --pidfile=$pidfile"
Vort
что-то ругается мой cmake
R4SAS
на что?
Vort
CMake Error at CMakeLists.txt:340 (if):
Vort
if given arguments:
Vort
"MSVC" "and" "3.25.2" "VERSION_LESS" "3.21"
Vort
Unknown arguments specified
R4SAS
ой лол
Vort
кажется, понял
Vort
AND надо
R4SAS
надо разделить тогда
Vort
вместо and
R4SAS
ммм.. врядли
Vort
у меня точно из-за and ругается
Vort
а с AND нормально
`
почему сборка под другую платформу через контейнер? я не в рот ногой мейнтейнер.
R4SAS
`: ты предлагаешь собирать прямо на роутере?
R4SAS
Vort: ну значит я тут поторопился))
`
R4SAS, предлагаю (размышляю над) собирать на основной машине. Опять же, я не в рот ногой мейнтейнер, может компилятору нельзя сказать: "делой на етой платформе под ту платформу и точка".
R4SAS
`: нафиг этим заниматься на хосте?
R4SAS
у тебя будет свалка в таком случае
R4SAS
из разных софтов, разных сорцов
R4SAS
и если ты чего то собрать не сможешь, то че, систему переустанавливать?
R4SAS
не всяких софт собирается под последними версиями систем
R4SAS
и наоборот
R4SAS
потому и контейнер
Vort
по поводу утечек: сделал очередной запуск. утекло традиционно 2 блока по 1544 байт, но ещё и один на 2192. надо будет разбираться что это за 2192. а пока очередной запуск ставлю. у меня ощущение, что утечка IdentityEx ещё не добита
`
Vort, а, можна по С++ тематике спросить? Хочу доходчиво для разработчиков поймать момент, когда RetroShare(c)(R)[TM] (C++&QT) падает в определённых воспроизводимых сценариях. Как это сделать, получил понятный для
`
разработчика лог? Мне пейсали про "valgrind", но его же ещё нужно как-то правильно приготовить (ключи и вот этот вот всё)..
`
Как это сделать, получив*
Vort
дело в том, что я с valgrind не знаком
Vort
слышал, что в линуксах есть core dump
`
Vort, тогда через gdb?
Vort
падение ведь должно его писать, да?
Vort
ну если есть дамп и если программа собрана с отладочными данными, то gdb стоит пробовать, да
Vort
хотя если есть методы воспроизведения, то почему бы разработчикам просто не воспроизвести? :)
Vort
есть ещё вариант попробовать самостоятельно воспроизвести в виртуальной машине
Vort
тогда можно исключить особенности реальной конфигурации системы
`
Vort, есть подозрение на специфический для "окружения" характер, и возможно сам способ сборки.
Vort
а если в ВМ не воспроизведётся, тогда можно будет искать различия в системах
Vort
`: ну вот ставь виртуалку значит ) VirtualBox норм штука
Vort
а насчёт сборки - ну так можно же с репозитория взять. или ещё откуда-то уже собранное
Vort
чтобы исключить и этот вариант
`
Проблема точно в сборке и зависимостях используемых для сборки. Я бы даже так сказал.
`
Но тыкать и перетыкивать зависимости с версиям..
`
Сборка "говношары" у меня занимает несколько часов, однако.
Vort
а бинарь стащить откуда-то можешь?
Vort
пофиг для какого линукса
Vort
в ВМ потом этот линукс поставить и проверять
R4SAS
он максимум без дебага найдет
R4SAS
пущай собирает
Vort
R4SAS: а надо увидеть, будет ли креш
Vort
это тоже ценная информация. будет/не будет
weko
[10:47:39] <Vort> `: ну вот ставь виртуалку значит ) VirtualBox норм штука
weko
qemu
Vort
weko: ну на самом деле примерно пофиг. лишь бы работало
`
вот на qemu ставил убунту и на неё бинарную говношару - не воспроизводилось
`
поэтому хоцица отловить момент падения (крэша) у себя
Vort
ну теперь собери в qemu в убунте ) самым традиционным образом
`
*понятный момент падения, для разработчиков
`
сутки буду собирать. в лучше случае. ладно
Vort
если с отладочными данными собирал, то тогда смотри core dump через gdb
Vort
если без них, то всё равно можно посмотреть. ну или собирать опять...
Vort
"несколько часов" против "сутки" ? может, всё-таки тогда лучше VirtualBox? я с ним такой разницы не замечал
weko
Transit Tunnels: 9759
Vort
`: а что - в убунте этих зависимостей в виде пакетов нету?
Vort
зачем зависимости собирать...
R4SAS
извращенец просто
R4SAS
логично же
Vort
ну просто если баг искать, то итерации стоит делать быстрее
weko
Transit Tunnels: 10018
Vort
короч, при таком поиске надо идти итеративно от рабочего варианта к нерабочему
Vort
пошагово приближая один к другому
Vort
универсальный метод =)
weko
Transit Tunnels: 10211
`
Vort, не зависимости собирать, а собирать с разными зависимостями. Я думаю, что там проблема с QT (графика для ПО).
weko
Transit Tunnels: 10270
Vort
`: так долго собирается что? ретрошара? или ретрошара + Qt + ещё всякая хрень?
`
Vort, "говношара", на основной машине (чуть-чуть производительнеее тостера) собирается 4 часа.
`
Проблема вот так вот её собирать то с одной версией зависимости, то с другой. А если ещё и в виртуалке...
Vort
понятно. а воспроизведение проблемы сколько времени занимает?
whothefuckami
Ну без дебаг символов там реально нечего делать. Тут только пересборка
Vort
whothefuckami: а если внутри qt где-то крешится? qt не может быть с дебаг символами ?
whothefuckami
А ну да
whothefuckami
Ну, зато ты узнаешь, что краш в кьюте
Vort
угу
whothefuckami
Да ты и без символов это узнаешь...
`
Vort, потыакл по интерфейсу в опеределённом порядке - крЭшнулось. Примерно столько времени.
whothefuckami
Ладно, без символов есть смысл проверять
`
хоть минута
whothefuckami
Да, короче
whothefuckami
Тут всё просто
whothefuckami
Сначала
whothefuckami
gdb retroshare
whothefuckami
run
whothefuckami
потом тыкаешь туда сюда
whothefuckami
Доводишь до краша
whothefuckami
И выхлоп сюда
R4SAS
whothefuckami: и будет он смотре на вопросики
`
пробовал, да, там вопросики
R4SAS
из за отсутствия символов
whothefuckami
Ну да, только щас понял, что предложил рак
`
Ладно, буду играца с valgrind
R4SAS
`: без отладочных символов безсмысленно
Vort
экстремальный вариант - грузить в дизассемблер и угадывать, что делают функции по адресам в трассировке )
R4SAS
а смысл появится когда пересоберешь
Vort
вот да, лучше в дебаг режиме пересобрать
Vort
зачем valgrind - не пойму
R4SAS
а бессмысленно потмоу что валгринд тоже нихера не покажет
`
weko, тоже необычайно больше обычного транзитофф.
whothefuckami
valgrind это же для утечек
`
правда я зарезал лимит
whothefuckami
кста ` ты вот когда gdb смотрел. Там в bt были вызовы в кьютовских .soшках?
whothefuckami
А вдруг нет...
`
whothefuckami, нашёл пасту, не хочется сюда вливать несколько десяткофф строк, сек..
`
o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta.b32.i2p/file/18/18f85a92521bf12d95a51dbb29da14e535d186f0420a0f9bf65b3a88ca8604c9/bt.txt
whothefuckami
О у тебя кьют уже с дебаг символами
whothefuckami
Я думал он нет
whothefuckami
Значит на пересборку только retroshare
`
у меня на тот момент в системе был QT 5.15.2
`
с которым и собирался
whothefuckami
Нет стоп он без дебаг символов
whothefuckami
Или с
whothefuckami
Ну хз короче
R4SAS
кутэ - да
R4SAS
их можно поставить
R4SAS
они в репах идут обычно
whothefuckami
Я в арче не нашёл
whothefuckami
Может ты знаешь:
R4SAS
рач э
R4SAS
рач это рач
whothefuckami
Самому собирать??
R4SAS
да
whothefuckami
Печаль
R4SAS
намек понятен?
whothefuckami
А, вот как оно устроено
whothefuckami
Да понятен
`
теперь понятнее хотя бы стало, куда копать. Спасибо всем, каждому по спасибо в карман за мой счёт;)
R4SAS
релиз и дебаг нормально собираются
R4SAS
сейчас протестил сборку с cmake
R4SAS
с статичной сборкой всё в норме благо
R4SAS
18 Мб + 113 МБ pdb
Vort
готов результат анализа утечек при выходе узла с примерно двухчасовым аптаймом: paste.i2pd.xyz/?2201ef303fea9681#4tWHh5GX42AdmivtmjFTFmMbKES2UVELyJfRpF3a3aG2
Vort
видны утечки 2192 bytes. только вот ID блоков слишком кучкой и довольно большие
orignal
а какие выводы?
Vort
вполне возможно, что они (2192 bytes) утекли чётко перед самым выходом. но всё равно ловить надо
Vort
помимо этого, утекло два 544 bytes. IdentityEx, видимо
Vort
1032 bytes тоже два. может связаны с предыдущими двумя. надо разбираться что за объект этло
Vort
с мелочью по 16 bytes, думаю, можно потом разобраться
Vort
на данный момент, думаю, главные цели разбирательства - 544, 1032 и 2192
Vort
R4SAS: для проверки компилятором - хорошо. но в том, что так получится сделать динамическую сброку, я практически не сомневался
Vort
а вот статическую - тут уже сложнее
R4SAS
там просто в cmake не передавался дефайн
Vort
там нужны будут все либы собранные с флагом /MT. есть такие?
R4SAS
ща увидим. по идее они идут в офф билдах
Vort
без этого это будет недо-статика, с требованием установки vcruntime или как там его
Vort
ок, посмотрим
R4SAS
конечно процесс установки буста самый долгий...
R4SAS
и да, это MVS 2022
Vort
значит, уже тремя компиляторами проверили. хорошо
Vort
тремя VC
R4SAS
я могу еще 2019 добавить
R4SAS
2015 и 2017 уже не получится, там образы их не содержат
Vort
думаю, пока что 2019 не надо
Vort
2015 можно вручную время от времени проверять
R4SAS
главная проблема наверно будет с zlib
R4SAS
тут
Vort
кстати, баг нашёл
Vort
Blinded message
R4SAS
ибо его тоже приходится собирать, а собирается он как Release
R4SAS
да это фигня
Vort
R4SAS: а ты хочешь дебаг через GHA получать?
R4SAS
это так имя я поставил, вот и дублирует
R4SAS
здрасьте, транк всегда ебаг я делаю
R4SAS
дебаг*
R4SAS
почтии.....
R4SAS
надо zlib собрать дебажным
Vort
github.com/PurpleI2P/i2pd/blob/54c6a424ef6bd0106fce9798e880c35fe7ccc684/.github/workflows/build-windows.yml#L82
Vort
это тогда что?
R4SAS
ась?
Vort
"транк всегда дебаг я делаю"
Vort
-DCMAKE_BUILD_TYPE=Release
R4SAS
а, лол
R4SAS
под виндами жирность бинарника отличительная
R4SAS
а вообще, по идее разницы то нет какой бинарник получать
Vort
у zlib там два проекта - ZlibDll и ZlibStat
R4SAS
знаю
Vort
надо как-то выбирать нужный
Vort
ну и релиз/дебаг тоже как-то выбирать
R4SAS
сейчас это используется github.com/horta/zlib.install
Vort
ну вот тот скрин что ты показал - следствие выбранного не-Stat
R4SAS
да да
Vort
ну значит они так выбрали
R4SAS
потому что дебага не было
Vort
но там либа мгновенно собирается
Vort
так что можно и самому - пофиг
R4SAS
вся причина
Vort
ну а статик/не статик там есть выбор?
R4SAS
нет, он уже по идее в проекте по дефолту собирается
Vort
ага, хорошо
Vort
а по поводу /MT что там?
R4SAS
zlib вроде не зависит от MT
Vort
мне студия ругалась, когда я пробовал совмещать /MT и /MD
R4SAS
конечно
Vort
интересно оно как-то на GHA собралось, что не видно вывода команды линковки. ну или я не заметил
Vort
а, может, это значит, что всё ок
R4SAS
потому что cmake --build
R4SAS
могу конечно добавить --verbose
Vort
в общем, если там в zlib /MD, то могут быть проблемы. не уверен, правда
Vort
хм. так почему всё же у тебя линукется zlib1__.dll ?
R4SAS
потому что оно подхватило Strawberry
R4SAS
смотри в Configure
Vort
а, те, которые уже были на GHA?
R4SAS
да
R4SAS
в пакете Strawberry (perl) он тоже есть
R4SAS
Vort: насчет upnp
R4SAS
смысл делать проброс, если все равно серый адрес
Vort
я уже понял
Vort
поэтому я и сказал ему, что решение - менять провайдера
Vort
поначалу я предполагал, что может быть где-то баг. но потом стало понятно, что у него просто серый IP. точнее, два серых IP
R4SAS
теперь то точно дебажную либу собирает: github.com/PurpleI2P/i2pd/actions/runs/4366569659/jobs/7636750261#step:3:74
R4SAS
во, теперь правильно....
R4SAS
-- Found ZLIB: optimized;C:/Strawberry/c/lib/libzlib.a;debug;C:/Program Files/zlib/lib/zlibstaticd.lib (found version "1.2.11")
R4SAS
оптимизироанную подбирает из перла потому что не собираю её
R4SAS
можно тоже будет собирать
R4SAS
всё, полностью статично линкуется
`
Стал чаще видеть в "говношаре" транзитный трафик в сто, двести и даже триста КБ/с. Надеюсь это результат "перехода на более прогрессивные штуки".
`
R4SAS, напомни, пэжэ, где бинарники для опенврот насобирать? А то (не стараясь, признаюсь) смог сегодня дойти до тамошней вики, а там пишутЬ, что ш2зв версии 2.41.0...
`
Нашел ссылку из логофф, эта которая вики страница, я помню. Там ссылка на гитхуб, где конфиг для сборки..
`
Я думал там где-то будет зоопарк бинарникофф.
relaybot
13sam: Хой
`
хой жыфф
relaybot
13sam: :-)
relaybot
13sam: Почему все заебало?
relaybot
13sam: Ни чего не охота
relaybot
13sam: От слова совсем
relaybot
13sam: Или через не хочу или по накатанной через не хочу
relaybot
13sam: Поехать в хохлостан и с ножа вырезать экипаж леопарда.
relaybot
13sam: Может
relaybot
13sam: Стать героем россии
relaybot
13sam: Но есть вопрос
relaybot
13sam: Нахуя
relaybot
13sam: Мне это
`
№1. Здесь не флудильня, по большей мере..
`
№2. Старайся больше.
`
№3. Лет через 10 и с помощью огромной удачи - всё окупится.
`
№4. Найди бабу и забей на эти игры анонимуса.
Vort
сделал визуализацию потребления памяти моим узлом за 21 час аптайма: paste.i2pd.xyz/?d4b9a7c2ae324bc3#97EitctoTwXewL9XdLeSxoAsh2N9Sp4PkNTCDcoExu11
Vort
главный вывод - если смотреть чисто по количеству выделенных байт, то утечки пока что не видно
Vort
потребление болтается около 40 мегабайт
Vort
второй вывод - потребление памяти у i2pd уж слишком "шипастое". прыжки бывают в 2 раза за пару минут
Vort
два примечательных события произошло - в 6:01 UTC и в 15:22 UTC
Vort
что именно тогда произошло - сказать сложно. но первый раз я увидел по своему мониторингу повышенное количество коннектов в системе, а второй раз увидел приход DDoS`а - куда именно - так и не понял. то ли в Tor, то ли в i2pd
Vort
пока что предположение такое, что шипы даёт работа SSU2 под нагрузкой (или перегрузкой)
Vort
ну и ещё одно предположение именно по утечке - вполне может быть, что утечка "виртуальна" - это может быть следствие фрагментации кучи
Vort
не уверен, что правильно термин применил, но суть в том, что куча получается дырявая, как сыр. а дырки ведь тоже занимают место в памяти
Vort
о том, как это чинить, даже думать не хочется
R4SAS
дырявость unordered_map мы давно обсуждали
R4SAS
я предлага переодически перезаполнять память
R4SAS
т.е. раз в какое то время будет создаваться новый map, заполняться данными из имеющегося, а старый зануляться
Vort
а что там с unordered_map происходит? я ведь говорю про память, которая освобождена, но занимает место
Vort
условно говоря, если один байт посреди памяти освободится, то страница памяти же не выгрузится - там ещё байты есть
R4SAS
память выделяется, потом записи остаются, а занятое место не высвобождается
R4SAS
незанятое*
R4SAS
когда какие либо записи вырезались
R4SAS
т.е. блок памяти с пустотами в нем получается
Vort
то есть, delete отработал, но пустоту никто не переиспользовал?
R4SAS
она вероятно переиспользуется, но только в случае если в эту пустоту поместится чего либо
R4SAS
я это так представляю, не факт конечно
Vort
ну да. допустим, 1000 байт освободилось. на их место поместились 10 байт. а в оставшиеся 990 байт уже 1000 байт не поместится
R4SAS
но всё равно будут маленькие, да все же пустоты
Vort
и если потребуется 1000, то придётся искать новое место
Vort
я думал, что с этой проблемой призваны бороться пулы памяти. но с чем они борются в i2pd я пока ещё так и не понял
Vort
"я это так представляю, не факт конечно" у меня тоже догадки, к сожалению
Vort
надо проверить, правильно ли я термин применяю
Vort
сейчас погуглю
Vort
на сайте MS даже нашлось
Vort
"Фрагментация кучи — это состояние, в котором доступная память разбивается на небольшие несвязанные блоки. Если куча фрагментирована, выделение памяти может завершиться сбоем, даже если общий объем доступной памяти в куче достат
Vort
очно для выполнения запроса, так как ни один блок памяти недостаточно велик."
R4SAS
> Начиная с Windows Vista система использует кучу с низкой фрагментацией (LFH) при необходимости для обслуживания запросов на выделение памяти. Приложениям не нужно включать LFH для их кучи
Vort
ну какая-то борьба с проблемой идёт, да
Vort
но явно её полностью автоматическими средствами не решить
Vort
в общем, предположение есть. теперь надо думать о том, как его потдвердить или опровергнуть
Vort
пока что подержу ещё сбор статистики, может обычную утечку (без хитростей) увижу
Vort
кстати, вот эти шипы - это известная особенность SSU2 или нет?
Vort
вы с ней разбирались или нет?
Vort
на 100% про SSU2 не уверен, но при таком шипе выделяется много блоков 1544, а именно такие я видел у SSU2
Vort
[2023-03-08 06:01:24] 68310762:
Vort
0: 7048360 (4565 * 1544)
Vort
вот на 7 мегабайт блоков по 1544 байт набралось
R4SAS
мы не следили на столько сильно
R4SAS
мы обычно на память просто смотрим
R4SAS
так что не довелось наблюдать их
Vort
они редкие, но меткие
Vort
помню тут кто-то жаловался на OOM
Vort
может, словил такой шип
R4SAS
оом бывает
R4SAS
но тут тоже не всё ясно
R4SAS
шип как должго живет например
Vort
мне ещё чем эти шипы не нравятся - я подозреваю, что их можно использовать для DoS`а
Vort
шип живёт несколько минут
R4SAS
значит надо искать какой таймер его вычищает
R4SAS
и от него плясать
Vort
надо смотреть, где лежат блоки по 1544 байт
`
> их можно использовать для дос'а
`
какер: ..для дос'а.. записал
Vort
и там не только 1544 байт 2023-03-08 06:01:24 было. там ещё жирные массивы какие-то
Vort
1: 6217992 (99 * 62808)
`
Vort, это сильное ожидание от петпроекта.
R4SAS
вероятно пакеты вне очереди
R4SAS
или еще чего то
Vort
ну да. это какая-то очередь
Vort
и такое ощущение, что тормозов у этой очереди нету
Leopold
Кнопка "перезагрузить конфигурацию туннелей" убивает все туннели?
orignal
когда как
orignal
иногда срабатывает нормально
orignal
таймер в SSU2Server
orignal
ну че как успехи с поиском утечек?
weko
Леопольд запустил репу параболы в ш2з, вроде синкается нормально
orignal
меня больше утчеки памяти интересмуют
weko
orignal: а обновление туннелей и UDP туннель?))
orignal
ну я рассчитываю что jeff починит
jeff
yo
jeff
udp tunnels are shit still right?
jeff
i dont have a big chunk of time rn
weko
jeff: 1) problem with multiple connection on udp server
weko
2) don't working tunnel config updating (so TCP also buggy there)
orignal
jeff should take care about 1 only
orignal
2 is different story
jeff
issue 1 makes sense, idk how tf it even works
jeff
how it COULD work
orignal
jeff weko says that UDP server tunnel can't handle multiple sessions from the b32
jeff
i believe it
orignal
I think by port
weko
So
weko
It can
orignal
if I'm a client
orignal
I should use different cleint port for each session
weko
But buggy
orignal
and server must differentiate it
weko
Also multiple UDP servers on same b32 doesn't work
weko
It will be 3)
orignal
also encrypted leasesets
weko
[20:31:54] <orignal> if I'm a client
weko
[20:32:11] <orignal> I should use different cleint port for each session
weko
[20:32:20] <orignal> and server must differentiate it
weko
I guess it use different port now, I guess maybe it mix packets from i2p "sockets" to UDP sockets?
orignal
jeff should know better
orignal
what was his original idea
jeff
god i have no idea what the original idea was lol
jeff
it is now whatever you want it to be :D
weko
I just try to understand what actually happening ... So I did not tried something yet
jeff
what is your usecase? unicast udp?
weko
Test with netcat + wireshark
weko
jeff: UDP games
weko
We tested Mindustry, Xonotic, Teeworlds
jeff
so unicast udp in a star topology
jeff
it'd be cool to have source specific multicast over i2p
jeff
having udp be done using that and having unicast just be a special case would be a way to implement udp tbh
weko
Also it lagging for several seconds sometimes, but maybe it is i2p problem, need more investigation
jeff
udp server == SSMC router, udp client == member of that SSMC group
jeff
udp clients would join udp server then be able to multicast to everyone else on it
jeff
and then you can do unicast to the udp server too
jeff
and unicast to the other members of the group
weko
LeaseSets: 293
orignal
LeaseSets: 171
weko
Мб router ident удачный, я хз.
orignal
возможно
R4SAS
s2#1 - 187 Мб
R4SAS
s2#2 - 151
R4SAS
s2#3 - 110
R4SAS
s2#4 - 110
orignal
интересно почему у меня таких цифр не бывает?
R4SAS
мало транзита?
orignal
дохуя
R4SAS
Uptime: 7 days, 8 hours, 12 minutes, 52 seconds
R4SAS
Network status: OK
R4SAS
Network status v6: OK
R4SAS
Tunnel creation success rate: 48%
R4SAS
Received: 1494.05 GiB (1904.00 KiB/s)
R4SAS
Sent: 1539.76 GiB (1928.21 KiB/s)
R4SAS
Transit: 1429.47 GiB (1828.79 KiB/s)
R4SAS
Routers: 8218 Floodfills: 1426 LeaseSets: 0
R4SAS
Client Tunnels: 224 Transit Tunnels: 6811
R4SAS
s2#2:
R4SAS
Uptime: 7 days, 8 hours, 10 minutes, 46 seconds
R4SAS
Network status: OK
R4SAS
Network status v6: OK
R4SAS
Tunnel creation success rate: 71%
R4SAS
Received: 533.40 GiB (1106.14 KiB/s)
R4SAS
Sent: 566.05 GiB (1135.88 KiB/s)
R4SAS
Transit: 494.73 GiB (960.81 KiB/s)
R4SAS
Routers: 8927 Floodfills: 1210 LeaseSets: 107
R4SAS
Client Tunnels: 259 Transit Tunnels: 6182
R4SAS
s2#3:
orignal
а ну так у тебя просто дольше работают
R4SAS
Uptime: 7 days, 8 hours, 9 minutes, 5 seconds
R4SAS
Network status: OK
R4SAS
Tunnel creation success rate: 30%
R4SAS
Received: 2012.47 GiB (2605.07 KiB/s)
R4SAS
Sent: 2049.74 GiB (2537.37 KiB/s)
R4SAS
Transit: 1937.80 GiB (2519.80 KiB/s)
R4SAS
Routers: 7994 Floodfills: 1423 LeaseSets: 0
R4SAS
Client Tunnels: 44 Transit Tunnels: 6628
R4SAS
s2#4:
R4SAS
Uptime: 7 days, 8 hours, 9 minutes, 14 seconds
R4SAS
Network status: OK
R4SAS
Tunnel creation success rate: 34%
R4SAS
Received: 2204.63 GiB (3586.42 KiB/s)
R4SAS
Sent: 2254.70 GiB (3652.94 KiB/s)
R4SAS
Transit: 2135.65 GiB (3512.10 KiB/s)
R4SAS
Routers: 8052 Floodfills: 1407 LeaseSets: 0
R4SAS
Client Tunnels: 39 Transit Tunnels: 6617
R4SAS
ахереть, 6 Тб транзита
R4SAS
за неделю
WayBest
мало
R4SAS
WayBest: я сравниваю с прошлыми годами
R4SAS
там за месяц вытянуть Тб уже было достижение
WayBest
у меня скорости под 5к были
R4SAS
5k чего
WayBest
Киб/с
R4SAS
херня
WayBest
Киб/с7
R4SAS
я единственный тут выжимал 80 мегабит на одном роутере
WayBest
а скок рекорд?
WayBest
не единственный)
WayBest
тоже было
WayBest
но очень мало по времени
WayBest
это можно достичь если качать тонну файлов торрентом
R4SAS
но это сейчас во время атаки было
WayBest
дампы например
R4SAS
а я говорю про нормальное поведение
WayBest
так я про нормальное
R4SAS
это было 2 года (наверно) назад
WayBest
снарк выдавал 80мбит честных
WayBest
мб чуть меньше
R4SAS
снарк это снарк
R4SAS
а я про транзит
WayBest
а ну транзит да
WayBest
транзита такого не видал
orignal
куда опять лан поделавлся
orignal
ущнать бы сколько у него на его дедиках
R4SAS
на у него небось всё лежит
WayBest
у хида спросите
WayBest
мб может похвастаться)
R4SAS
HidUserZ:
WayBest
кстати, как у джеффа дела?
WayBest
он пофиксил свой трекер в итоге?
HidUserZ
чего я
WayBest
статистику показывай)))
WayBest
по транзиту
HidUserZ
Transit Tunnels: 6757
HidUserZ
средний
HidUserZ
были скачки до 11к
Vort
orignal: вот свежий график со статистикой блоков памяти за сутки аптайма узла: paste.i2pd.xyz/?6aa85a33267561c9#AJvsqVZgBiv4burzeE5xEKXuQ6ZcA3HMt4QsdvNfGAXZ
Vort
утечки пока что не видно. из чего делаю вывод, что мы можем иметь дело с фрагментацией кучи
Vort
всплески, видные на графике, и создаваемые, скорее всего, SSU2, могут плохо влиять на состояние кучи. но это надо ещё проверять. хз как пока что
Vort
то есть, куча может раздуваться пустыми блоками, оставшимися после всплесков
Vort
всплески потребления памяти бывают как минимум двух видов
Vort
один из них создаёт блоки размером 1544 байт (SSU2?), второй - 4192 байт (профили?)
Vort
вот пример недавнего всплеска второго типа: 0: 24598656 (5868 * 4192)
Vort
24 мегабайта что-то отожрало
R4SAS
4192 слишком много для профилей