~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
Guest58423
Most2
Nausicaa
Nikat
Opax
Vort
`
anon3
b3t4f4c3
fidoid
guest
i
karamba_i2p
nemiga
not_bob_afk
poriori
profetikla
qend
r3med1tz
segfault
soos
teeth
uis
un
user
weko
whothefuckami
woodwose
onon
Лось, ты уже всё, или ещё соображаешь?
onon
Похоже, уже всё. До завтра не беспокоить...
orignal
чего хотел?
orignal
я знаят был
onon
Вопрос есть
onon
По строительству туннелей
onon
Кто-то хочет построить через меня туннель, шлёт мне сообщение, я своё шифрование снимаю, смотрю, мне нужно соединиться с U роутером, чтобы передать сообщение дальше.
onon
Мои дальнейшие действия?
orignal
ну так с U роутеров может быть несколько способов соединиться
orignal
ну вот с полсдениими изменениями смотрим нету ли напрмямую
orignal
только если дргиз вариантов нет долбим интродьюсер
onon
Ну, допустим интродьюсера ищем
orignal
ну нашли и соединяеся
onon
Вот это сообщение, котрое нам нужно передать дальше, оно где всё это время храниться будет?
orignal
если не соединились вызвовется onDrop и тоннель этот удалится
orignal
ну I2NP сообщение в Peer будет в Transports
orignal
там std::vector<std::shared_ptr<i2p::I2NPMessage> > delayedMessages;
orignal
там и будет сидеть пока не соединится
orignal
*** отошел ***
onon
Большая там очередь?
onon
Или бесконечная?
orignal
бесконечная
orignal
но там же попытки соединиться не бесконченые
onon
Ок, буду разбираться дальше.
onon
А вроде не бесконечная. const int MAX_NUM_DELAYED_MESSAGES = 150;
orignal
наверное да
orignal
кстати маловато я бы сказал
WebClient6
я компилирую i2pd каждый раз из исходников перед запуском
relaybot
13mittwerkz: как предотвратить ддос атаку с айтупи?
Leopold
)))
Leopold
С такой-то скоростью даже телефонная линия выдержит
onon2
Словил странное зависание. На одном из сервисов закончились исходящие туннели, все стримы зависли и не хотели самоубиваться. При этом тред Destination упёрся в одно ядро и исходящие туннели на этом сервисе перестали строиться совсем.
onon2
На других сервисах в это же время исходящие строились нормально. Так продолжалось больше часа. При попытке перезагрузить роутер, он отказался умирать и был принудительно убит лично мной.
orignal
на чем именно уперся?
orignal
ты че не мог gcore сделать и посмотреть?
onon2
Я не уметь
orignal
или подцепиться gdb
orignal
а почему стримы не убивались
orignal
при попытке выбора другого исходящего
onon2
Даже принудительно рукам не убивались стримы
onon2
Вероятно, там была попытка выбора другого туннеля, а туннелей не было
orignal
ну не было должен стрим закрываться
onon2
Ты мне лучше другое подскажи, я всё не могу найти где сообщения на построение туннеля (наши и транзитные) помечаются как OnDrop. Если бы ты меня носом ткнул, было бы замечательно.
onon2
А то я вижу, где они конкретно дропаются, а где помечаются "к удалению" не вижу.
orignal
LogPrint (eLogError, "Streaming: No outbound tunnels in the pool, sSID=", m_SendStreamID);
orignal
вот такая ошибка в логе была?
onon2
Логов только критикал был
orignal
NetdbRequest.cpp посмотри
orignal
msg->onDrop = [this, dest]() { this->SendNextRequest (dest); };
orignal
пример
onon2
Ага, вижу
orignal
если ты про тоннели счас покажу
orignal
if (transitTunnel) msg->onDrop = onDrop;
orignal
в I2NPProtocol.cpp
orignal
auto onDrop = [transitTunnel]()
orignal
{
onon2
Да, нашёл, буду разбираться с логикой
orignal
насчет стримов да есть проблема в коде
orignal
поправлю
orignal
а нет там вроде все нормально
Vort
если тред завис, то это и есть причина
Vort
я тоже на такое попадал, из-за своей ошибки
Vort
то есть, надо разбираться, почему тред висит
orignal
Vort вот когда мы не можем выбрать лиз или тоннель мы ничего не делаем
orignal
а я думаю там надо вызывать Close
orignal
или Terminate
onon2
Да толку так гадать в слепую, логов нет, дампа нет. Если будет вылазить ещё, будем разбираться.
Vort
отладчиком подцепляться желательно. дампы - это сильно ограниченная система
Vort
orignal: я вспомнил об одной странности кстати. не помню, говорил я о ней или нет
orignal
Vort там к тому же надо CleanUp вызывать я удмаю
orignal
чтобы все коллбэки вызвались как надл
Vort
сейчас подробности поищу. в стримах по-моему, вызов идёт как-то не так
Vort
Stream::HandleResendTimer
Vort
m_Status = eStreamStatusReset;
Vort
Close ();
Vort
Stream::Close
Vort
Terminate
Vort
void Stream::Terminate (bool deleteFromDestination) // should be called from StreamingDestination::Stop only
Vort
тут или коммент неверный или код
orignal
думаю коммент старый
orignal
с этим надо разбираться
orignal
в часности с вызвоом коллбэков из очереди
orignal
/CleanUp (); /* Need to recheck - broke working on windows */
orignal
надо вот это проверить в чем тут дело
orignal
потому что как раз здесь вызываются коллбэки
orignal
Vort можешь попробовать откомментировать на винде это?
orignal
и пмотреть
Anonymous
R4SAS: not only did I get you 1 DEBUG backtrace, I got you 2, and they differ
Anonymous
R4SAS: are you here?
relaybot
13mittwerkz: repo.i2pd.i2p
relaybot
13mittwerkz: починити ктонить пж
`
1ВТС
relaybot
13mittwerkz: бля дорого
`
Пиццу за 10к бтс покупают. А тут всего лишь 1. Ясно с тобой..
Vort
orignal: попробовал, некоторые сценарии протестировал. но затем прямо в отладчике словил зависание системы (скорее всего, i2pd выжрал всю память)
Vort
хз, связано или нет, надо дальше разбираться
Vort
только вот как отлаживать такое зависание - не знаю
Vort
поставить процесс на паузу вовремя почти нереально
Vort
вся память выжирается секунд за 5
Vort
думаю, надо разбираться, из каких потоков Stream::Terminate может вызываться
Vort
ну и из каких потоков все объекты из Stream::CleanUp меняются
Vort
я пока что только Destination поток видел
Vort
но если вдруг ещё откуда-то может вызваться, тогда будут проблемы
Vort
в общем, явных проблем от раскомментирования CleanUp (); я не увидел
Vort
а как сделать полное покрытие тестами - чтобы проверить все возможные сценарии - не знаю
relaybot
13mittwerkz: какие есть домены у i2p кроме .i2p?
`
Blinded message
`
С васъ 1BTC.
`
Сильные и независимые используют только .b32.i2p, а остальным только жратьчодают.i2p
orignal
R4SAS говорил у него стримы зависаи
orignal
суть в том что при всяком закрытии стрима должны уведомляться те кто отправил
relaybot
13mittwerkz: вы вкурсе что вы все засекреченная агентура?
Vort
так нужна воспроизводимость. факт наличия каких-то рандомных глюков мало помогает что-либо улучшать
Vort
то есть, вопрос: какие конкретно действия нужно совершить, чтобы завесить/заглючить стримы
orignal
R4SAS говорил что серверный тоннель не закрывал соединени
Vort
это как? скачал юзер файл, допустим, а на сервере остаётся висеть соответствующий стрим уже после того, как клиент по факту отключился?
`
> mittwerkz: вы вкурсе что вы все засекреченная агентура?
`
мы с оригналом работаем в разных отделах, и не скрываем это.
relaybot
13mittwerkz: ну вот я вас и раскусил
relaybot
13mittwerkz: в очередной раз)
`
Так мы никогда не скрывали это.
orignal
нет просто браузер на открытие страницы продолжает ее как бы открывать
orignal
никогда не завершается то есть
orignal
у него такая проблема была
Vort
я похожее видел
Vort
но проявлялось рандомно
onon2
У меня тоже такая проблема, и у всех такая проблема
orignal
проблема была именно когда та строчка
orignal
потому мы ее и закомметрирвали в свое время
onon2
Ну так проблема не исчезла.
Vort
orignal: хочешь глянуть проблему с временем отправки пакета при завершении стрима?
Vort
я о ней уже говорил, может стоит сейчас расправиться?
orignal
что за проблема?
orignal
я как то упустил
Vort
было не до этого тогда
Vort
в Stream::SendPacket
Vort
стоит добавить packet->sendTime = i2p::util::GetMillisecondsSinceEpoch();
Vort
перед m_SentPackets.insert (packet);
Vort
ну мне так кажется
orignal
а там время создания?
Vort
ну там ничего сейчас не ставится, нулевое время получается
Vort
именно в Stream::SendPacket
Vort
в Stream::SendBuffer нормально
orignal
точно в констукруторе пакеты не пишется?
orignal
а при перепосылке как? или ставить только один раз когда оно 0?
Vort
sendTime (0)
Vort
Stream::SendPacket вызывается всего в 1 месте
Vort
когда стрим завершается
Vort
в остальных местах - там SendBuffer
onon2
Подтверджаю проблему, на последнем пакете высчитывается огромный RTT
onon2
Там где Stream::SendClose ()
Vort
в Stream::SendClose: m_Service.post (std::bind (&Stream::SendPacket, shared_from_this (), p));
onon2
Я не вижу времени
orignal
тогда надо
orignal
if (!pcket->sendTime) packetSendTime =
Vort
в Stream::SendBuffer и Stream::HandleResendTimer такого if нету
Vort
it->sendTime = ts; и всё
Vort
предполагается, что мы знаем, что там ноль (в случае Stream::SendBuffer)
Vort
хотя это не принципиально
Vort
я, кстати, только что провёл несколько iperf3 тестов с раскомментированным CleanUp ();
Vort
стримы создались и стримы убрались, как на клиенте, так и на сервере
Vort
не всё так просто
orignal
ну так видимо там был старый код
onon2
Там с лизсетами проблема какая-то
orignal
потмоу и я говорю что надо было проверить
onon2
Когда зависает
Vort
я считаю, что есть разные сценарии. допустим, в популярных сценариях всё ок, а в более редких - глючит
Vort
конечно, бывает, что баг сам по себе исчезает, но это редкость
Anonymous_
orignal: you son of a bitch
Vort
you'd better post stack traces...
orignal
я же говорю меня беспокоить что при вынужденном закрытии стрима отправитель ничего не получает
Anonymous_
Vort: before I do, there are some interesting function names or whatever, starting like _ZN5boost, do you know what those are?
Anonymous_
I don't want to give it away if it's deanon
Anonymous_
the name is very long without spaces
Vort
are you sure you had debugging symbols enabled?
Anonymous_
yes
Vort
because _ZN5 means name is not decoded
Anonymous_
without symbols it was ????
Vort
it looks even scarier when decoded
Anonymous_
Wait what
Anonymous_
oh
Anonymous_
Wait
Anonymous_
It's OpenBSD, could it be that it's both decoded and encoded that's printed-out?
Vort
maybe
Anonymous_
I have like #0 #1 #2 ok
Anonymous_
but
Anonymous_
but #3 #4 #5 seem to be encoded
Anonymous_
#6 #7 #8 are decoded
Anonymous_
#10 is encoded
Anonymous_
and #11 #12 and #13 are decoded (the end)
Vort
here is example from libtorrent, but it's almost the same: boost::asio::detail::win_iocp_io_context::schedule_timer<boost::asio::detail::chrono_time_traits<std::__1::chrono::steady_clock, boost::asio::wait_traits<std::__1::chrono::steady_clock>>>
Anonymous_
Also this:
Anonymous_
Reading symbols from /usr/libexec/ld.so...Error while reading shared library symbols:
Anonymous_
Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module /usr/libexec/ld.so]
Vort
lots of :: < __
`
my eyes >_<
Anonymous_
:D
Anonymous_
Vort: oh, it has asio and oost and lots of __
Anonymous_
Could this Dwarf error be the fault here?
Vort
maybe, but stack trace may be useful anyway
Anonymous_
I want to fix it xD wait
Anonymous_
oh
Anonymous_
I know
Anonymous_
Guess what
Anonymous_
it seems to be wrong gdb version or something
Anonymous_
But idiot me deleted .core filed from another crash, so I only have 1/2 corefiles
Anonymous_
Wait
Anonymous_
Vort: perhaps i2pd wasn't compiled with -O0 which is said to be best for debugging?
`
=_=
Anonymous_
Is this the consequence of no thaving -O0?
Anonymous_
someone says that switching from -g3 to only -g helps
Anonymous_
no idea what the fuck -g3 is
orignal
Vort это время касается только FIN?
Anonymous_
-g, -gline-tables-only, -gmodules
Anonymous_
Control debug information output. Note that Clang debug
Anonymous_
information works best at -O0.
Anonymous_
I probably need -gmodules
Anonymous_
-_-
Anonymous_
fuck compilers
Anonymous_
orignal: how is i2pd built? without optimization?
Anonymous_
> ifeq ($(DEBUG),yes)
Anonymous_
CXX_DEBUG = -g
Anonymous_
else
Anonymous_
CXX_DEBUG = -Os
Anonymous_
LD_DEBUG = -s
Anonymous_
endif
Anonymous_
What the fuck do I need, then?
orignal
make DEBUG=N
orignal
that's all
Anonymous_
all? what
Anonymous_
How do I do that?
orignal
with ioptiomization
orignal
and just make without optimization and debug
Anonymous_
In Makefile I have `CONFIGURE_ARGS += DCMAKE_BUILD_TYPE=DEBUG`
orignal
how to type "make"?
orignal
don't use cmake
Anonymous_
What
orignal
just use make
Anonymous_
I use OpenBSD's port and make
`
Freak
orignal
take code from github and build
orignal
cd i2pd
orignal
make
orignal
not sure how it build for OpenBSD
Anonymous_
lol I'm not on Linux
Anonymous_
OpenBSD has a ports tree
orignal
I only tried on FreedBSD
Anonymous_
oh
Anonymous_
FreeBSD is shit for ports and other stuff
orignal
I know I'm running an instance of i2pd on FreeBSD
Anonymous_
how do I know if it's cmake?
orignal
there is Makefile.bsd
Anonymous_
I know
Anonymous_
OpenBSD does a lot of things
Anonymous_
Has it's own special Makefile and patches
`
<Anonymous_> lol I'm not on Linux
`
Sure, Linux for kids. Real man uses Windows 11 Pro with Copilot,
Anonymous_
I don't see cmake anywhere
Anonymous_
Anyways I can paste the half-decoded backtrace
Anonymous_
I don't have cmake I think
Anonymous_
should I try with -gmodules?
Anonymous_
I'm not even sure BSD uses Makefile.bsd lol
Anonymous_
and
Anonymous_
good luck
Anonymous_
The 2 crashes might be different because of this:
Anonymous_
a) it seems to crash sometimes when closing qBittorrent
Anonymous_
b) it seems to crash eventually always, but the more bandwidth you use (more kb/s of torrenting, not sure if # of peers affects it), the faster it seems to crash, so more kb/s/peers = faster crash
Anonymous_
> CMake Error: Unknown argument -gmodules
Anonymous_
CMake Error: Run 'cmake --help' for all supported options.
Anonymous_
Whoops seems like OpenBSD does use cmake after all
Anonymous_
orignal: what's wrong with cmake?
orignal
I don't use cmake
orignal
cmake in i2pd is not not my project
orignal
I use only make and plain makefiles
Vort
Anonymous_: what version of i2pd these stack traces were made with?
Vort
странно, что у него номеров строчек нету. наверно таки -g не включил
Vort
"<~orignal> Vort это время касается только FIN?" да
orignal
посмотрю
orignal
наверное просто забыл
Vort
там можно время и в сам SendClose воткнуть, но я думаю, что в SendPacket - логичнее, так как по аналогии с другими местами
onon2
А ещё, раз уж ты в стримы полез, можно переделать на delay-based cc.
onon2
Как это примерно сделать я показывал.
orignal
я еще пока не полез ))
onon2
Давай уже лезь побыстрее, у нас мощности простаивают
onon2
И юзвери недовольные скоростями