-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Падает через некоторое время при совместном использовании с Vuze/Azureus на Windows 8.1 x64 #635
Comments
Через I2CP? |
Да, конечно. |
Памяти что ли не хватает? |
Падает постоянно и давно, а вот в этом месте или в разных не знаю (запускал без gdb). Позапускаю еще несколько раз. Плагин I2P Helper в паре с i2pd в целом работают как-то по-другому: когда используется javai2p в Vuze отображается например |
Странно, раньше падало стабильно, а вчера похоже действительно упало при нехватке оперативной памяти. 12 часов работает под gdb нормально. |
Я не знаю что эти числа означают и откуда они берутся. |
Мне они тоже не понятны. |
А какого то отладочного лога нет чтобы посмотреть обмен сообщениями? |
Пока что нет. Какой лучше loglevel установить? |
Я имел ввиду на стороне клиента. |
Не нашел ничего в логах Vuze, кроме записей наподобие таких |
Под виндой оно падает под понятной причины давным давно. |
Заметил разницу в az.log, правда, что за цифры и откуда берутся... javai2p Постоянно повторяется при работе с i2pd в логах: Характерная вроде только для i2pd запись в debug.log: |
I2CP.cpp |
А что должно быть? |
Просто чуть выше она объявлена |
Отличная находка. PR сделаете? |
PR не сделаю, я с git как и с программированием на вы:) Просто огромное количество I2CP: Failed to send message. No outbound tunnels напрягло. |
ну тогда я сам :) |
Стал работать подольше после замены в функции
и копипаста в функции
Но где-то течет память довольно бодро, и через некоторое время перестает работать i2phelper, в логах Vuze вылазит
|
При такой замене будет отсылаться из другого трэда, что не есть хорошо. |
Память течет вот как раз из-за этого |
Понятно. Но похоже, что azureus не устраивает то, что он не знает статус отосланного им сообщения и вот это ему нужно |
тогда следует впихнуть его в SendMsg. И там тоже post вызывать уже для другого треда. |
С утечками надо разбираться отдельно. |
Может быть и так, я не спорю:) Буду дальше наблюдать. |
На самом деле это проблема не только I2CP. |
А если выключить торренты на некоторое время не уменьшается? |
В смысле, совсем вырубить Vuze? Или остановить раздачу? Сейчас попробую совсем отрубить Vuze. |
Отключить Vuze - он должен все эти адреса вычистить. |
Отключил сейчас - изменений нет пока что. Ни в большую, ни в меньшую сторону. Посмотрю через 16 минут. |
Нет изменений по потреблению памяти. Сколько в heap съедено - назад не возвращается. |
придется искать где |
Заметил, что в логах отсутствуют записи вида |
Если датаграмых тоннелей нет то и не будет |
Датаграммы используются только в туннелях класса udpserver и udpclient |
@atnaguzin на самом деле они используются всегда если надо адрес найти, но специально не чистятся |
То есть не может быть такого, чтобы при поиске адреса назначения происходило их избыточное накопление при работе I2CP? |
Нет, там что то другое. Возможно части тоннельных сообщений не вычищаются. Эта проблема на самом деле комплексная |
Заметил какую-то странность: I2CP работает, когда статус Firewalled и транзитных туннелей немного. P.S. Может транзитные туннели и ни при чем, совсем не обратил внимания на floodfill = true. |
Если проблема продолжается, просьба открыть иссуй. Закрываю по причине не активности. |
warning: Critical error detected c0000374
Thread 48 received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 4456.0x1294]
0x00007fff90731b30 in ntdll!RtlpNtMakeTemporaryKey ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) bt
#0 0x00007fff90731b30 in ntdll!RtlpNtMakeTemporaryKey ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#1 0x00007fff90734db2 in ntdll!RtlpNtMakeTemporaryKey ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#2 0x00007fff907359b0 in ntdll!RtlpNtMakeTemporaryKey ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#3 0x00007fff9067394e in ntdll!RtlAllocateHeap ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#4 0x00007fff90670dad in ntdll!RtlAllocateHeap ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#5 0x00007fff90731e26 in ntdll!RtlpNtMakeTemporaryKey ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#6 0x00007fff906e9b60 in ntdll!memset () from C:\WINDOWS\SYSTEM32\ntdll.dll
#7 0x00007fff90670dad in ntdll!RtlAllocateHeap ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#8 0x00007fff8ee41d76 in msvcrt!malloc () from C:\WINDOWS\system32\msvcrt.dll
#9 0x000000000077af6c in operator new(unsigned long long) () at Daemon.h:64
#10 0x0000000000444cc8 in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession, (__gnu_cxx::_Lock_policy)2> >::allocate (__n=1,
#11 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession, (__gnu_cxx::_Lock_policy)2> > >::allocate (__a=, __n=1)
#12 std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession, (__gnu_cxx::_Lock_policy)2> > > (__a=)
#13 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination*, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&> (__a=..., this=0x151df8f8)
#14 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::_shared_count<i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&>(std::Sp_make_shared_tag, i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession const&, i2p::garlic::GarlicDestination*&&, std::shared_ptr<i2p::data::RoutingDestination const>&, int&&, bool&) (__a=..., this=0x151df8f8)
#15 std::__shared_ptr<i2p::garlic::GarlicRoutingSession, (__gnu_cxx::_Lock_policy)2>::__shared_ptrstd::allocator<i2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination*, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&> (__a=..., this=0x151df8f0, __tag=...)
#16 std::__shared_ptr<i2p::garlic::GarlicRoutingSession, (__gnu_cxx::_Lock_policy)2>::_shared_ptrstd::allocator<i2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&>(std::Sp_make_shared_tag, std::allocatori2p::garlic::GarlicRoutingSession const&, i2p::garlic::GarlicDestination&&, std::shared_ptr<i2p::data::RoutingDestination const>&, int&&, bool&) (__a=..., __tag=...,
#17 std::shared_ptri2p::garlic::GarlicRoutingSession::shared_ptrstd::allocator<i2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination*, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&> (__a=...,
#18 std::shared_ptri2p::garlic::GarlicRoutingSession::shared_ptrstd::allocator<i2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination_, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&>(std::Sp_make_shared_tag, std::allocatori2p::garlic::GarlicRoutingSession const&, i2p::garlic::GarlicDestination&&, std::shared_ptr<i2p::data::RoutingDestination const>&, int&&, bool&) (__a=..., __tag=..., this=0x151df8f0)
#19 std::allocate_shared<i2p::garlic::GarlicRoutingSession, std::allocatori2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination_, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&>(std::allocatori2p::garlic::GarlicRoutingSession const&, i2p::garlic::GarlicDestination_&&, std::shared_ptr<i2p::data::RoutingDestination const>&, int&&, bool&) (__a=...)
#20 std::make_shared<i2p::garlic::GarlicRoutingSession, i2p::garlic::GarlicDestination*, std::shared_ptr<i2p::data::RoutingDestination const>&, int, bool&>(i2p::garlic::GarlicDestination*&&, std::shared_ptr<i2p::data::RoutingDestination const>&, int&&, bool&) ()
#21 i2p::garlic::GarlicDestination::GetRoutingSession (this=0x13d48160,
#22 0x00000000004460ea in i2p::garlic::GarlicDestination::WrapMessage (
#23 0x0000000000438d54 in i2p::client::LeaseSetDestination::SendLeaseSetRequest (this=this@entry=0x13d48160, dest=..., nextFloodfill=..., request=...)
#24 0x0000000000439647 in i2p::client::LeaseSetDestination::HandleRequestTimoutTimer (this=0x13d48160, ecode=..., dest=...) at Destination.cpp:617
#25 0x000000000069301a in std::_Mem_fn_base<void (i2p::client::LeaseSetDestination::*)(boost::system::error_code const&, i2p::data::Tag<32> const&), true>::_M_callstd::shared_ptr<i2p::client::LeaseSetDestination&, boost::system::error_code const&, i2p::data::Tag<32>&> (__ptr=..., this=0x151dfc30)
#26 std::_Mem_fn_base<void (i2p::client::LeaseSetDestination::*)(boost::system::error_code const&, i2p::data::Tag<32> const&), true>::operator()std::shared_ptr<i2p::client::LeaseSetDestination&, boost::system::error_code const&, i2p::data::Tag<32>&, void> (__object=..., this=0x151dfc30)
#27 std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::*)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>::__call<void, boost::system::error_code const&, 0ull, 1ull, 2ull>(std::tuple<boost::system::error_code const&>&&, std::_Index_tuple<0ull, 1ull, 2ull>) (
#28 std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::*)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>::operator()<boost::system::error_code const&, void>(boost::system::error_code const&) (
#29 boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::*)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>, boost::system::error_code>::operator()() (
#30 boost::asio::asio_handler_invoke<boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>, boost::system::error_code>&, ...) (function=...)
#31 boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>, boost::system::error_code>, std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)> >(boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>, boost::system::error_code>&, std::_Bind<std::_Mem_fn<void (i2p::client::LeaseSetDestination::)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::_Placeholder<1>, i2p::data::Tag<32>)>&) (context=..., function=...)
#32 boost::asio::detail::wait_handler<std::_Bind<std::Mem_fn<void (i2p::client::LeaseSetDestination::*)(boost::system::error_code const&, i2p::data::Tag<32> const&)> (std::shared_ptri2p::client::LeaseSetDestination, std::Placeholder<1>, i2p::data::Tag<32>)> >::do_complete(boost::asio::detail::win_iocp_io_service, boost::asio::detail::win_iocp_operation, boost::system::error_code const&, unsigned long long) (owner=0x140fc080, base=)
#33 0x0000000000699986 in boost::asio::detail::win_iocp_operation::complete (
#34 boost::asio::detail::win_iocp_io_service::do_one (
#35 0x0000000000698158 in boost::asio::detail::win_iocp_io_service::run (
#36 0x0000000000436f78 in boost::asio::io_service::run (this=0x13d48228)
#37 i2p::client::LeaseSetDestination::Run (this=0x13d48160)
#38 0x000000000077bc40 in execute_native_thread_routine ()
#39 0x00000000006385a4 in pthread_create_wrapper ()
#40 0x00007fff8ee50b13 in msvcrt!_strupr ()
from C:\WINDOWS\system32\msvcrt.dll
#41 0x00007fff8ee50bcd in msvcrt!_endthreadex ()
from C:\WINDOWS\system32\msvcrt.dll
#42 0x00007fff905013d2 in KERNEL32!BaseThreadInitThunk ()
from C:\WINDOWS\system32\kernel32.dll
#43 0x00007fff906554e4 in ntdll!RtlUserThreadStart ()
from C:\WINDOWS\SYSTEM32\ntdll.dll
#44 0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
The text was updated successfully, but these errors were encountered: