~R4SAS
                        
                        
                            ~acetone
                        
                        
                            ~orignal
                        
                        
                            ~villain
                        
                        
                            &N00B
                        
                        
                            +Xeha
                        
                        
                            AreEnn
                        
                        
                            GFW
                        
                        
                            Ken_
                        
                        
                            Nobody
                        
                        
                            Opax
                        
                        
                            WebClient95
                        
                        
                            anon
                        
                        
                            anontor
                        
                        
                            anonuser
                        
                        
                            b3t4f4c3
                        
                        
                            deserving-stegosaur
                        
                        
                            duanin2
                        
                        
                            fidoid
                        
                        
                            fujifilm
                        
                        
                            gobo
                        
                        
                            halloy1341
                        
                        
                            iiii
                        
                        
                            karamba_i2p
                        
                        
                            leopold
                        
                        
                            mareki2p
                        
                        
                            negative_rock127
                        
                        
                            nik0tr
                        
                        
                            not_bob_afk
                        
                        
                            ntty
                        
                        
                            osoznayka
                        
                        
                            poriori
                        
                        
                            profetikla
                        
                        
                            rc13
                        
                        
                            shaye
                        
                        
                            slfd
                        
                        
                            sonya
                        
                        
                            teeth
                        
                        
                            un
                        
                        
                            weko_
                        
                        
                            КрутыеБобры]]]]]]]]]]]]]
                        
                        
                            гомаzкатин_v
                        
                    
                    
                        orignal
                    
                    
                        красота i2pd с выключнными таблицами эль-гамаля всего 16 мегов занимает
                    
                
                
                    
                        HidUser0
                    
                    
                        Топ
                    
                
                
                    
                        orignal
                    
                    
                        ну так если выключить SSU то эти таблицы не нужны
                    
                
                
                    
                        R4SAS
                    
                    
                        ну... если не учитывать что где то подтекает - да
                    
                
                
                    
                        R4SAS
                    
                    
                        ssu2-only: 108M
                    
                
                
                    
                        R4SAS
                    
                    
                        оптимизировать еще много придется
                    
                
                
                    
                        R4SAS
                    
                    
                        кстати, delete t не спасло
                    
                
                
                    
                        R4SAS
                    
                    
                        в данный момент 152М
                    
                
                
                    
                        orignal
                    
                    
                        ну а ты как думал?
                    
                
                
                    
                        orignal
                    
                    
                        ты этим заткнул valgrind но не решил проблему
                    
                
                
                    
                        orignal
                    
                    
                        ясен пень что подтекает дохуя где
                    
                
                
                    
                        R4SAS
                    
                    
                        сейчас конкретно ни где не течет кроме боба
                    
                
                
                    
                        R4SAS
                    
                    
                        ssu2 я не считаю
                    
                
                
                    
                        orignal
                    
                    
                        так это понятно
                    
                
                
                    
                        R4SAS
                    
                    
                        придется опять запустить вируалку
                    
                
                
                    
                        orignal
                    
                    
                        я про ssu2 и говорю надо смотреть где течет
                    
                
                
                    
                        R4SAS
                    
                    
                        только как то надо продержать её неделю минимум живой
                    
                
                
                    
                        orignal
                    
                    
                        в бобе надо логику смотреть
                    
                
                
                    
                        orignal
                    
                    
                        а в ssu2 надо для начала пул пакетов сделать
                    
                
                
                    
                        R4SAS
                    
                    
                        такой же?
                    
                
                
                    
                        orignal
                    
                    
                        ну как в NTCP2
                    
                
                
                    
                        orignal
                    
                    
                        на самом деле там еще дохуя надо
                    
                
                
                    
                        orignal
                    
                    
                        просто многое не сделано
                    
                
                
                    
                        R4SAS
                    
                    
                        на s4 я спокойно могу запустить с valgrind
                    
                
                
                    
                        R4SAS
                    
                    
                        это там где reg не получится ибо озу маловато
                    
                
                
                    
                        R4SAS
                    
                    
                        так что ssu2 можно будет подампать
                    
                
                
                    
                        orignal
                    
                    
                        еще пока рано
                    
                
                
                    
                        orignal
                    
                    
                        не та стадия
                    
                
                
                    
                        orignal
                    
                    
                        там скорее всего сессии не удаляются
                    
                
                
                    
                        orignal
                    
                    
                        я с этим разберусь
                    
                
                
                    
                        R4SAS
                    
                    
                        я в очередной раз пошел смотреть чего не так с бобом
                    
                
                
                    
                        R4SAS
                    
                    
                        пытаюсь понять где может оставаться
                    
                
                
                    
                        orignal
                    
                    
                        у тебя только lookup ?
                    
                
                
                    
                        R4SAS
                    
                    
                        ???
                    
                
                
                    
                        orignal
                    
                    
                        но команда там
                    
                
                
                    
                        orignal
                    
                    
                        может дело вовсе не в бобе в запросах лизсета в принципе
                    
                
                
                    
                        R4SAS
                    
                    
                        сколько адресов опрашиваю?
                    
                
                
                    
                        orignal
                    
                    
                        просто обычно их запращивают не так часто
                    
                
                
                    
                        R4SAS
                    
                    
                        не совсем понял вопрос
                    
                
                
                    
                        orignal
                    
                    
                        ну проблема может быть не в коде боба
                    
                
                
                    
                        orignal
                    
                    
                        а в дестинейшине
                    
                
                
                    
                        orignal
                    
                    
                        с запросом лизсета
                    
                
                
                    
                        R4SAS
                    
                    
                        он по идее вычищается
                    
                
                
                    
                        orignal
                    
                    
                        он довольно сложный
                    
                
                
                    
                        R4SAS
                    
                    
                        stop -> clean
                    
                
                
                    
                        orignal
                    
                    
                        нууу он же netdb дергает внутри
                    
                
                
                    
                        R4SAS
                    
                    
                        и если я правильно понимаю сам LocalDestination зануляется в конце
                    
                
                
                    
                        R4SAS
                    
                    
                        т.е. все структуры с дестом должны зачищены быть
                    
                
                
                    
                        orignal
                    
                    
                        должны
                    
                
                
                    
                        orignal
                    
                    
                        но может что то в netdb осталось
                    
                
                
                    
                        R4SAS
                    
                    
                                BOBDestination::~BOBDestination ()
                     
                
                
                    
                        R4SAS
                    
                    
                                {
                    
                
                
                    
                        R4SAS
                    
                    
                                        delete m_OutboundTunnel;
                    
                
                
                    
                        R4SAS
                    
                    
                                        delete m_InboundTunnel;
                    
                
                
                    
                        R4SAS
                    
                    
                                        i2p::client::context.DeleteLocalDestination (m_LocalDestination);
                     
                
                
                    
                        R4SAS
                    
                    
                                }
                    
                
                
                    
                        R4SAS
                    
                    
                        м..
                    
                
                
                    
                        orignal
                    
                    
                        гооворю же там сложная логика
                    
                
                
                    
                        orignal
                    
                    
                        я бы начал копать в эту сторону
                    
                
                
                    
                        R4SAS
                    
                    
                        тут?
                    
                
                
                    
                        R4SAS
                    
                    
                        auto leaseSet = localDestination->FindLeaseSet (addr->identHash);
                     
                
                
                    
                        R4SAS
                    
                    
                        на рег опрос узлов происходит раз в час
                    
                
                
                    
                        orignal
                    
                    
                        нет тут простой
                    
                
                
                    
                        orignal
                    
                    
                        там где запрос  в сеть идет
                    
                
                
                    
                        orignal
                    
                    
                        там куча флудфилов опрашивается
                    
                
                
                    
                        orignal
                    
                    
                        создается список
                    
                
                
                    
                        R4SAS
                    
                    
                        localDestination->RequestDestination (addr->identHash, requstCallback)
                     
                
                
                    
                        orignal
                    
                    
                        проверяется опрашивали ли уже
                    
                
                
                    
                        orignal
                    
                    
                        вот да
                    
                
                
                    
                        orignal
                    
                    
                        вот если эту строчку на вызывать
                    
                
                
                    
                        orignal
                    
                    
                        а коллбэк с nullptr и посмотреть будет ли течь
                    
                
                
                    
                        R4SAS
                    
                    
                        так опрос сломается ведь
                    
                
                
                    
                        orignal
                    
                    
                        так ты не на настоящем reg
                    
                
                
                    
                        orignal
                    
                    
                        ну и не учитывай результаты опроса
                    
                
                
                    
                        orignal
                    
                    
                        я бы стал делать там
                    
                
                
                    
                        R4SAS
                    
                    
                        это понятно
                    
                
                
                    
                        R4SAS
                    
                    
                        я там все равно делаю опрос с дампом 
                    
                
                
                    
                        R4SAS
                    
                    
                        в вм
                    
                
                
                    
                        R4SAS
                    
                    
                        нет запросов - нет утечек
                    
                
                
                    
                        R4SAS
                    
                    
                        ни одной ошибки не вылезает в valgrind
                    
                
                
                    
                        R4SAS
                    
                    
                        про 1160 байт например
                    
                
                
                    
                        R4SAS
                    
                    
                        или например того же Conditional jump or move depends on uninitialised value(s)
                    
                
                
                    
                        R4SAS
                    
                    
                        который как раз по стеку был в 
                    
                
                
                    
                        orignal
                    
                    
                        ну а ты чего ожидал?
                    
                
                
                    
                        R4SAS
                    
                    
                        i2p::client::LeaseSetDestination::RequestLeaseSet
                     
                
                
                    
                        R4SAS
                    
                    
                        а много чего могу ожидать
                    
                
                
                    
                        orignal
                    
                    
                        ну то что я и предполагал
                    
                
                
                    
                        orignal
                    
                    
                        надо внутри нее копать
                    
                
                
                    
                        R4SAS
                    
                    
                        ну... в нем только гарлик и elgamal
                    
                
                
                    
                        orignal
                    
                    
                        нет там должен быть поиск флудфила
                    
                
                
                    
                        orignal
                    
                    
                        по DHT
                    
                
                
                    
                        orignal
                    
                    
                        список уже опрошенных
                    
                
                
                    
                        orignal
                    
                    
                        вот метод RequestLeaseset
                    
                
                
                    
                        orignal
                    
                    
                        там вся эта ботва сидит
                    
                
                
                    
                        R4SAS
                    
                    
                        LeaseSetDestination::RequestLeaseSet?
                     
                
                
                    
                        orignal
                    
                    
                        да
                    
                
                
                    
                        orignal
                    
                    
                        короче копать надо там
                    
                
                
                    
                        R4SAS
                    
                    
                        мне кажется что после успешного запроса не чистится m_LeaseSetRequests
                    
                
                
                    
                        orignal
                    
                    
                        так проверь
                    
                
                
                    
                        R4SAS
                    
                    
                        хотя не
                    
                
                
                    
                        R4SAS
                    
                    
                        оно вроде в HandleDatabaseStoreMessage подчищается
                    
                
                
                    
                        orignal
                    
                    
                        говорю же там все сложно
                    
                
                
                    
                        polistern
                    
                    
                        Ужас какой-то, я открыла самый настоящий ящик Пандоры с багами)
                    
                
                
                    
                        orignal
                    
                    
                        в сэме?
                    
                
                
                    
                        orignal
                    
                    
                        ну так а то ж
                    
                
                
                    
                        orignal
                    
                    
                        похоже до тебя там никто датаграммы не использовал ))
                    
                
                
                    
                        orignal
                    
                    
                        то что в iMule это не настоящие
                    
                
                
                    
                        polistern
                    
                    
                        Не, у себя, один пакет криво парсился, я его починила, а за ним целая вереница всякого))
                    
                
                
                    
                        polistern
                    
                    
                        А про падения - если выдерживаю паузу с минуту перед перезапуском, то тогда не падает.
                    
                
                
                    
                        orignal
                    
                    
                        а ну это бывает
                    
                
                
                    
                        orignal
                    
                    
                        так у R4SAS-а было другое падение с pboted тоже на датаграммах
                    
                
                
                    
                        polistern
                    
                    
                        Думала 2 недели назад релиз сделать и немного застряла. Зато теперь все основные баги исправлены))
                    
                
                
                    
                        polistern
                    
                    
                        А как у него падал?
                    
                
                
                    
                        orignal
                    
                    
                        на отслыке датаграммы внутри ObtainDSession вроде
                    
                
                
                    
                        orignal
                    
                    
                        короче похоже там race condition
                    
                
                
                    
                        orignal
                    
                    
                        а я  настолкьо занят SSU2 что мне некогда разбираться
                    
                
                
                    
                        polistern
                    
                    
                        Ну в основном, как я понимаю, падал pboted, перезапускался и ронял i2pd. Сейчас основные причины пофиксила почти все, должно быть значительно стабильнее.
                    
                
                
                    
                        orignal
                    
                    
                        понимаешь то что в сэме оно понятно
                    
                
                
                    
                        orignal
                    
                    
                        почпму
                    
                
                
                    
                        orignal
                    
                    
                        но у него падало внутри датаграмного кода безотносителдьно сэма
                    
                
                
                    
                        polistern
                    
                    
                        О как
                    
                
                
                    
                        orignal
                    
                    
                        разбираться надо говорю
                    
                
                
                    
                        orignal
                    
                    
                        же
                    
                
                
                    
                        polistern
                    
                    
                        Кто бы спорил)
                    
                
                
                    
                        orignal
                    
                    
                        gпросто раньше датаграммы так активно не использовались
                    
                
                
                    
                        polistern
                    
                    
                        Будут ещё активнее)
                    
                
                
                    
                        polistern
                    
                    
                        Нужен совет по одному багу. А то всё, что нахожу, как то не про мою проблему. Или криво формулирую))
                    
                
                
                    
                        orignal
                    
                    
                        конечно будут
                    
                
                
                    
                        polistern
                    
                    
                        Обработчик пакетов, получая пакет, ищет для него обработчик. Если обработчика нет - посылаем ответ с ошибкой. Есть обработчик - передаём ему.
                    
                
                
                    
                        polistern
                    
                    
                        НО если обработка затягивается, то получаются проблемы с обработкой новых пакетов. Вот сейчас не знаю как лучше всего запускать обработчик, чтобы не блокировал цикл.
                    
                
                
                    
                        polistern
                    
                    
                        В новом треде - может быть слишком много тредов. Или зря переживаю?
                    
                
                
                    
                        orignal
                    
                    
                        я бы в другой тред перекидывал как я делаю в SSU
                    
                
                
                    
                        polistern
                    
                    
                        Видела ещё вариант с detach, типа когда закончит, тогда закончит. Но я переживаю, что какие-то могут не закончить никогда))
                    
                
                
                    
                        polistern
                    
                    
                        orignal, это?    github.com/PurpleI2P/i2pd/blob/fbb961b43c8ac9e31e50542a0f60f92b0e513df5/libi2pd/SSU.cpp#L316   
                    
                
                
                    
                        orignal
                    
                    
                        да оно
                    
                
                
                    
                        orignal
                    
                    
                        то есть я выбираю пакеты из сокета
                    
                
                
                    
                        orignal
                    
                    
                        и передаю их в сервис который крутится в другом треде на обработку
                    
                
                
                    
                        polistern
                    
                    
                        io_service сам следит за этим тредом получается?
                    
                
                
                    
                        orignal
                    
                    
                        нет там выше есть код
                    
                
                
                    
                        orignal
                    
                    
                        где его метод run бежит в отдельном треде
                    
                
                
                    
                        orignal
                    
                    
                        а post да грубо говоря ставит там в очередь задании
                    
                
                
                    
                        orignal
                    
                    
                        а run ее разгребает
                    
                
                
                    
                        orignal
                    
                    
                        если не хочешь io_service посмотри как в Tunnels.cpp сделана очередь
                    
                
                
                    
                        orignal
                    
                    
                        там тоже тоннельное сообещние передается на обработку в другой тред
                    
                
                
                    
                        polistern
                    
                    
                        Ок, сейчас гляну
                    
                
                
                    
                        orignal
                    
                    
                        в SSU2 кстати более прозрачно сделано
                    
                
                
                    
                        orignal
                    
                    
                        там ровно 2 треда
                    
                
                
                    
                        orignal
                    
                    
                        один для чтения сокетов а второй для обработки
                    
                
                
                    
                        polistern
                    
                    
                        Вроде разобралась, попробую с io_service.
                    
                
                
                    
                        HidUser0
                    
                    
                        [16:46] <~orignal> один для чтения сокетов а второй для обработки
                    
                
                
                    
                        HidUser0
                    
                    
                        Но ведь если поток обработки зависнет, то эффект будет такой же, если бы все было в один поток
                    
                
                
                    
                        `
                    
                    
                        boost обсуждаете?
                    
                
                
                    
                        polistern
                    
                    
                        Вроде сделала. Когда зависнет погляжу))
                    
                
                
                    
                        orignal
                    
                    
                        HidUser0 зато не потерется пакет
                    
                
                
                    
                        HidUser0
                    
                    
                        Какой?
                    
                
                
                    
                        HidUser0
                    
                    
                        Следующий?
                    
                
                
                    
                        HidUser0
                    
                    
                        Будет вечно ждать поток же
                    
                
                
                    
                        orignal
                    
                    
                        по UDP который
                    
                
                
                    
                        orignal
                    
                    
                        если ты будешь в тормозном треде обрабатывать то будут дропаться
                    
                
                
                    
                        orignal
                    
                    
                        а на предмет зависания ну так там смотреть надо как сделать
                    
                
                
                    
                        polistern
                    
                    
                        Раз такое дело, то я скорее всего и сеть на endpoint переделаю. Но уже в другом релизе)
                    
                
                
                    
                        orignal
                    
                    
                        это логично
                    
                
                
                    
                        `
                    
                    
                        polistern, много осталось? По личным ощущениям.
                    
                
                
                    
                        `
                    
                    
                        До 1.0
                    
                
                
                    
                        `
                    
                    
                        Время, сестра, скажи время!11
                    
                
                
                    
                        polistern
                    
                    
                        Ну скорее до 0.9 - до конца года скорее всего, 1.0 - это уже считай другая версия протокола, там ещё думать что исправлять на будущее.
                    
                
                
                    
                        polistern
                    
                    
                        Главное на 0.9 не зависнуть на 20 лет, как Java I2P))