~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest29533
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
`
acetone_
anon3
b3t4f4c3
fidoid
flumental
nemiga
not_bob_afk
plap
poriori
profetikla
segfault
soos
teeth
tensor
un
weko_
whothefuckami
orignal
я про виндовый
orignal
что то слишком мало ))
R4SAS
мало XP жрет, или чего?
R4SAS
не могу понять ход твоего недоумения
orignal
11 мегов
R4SAS
хрюша голая потребляет всего 110 мб, ш2зв на нем тоже мало жрет
R4SAS
тем более не разогнанный
orignal
а с чего i2pd так мало?
orignal
память она и на хрюше память ))
R4SAS
там от силы 400 роутеров в нетдб после чистки
orignal
все равно мало
orignal
обычно 30-40
R4SAS
могу запустить и подольше подержать в сети
R4SAS
интереса ради
R4SAS
проверяю транк с biglybt
R4SAS
один торрент качается с скоростью 1.8 мб/с
orignal
проверяю роутеры из того списка
orignal
пока все тоннели отлично работают
R4SAS
1 час, 12 мегов
R4SAS
1000 роутеров
R4SAS
10 транзита
R4SAS
51%
orignal
интересно все же почему это просиходит?
R4SAS
по разному выделяется память?
R4SAS
я хз
orignal
нее я про тоннели
R4SAS
там точно такой же компилятор я сейчас использовал
R4SAS
аа
R4SAS
тут я хз
R4SAS
надо чтобы он логировал эти кривые туннели
R4SAS
ибо ш2зв-ш2зв все работает
R4SAS
а тут где то затык
R4SAS
надо попробовать дать ему список своих роутеров, пусть посмотрим
R4SAS
т*
R4SAS
может есть у меня хоть какой то роутер который так же к нему "относится" ))
orignal
тут вообще что то непонятное выхолдит
orignal
ну вот с этим например затык
orignal
ebfLDsBJ9DdwwtKjBJvgqkm4IrQY4XoCNJRiH6U-s3o=
R4SAS
ну
orignal
но похоже он один такой ))
orignal
и там длинные запросы на построение работают нормально
orignal
короче похоже проблема явно с джавой
orignal
точнее получаются как то несовместимые
orignal
я еще попробую другие из списка
orignal
но не думаю что будет сильно иначе
R4SAS
это началось где то 3 месяца назад
R4SAS
начало на их ирке телепать
orignal
у меня начало после того как все грохнулось у них
R4SAS
не, раньше
R4SAS
потому что товарищей местных на жабе постоянно тут телепает
orignal
ну там могут быть другие причины
orignal
еще 5 проверил
orignal
все строятся
orignal
и тесты идут
R4SAS
1098 root 20 0 1194044 190396 6248 S 30.7 9.3 3362:15 `- ./i2pd
R4SAS
уже 190 на рег
R4SAS
orignal: на, поржать
orignal
как так?
R4SAS
)))))))
orignal
отключил таблицы?
r4sas-web
а вот так
r4sas-web
они по умолчанию отключены
r4sas-web
x64 же
orignal
разве XP это x64?
orignal
она же 32 разрядная
R4SAS
ты че
R4SAS
на интерфейс посмотри
R4SAS
это же семерка
orignal
вижу
r4sas-web
могу попробвать параллельно запустить хп и отключить там таблицы
orignal
да там всего 2 мега они
r4sas-web
а стоп
r4sas-web
у меня тут таблицы включены сейчас
r4sas-web
хотя нет
r4sas-web
тут же дефолтный конфиг
orignal
ну да
r4sas-web
да, отключены на 7
r4sas-web
на хп сейчас отключаю
r4sas-web
9.3 на старте
orignal
видать от числа роутеров зависит
r4sas-web
естественно
r4sas-web
но тут еще один ньюанс
r4sas-web
на хп используется обертка на mscvrt
r4sas-web
а на 7 я проверяю с оберткой над ucrt
orignal
а в чем разница?
r4sas-web
ucrt работает так, будто код был скомпилен с помощью MSVC
orignal
а если попробовать с самим MSVC?
r4sas-web
т.е. работа с памятью, потоками и прочей хренью выполняется по принципам msvc
r4sas-web
а это сложна
r4sas-web
ооошеньь сложнааа
r4sas-web
как минимум надо собирать boost, miniupnpc, openssl под него
r4sas-web
чтобы их в дальнейшем линковать
orignal
мишаня же как то собирал в свое время
r4sas-web
у него оно собиралось в appveyor абсолютно полностью
r4sas-web
начиная с библиотек
r4sas-web
а потом позже оно сломалось
orignal
потом на openssl перешли
orignal
точнее это было так что я забил
orignal
у меня с openssl собралсось и запустилось все на mingw
orignal
потому VS стал не нужен
R4SAS
2 часа аптайма на семерке, 7.8 мб памяти
R4SAS
1000 роутеров
orignal
однако
R4SAS
сейчас поставлю флаг О
R4SAS
чтобы транзит пошел нормально
R4SAS
и порт проброшу
orignal
ты думаешь под лиунксом много мегабайт отжирают либы?
R4SAS
возможно сам libc
R4SAS
начался транзит, начало поднимать потребление
Bergsecretpiratehaus
<Bergsecretpiratehaus> <r4sas-web> я уже 2 года жду пока он перепишет активити чтобы не убивался сервис при убийстве главного окна
Bergsecretpiratehaus
<Bergsecretpiratehaus> <r4sas-web> воз и ныне там - нахуй не нада, это жвм а не этот ваше кернел моуд
Bergsecretpiratehaus
это надо приложение в приложении как-то
Bergsecretpiratehaus
я так ещё не пробовал
Bergsecretpiratehaus
то есть у тебя в ОЗУ будет ДВЕ жвми
Bergsecretpiratehaus
жвмки
Bergsecretpiratehaus
мож нахуй? думаю нахуй.
orignal
zlatinb как дела с тестовой сетью?
zlatinb
ещо обдумаваю сценарии
zlatinb
нужни либо два теста а - 1 жава осталние i2pd и наоборот
orignal
фйлится только джава через i2pd
orignal
потому что у меня все работает нормально из того списка
orignal
надо если возпроизводится посмотреть какую ошибку i2pd пишет
zlatinb
тогда сделаю етот тест сначало
zlatinb
все идет медленно потомучто за каждою конфигурацию надо рисиид сначало полнить, но ето мои проблемьй
R4SAS
zlatinb: создаешь все инстансы, останавливаешь их
R4SAS
5 секунд достаточно
R4SAS
и потом собираешь router.info со всех нод, пихаешь в ресид
zlatinb
да, так и буду делать
R4SAS
orignal: почти 3 кача
R4SAS
часа***
R4SAS
3700 роутеров
R4SAS
330 транзита
R4SAS
16 мб
orignal
ну это норма
R4SAS
это слишком хорошо
R4SAS
вопросы по коду
orignal
задавай
R4SAS
htobe32buf (ssu + I2NP_SHORT_HEADER_EXPIRATION_OFFSET, bufbe64toh (header + I2NP_HEADER_EXPIRATION_OFFSET)/1000LL);
R4SAS
conversion from 'uint64_t' to 'uint32_t', possible loss of data
orignal
так оно и есть что написано
orignal
короче мы из миллисекунд делаем секунда
R4SAS
как побороть? указать тип перед значением?
orignal
время в миллисекундах там 8 байт а в секундах 4
orignal
(uint32_t)bufbe64toh
orignal
вот так написать
R4SAS
а если conversion from 'size_t' to 'uint16_t', possible loss of data
orignal
аналогично
R4SAS
SetSize (len - offset - I2NP_HEADER_SIZE);
orignal
мы передмаем размер как size_t
orignal
но протокол позволяет 64K максимум
R4SAS
ты догадываешься откуда такие варнинги?
orignal
думаю все новые компиляторы
R4SAS
нет
R4SAS
msvc
R4SAS
)))
orignal
ну и откуда?))
orignal
ты таки взялся за это? ))
R4SAS
я посмотреть захотел
R4SAS
собрал набор библиотек, скомпилил zlib, miniupnpc
R4SAS
буст и опенссл взял скомпиленые
R4SAS
но блин, буст ломает сборку в FS.cpp
R4SAS
boost/asio/detail/socket_types.hpp(24): fatal error C1189: #error: WinSock.h has already been included
R4SAS
хотя я не вижу где жто происходит
R4SAS
так что в ступоре (как и в прошлые разы)
orignal
там где то надо порядок поменять
orignal
я помню такое давным давно было
R4SAS
ясно что надо, но только где
orignal
не помню
orignal
буст под виндой это беда ))
orignal
кстати
orignal
в госткойне в makefile какой то параметр был на этот счет
orignal
я там натыкался
R4SAS
хз хз
R4SAS
посмотрю
orignal
ладно пойду таймстампы делать
R4SAS
aga
orignal
а чего в i2pendian год не поправил,))
R4SAS
еще успею
R4SAS
там надо добавить проверку на MSVC
R4SAS
ибо тут нет свапа
orignal
понял
R4SAS
sum uint16_t
R4SAS
ret uont8_t
R4SAS
точнее его буффер
R4SAS
переполнения не будет?
orignal
счас
orignal
будет
orignal
так переполнение уходит в carry
R4SAS
значит спокойно отдаю uint8_t?
orignal
да
R4SAS
лишь бы не было что отсчет будет неверным
R4SAS
и не прилетело туда вместо 270 например 5
orignal
куда я не понял
R4SAS
если sum будет 270 (что больше uint8_t)
R4SAS
то что будет если явно указывать?
orignal
270 % 256 отдаст
R4SAS
туда отдаст 255 или 15
R4SAS
(15, не 5, опечатался)
orignal
15
orignal
255 никогда не будет
R4SAS
так и в carry будет 15 тогда
R4SAS
нет?
orignal
нет
orignal
1 там будет
R4SAS
эмм
R4SAS
от 270 снимаем 8 бит, как там будет 1 ?
R4SAS
хотя да, понял
R4SAS
тогда почему ему не нравится
R4SAS
warning C4333: '>>': right shift by too large amount, data loss
orignal
не знаю
orignal
все там в порядке
R4SAS
uint64_t GetSecondsSinceEpoch ();
R4SAS
а почему uint64_t?
R4SAS
в garlic везде идет uint32_t ts = i2p::util::GetSecondsSinceEpoch ();
R4SAS
)))
orignal
не помню
orignal
думаю потому что функция внутри так возвращает
orignal
ну для секунд 4 байт хватит
R4SAS
static uint64_t GetLocalSecondsSinceEpoch ()
R4SAS
return std::chrono::duration_cast<std::chrono::seconds>( std::chrono::system_clock::now().time_since_epoch() ).count ();
R4SAS
видать из-за этого
R4SAS
сейчас проверю
R4SAS
эм
orignal
знаешь че?
R4SAS
std::chrono::seconds duration</*signed integer type of at least 35 bits*/>
R4SAS
что
orignal
надо чтобы эта функция возвращала auto
orignal
но это только в C++17 есть
R4SAS
не вариант
orignal
почнму?
R4SAS
не везде у нас 17
orignal
я объясняю откуда uint64_t
orignal
так что оставим как есть
orignal
в 2036 года вроде превысит 4 байта
R4SAS
так а чего делать с uint32_t ts в garlic?
orignal
ничего пока что
R4SAS
в 2038
orignal
в какой это строке?
orignal
мне надо понять логику там
R4SAS
61, 123, 138, 365, 384, ...
R4SAS
крч везде где i2p::util::GetSecondsSinceEpoch ()
R4SAS
но нсть такое место
R4SAS
ts*1000LL > m_SharedRoutingPath->remoteLease->endDate
R4SAS
строка 50
orignal
в Garlic.cpp что то не вижу
R4SAS
и тут получается что uint32_t * int64_t
orignal
ну это будет in64_t на выходе
R4SAS
то то и оно, что будет int64_t
R4SAS
а в m_SharedRoutingPath->remoteLease->endDate у тебя uint64_t
orignal
я знаю че
orignal
наверное там раньше возвращало uin32_t
orignal
а я потом поменял на uin64_t
orignal
а где вызывается нет
orignal
короче пох
R4SAS
крч везде писать так?
R4SAS
uint32_t ts = (uint32_t)i2p::util::GetSecondsSinceEpoch ();
orignal
нет
orignal
везде uin32_t заменить на auto ))
R4SAS
хорошо
orignal
ну смотреть что если куда копируется побайтно если то не надо
orignal
то есть делать с умом надо
mabu
а разве произведение uint32_t и int64_t не переполнит int64_t
R4SAS
tags->tagsCreationTime = i2p::util::GetSecondsSinceEpoch ();
R4SAS
как пример, чего тут делать
R4SAS
mabu: нет
R4SAS
в этом случае по крайней мере
orignal
оставить как есть
R4SAS
а вот оно ругается
orignal
конечно
R4SAS
tagsCreationTime это uint32_t
orignal
но надо ближе к 2038 переделать ))
orignal
я не хочу туда uin64_t пихать
orignal
приводи к uin32_t и комметарий "исправить до 2038 года" ))
R4SAS
lol
R4SAS
сейчас глянем чего будет с auto
orignal
нормально будет
orignal
все пошел время чинить
R4SAS
так параллельно сюда глядя сиди)
R4SAS
я так же сижу ведь)
orignal
так я еще типа на работе )))
R4SAS
все с тобой ясно)
orignal
с дегсом ругаюсь попутно ))
R4SAS
сюда приглашай его еще)
orignal
не хочет
orignal
влом ему i2p запускать
orignal
и ygg влом
orignal
и вообще ему все влом ))
mf2
Hello! (Sorry for not speaking russian) I'm trying to use idk's goSam library to write a Gemini client. It works on java I2P, but not on i2pd which I use. I've posted on zzz.i2p, and someone thought I should try my luck in this channel. I've described my problems in this post: zzz.i2p/posts/17816
mf2
Seems that 1st time it works, but not 2nd time I try to load a page. The goSam lib does a SESSION CREATE STYLE=STREAM ID=2133283415 and reuses the same ID for next time. Sometimes, rarely, it works a 2nd time by using ID+1 and doing a DESTINATION=TRANSIENT (whatever that means), but mostly it fails. It _always_ fails the third time.
orignal
do it with some delay
orignal
like 30 seconds
orignal
there is an issue with SAM in i2pd
orignal
session is not get closed immediately
orignal
due some race conditions
mf2
Ok, and nothing that can be worked around in some other way? The gemini client is like a http protocol, only scaled down heavily, and asking the user to wait 30 seconds between every page load is .. well, not optimal. :)
mf2
And I've waited several minutes between each reload, and the same thing happens.
orignal
my questiion is
orignal
why do you even to recreat SAM session?
orignal
usually you shouldn't
orignal
once you create it you should keep that connection alive
orignal
and you need to recreate it rarely
orignal
like restart, etc.
mf2
fair question, not sure why, I'm basing my implementation on idk's work and it is done that way in his software.
orignal
then ask him
orignal
I need to understand this use case
orignal
and see what can be dobe
orignal
if you really need to do it
orignal
remeber we run goscoin for years on many nodes without any problems
orignal
and it's SAM
zlatinb
как можно заставить флудфил?
R4SAS
zlatinb: включить?
zlatinb
да
R4SAS
--floodfill=true
R4SAS
либо в конфиг
R4SAS
там параметр есть
mf2
In my mind, maybe a SESSION CREATE STYLE=STREAM, and then SESSION CONNECT should work fine?
zlatinb
floodfill=true ?
orignal
в кофиге включить явно
R4SAS
да
zlatinb
спосибо
orignal
mf2 SESSION CREATE creates a new local destination
R4SAS
опять через О )))
orignal
SESSION CONNECT creats a stream from that destination
R4SAS
сп_а_сибо )
orignal
R4SAS не забывай что у них падежей нет ))
mf2
orignal: Ah, not well versed in the intricacies of SAM, sorry about that.
R4SAS
orignal: да про это я ничего не говорю, но тут не в падеже дело)
orignal
session is long live thing
orignal
stream is short live thing
orignal
ну так ))
orignal
короче я бы болгарски говорить не смог ))
orignal
*по
mf2
orignal: so when you create a STREAM with a certain ID, could you reuse it, or should one create a new ID for each transaction?
orignal
no, it must be unique
orignal
sorry I meant session
orignal
for stream you sepcify session id only
orignal
and such session must exist
orignal
there is streamid but it's internal thing
orignal
SAM knows nothing about it
mf2
orignal: the thing is, the error message is "DUPLICATE_ID", like it is trying to create the same ID twice.
orignal
it's for SESSION CREATE
mf2
So, what should one use instead of SESSION CREATE?
orignal
not STREAM CONNECT
orignal
different messages
orignal
you call SESSION CREATE once
orignal
it creates new local destination
orignal
then you open another connection and call STREAM CONNECT using that sessinon id
orignal
and you don't close SESSION CREATE socket
mf2
orignal: so the error is in goSam in that case?
orignal
idk
mf2
:)
orignal
I'm saying that duplicate id is error message for SESSION CREATE
orignal
meaning exactly what it says
mf2
orignal: ok
mf2
just trying to wrap my head around how this works. I'm a bit thick..
orignal
read SAM specs first
mf2
aight, will do. Thanks
orignal
everything is explained there
mf2
aight, I'll dig into it. Thanks for the clarification :)
R4SAS
orignal: ssize_t payloadLen = packet->len - (packet->GetPayload () - packet->buf);
R4SAS
почему именно signed?
orignal
там надо ptrdiff_t скорее всего
orignal
аааа я знаю
orignal
там же дальше проверка есть на минус
orignal
если минус то ошиька
orignal
значит что мы за пределы буфера вылезли
R4SAS
это да, но я вот хз чем заменить ssize_t тут
orignal
а чем он плох?
R4SAS
не знает mvsc такого
orignal
нету такого типа что ли?
R4SAS
int16_t я так понимаю
orignal
int64_t
orignal
а ptrdiff_t нету?
R4SAS
не знаю, сейчас гляну
orignal
это то же самое что ssize_t
R4SAS
есть
R4SAS
нельзя разве просто packet->GetPayload () и packet->buf сравнить?)
R4SAS
точнее.. ну ты понял
R4SAS
хотя лишняя работа
R4SAS
дважды подсчитывать
orignal
ну я не помню почему так сделал
orignal
замени на ptrdiff и все
R4SAS
уже
Bergsecretpiratehaus
R4SAS, тебе тоже напоминать когда ты постоянно одни и те же ошибки в русском делаешь?
Bergsecretpiratehaus
и оригнал кст тоже
R4SAS
Bergsecretpiratehaus: тебе ни кто не мешает этого делать
R4SAS
но ответ ты уже знаешь
R4SAS
тебе лось уже говорил какой)
Bergsecretpiratehaus
не помню
Bergsecretpiratehaus
да и похеру
Bergsecretpiratehaus
прост бросилось в глаза когда ты zlatinb скорректировал
R4SAS
до этого делал таргет для ninja
R4SAS
теперь для msvc самого
R4SAS
через cmake генерирую проект
R4SAS
если нормально настроить... то мб и соберется
R4SAS
не, нафиг
R4SAS
гнилое дело как по мне
R4SAS
win7
R4SAS
8 часов
R4SAS
4100 роутеров
R4SAS
360 транзита
R4SAS
21 мб
orignal
неплохо