sccn / liblsl

C++ lsl library for multi-modal time-synched data transmission over the local network
Other
107 stars 63 forks source link

Versions 1.15.1 and 1.15.2 make Android builds crash #149

Closed mvidaldp closed 2 years ago

mvidaldp commented 2 years ago

The app crashes while trying to use liblsl with the following error using versions 1.15.1 and 1.15.2 on Android:

A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 32715

Version 1.15.0 works without any problem.

cboulay commented 2 years ago

Are you able to reproduce this in an emulator? I don't have an Android device for testing.

If not an emulator, can you give (a lot) more information about how you can trigger this? Outlet or inlet? during resolve? Randomly during data transfer? Immediately upon loading the library?

I don't know how one goes about running an interactive debugger on Android these days, but ultimately that might be what's needed.

mvidaldp commented 2 years ago

I just tried on an emulator with both 1.15.1 and 1.15.2 versions and I got the same error. It fails immediately upon loading the library.

Since I wanted to make sure the error was not related to the project we were using LSL, I created a really basic project for generating the library and testing it with a very simple stream outlet: https://github.com/mvidaldp/liblsl-android-builder

You can check the Java code if you need more details: https://github.com/mvidaldp/liblsl-android-builder/blob/main/builder/src/main/java/liblsl/android/builder/MainActivity.java

Also, by doing it I figured out that with the current Gradle version >= 7, CMake versions newer than 3.18.0 make the build crash.

I'll try to debug it interactively, but so far this is the only error messaage I get.

mvidaldp commented 2 years ago

That is what I found after interactive debugging.

The bug happens at the file liblsl/src/lsl_outlet_c.cpp, on the line 17, and it comes from the file liblsl/lslboost/boost/asio/detail/scheduler_operation.hpp, on the line 54.

This is the full stack:

art_sigsegv_fault 0x000073498e9a2da0 art::FaultManager::HandleFault(int, siginfo, void) 0x000073498e9a32a5 art::SignalChain::Handler(int, siginfo, void) 0x000057624f19cb0b restore_rt 0x0000734c204730f0 lslboost::asio::detail::scheduler_operation::scheduler_operation(void ()(void, lslboost::asio::detail::scheduler_operation, lslboost::system::error_code const&, unsigned long)) scheduler_operation.hpp:54 lslboost::asio::detail::reactor_op::reactor_op(lslboost::system::error_code const&, lslboost::asio::detail::reactor_op::status ()(lslboost::asio::detail::reactor_op), void ()(void, lslboost::asio::detail::scheduler_operation, lslboost::system::error_code const&, unsigned long)) reactor_op.hpp:52 lslboost::asio::detail::reactive_socket_accept_op_base<lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >, lslboost::asio::ip::tcp>::reactive_socket_accept_op_base(lslboost::system::error_code const&, int, unsigned char, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&, lslboost::asio::ip::tcp const&, lslboost::asio::ip::basic_endpoint, void ()(void, lslboost::asio::detail::scheduler_operation, lslboost::system::error_code const&, unsigned long)) reactive_socket_accept_op.hpp:43 lslboost::asio::detail::reactive_socket_accept_op<lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >, lslboost::asio::ip::tcp, lsl::tcp_server::accept_next_connection()::$_1, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::reactive_socket_accept_op(lslboost::system::error_code const&, int, unsigned char, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&, lslboost::asio::ip::tcp const&, lslboost::asio::ip::basic_endpoint, lsl::tcp_server::accept_next_connection()::$_1&, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > const&) reactive_socket_accept_op.hpp:105 void lslboost::asio::detail::reactive_socket_service::async_accept<lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >, lsl::tcp_server::accept_next_connection()::$_1, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >(lslboost::asio::detail::reactive_socket_service::implementation_type&, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&, lslboost::asio::ip::basic_endpoint, lsl::tcp_server::accept_next_connection()::$_1&, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > const&) reactive_socket_service.hpp:452 void lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::initiate_async_accept::operator()<lsl::tcp_server::accept_next_connection()::$_1, lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >(lsl::tcp_server::accept_next_connection()::$_1&&, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >, lslboost::asio::ip::basic_endpoint) const basic_socket_acceptor.hpp:2443 void lslboost::asio::async_result<lsl::tcp_server::accept_next_connection()::$_1, void (lslboost::system::error_code)>::initiate<lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::initiate_async_accept, lsl::tcp_server::accept_next_connection()::$_1, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >, lslboost::asio::ip::basic_endpoint>(lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::initiate_async_accept&&, lsl::tcp_server::accept_next_connection()::$_1&&, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&&, lslboost::asio::ip::basic_endpoint&&) async_result.hpp:152 std::__ndk1::enable_if<detail::async_result_has_initiate_memfn<lsl::tcp_server::accept_next_connection()::$_1, void (lslboost::system::error_code)>::value, decltype(async_result<std::ndk1::decay<lsl::tcp_server::accept_next_connection()::$_1>::type, void (lslboost::system::error_code)>::initiate(declval<lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::initiate_async_accept&&>(), declval<lsl::tcp_server::accept_next_connection()::$_1&&>(), declval<lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&&>(), declval<lslboost::asio::ip::basic_endpoint&&>()))>::type lslboost::asio::async_initiate<lsl::tcp_server::accept_next_connection()::$_1, void (lslboost::system::error_code), lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::initiate_async_accept, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >, lslboost::asio::ip::basic_endpoint>(lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::initiate_async_accept&&, lsl::tcp_server::accept_next_connection()::$_1&, lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&&, lslboost::asio::ip::basic_endpoint&&) async_result.hpp:364 auto lslboost::asio::basic_socket_acceptor<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >::async_accept<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > >, lsl::tcp_server::accept_next_connection()::$_1>(lslboost::asio::basic_socket<lslboost::asio::ip::tcp, lslboost::asio::execution::any_executor<lslboost::asio::execution::context_as_t<lslboost::asio::execution_context&>, lslboost::asio::execution::detail::blocking::never_t<0>, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::blocking::possibly_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::tracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::outstanding_work::untracked_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::fork_t<0> >, lslboost::asio::execution::prefer_only<lslboost::asio::execution::detail::relationship::continuation_t<0> > > >&, lsl::tcp_server::accept_next_connection()::$_1&&, std::__ndk1::enable_if<is_convertible<lslboost::asio::ip::tcp, lslboost::asio::ip::tcp>::value, void>::type) basic_socket_acceptor.hpp:1351 lsl::tcp_server::accept_next_connection() tcp_server.cpp:202 lsl::tcp_server::begin_serving() tcp_server.cpp:178 lsl::stream_outlet_impl::stream_outlet_impl(lsl::stream_info_impl const&, int, int) stream_outlet_impl.cpp:43 lsl::stream_outlet_impl create_object_noexcept<lsl::stream_outlet_impl, lsl::stream_info_impl&, int&, int>(lsl::stream_info_impl&, int&, int&&) lsl_c_api_helpers.hpp:83 ::lsl_create_outlet(lsl_streaminfo, int32_t, int32_t) lsl_outlet_c.cpp:17

0x0000734935a596da
tstenner commented 2 years ago

Thanks for the investigation, especially the stack trace!

My guess is that an error condition should be handled here:

acceptor_->async_accept(
    *newsession->socket(), [shared_this = shared_from_this(), newsession](err_t err) {
        shared_this->handle_accept_outcome(newsession, err);
    });

Also, by doing it I figured out that with the current Gradle version >= 7, CMake versions newer than 3.18.0 make the build crash.

This is highly suspicious, as CMake should have no influence on the generated code. If I had to guess I'd think that the new CMake calls a different toolchain / adds different parameters. Could you check with a clean build if the build log includes the full compiler commands? (If not, CMake claims to print them when you add an environment variable VERBOSE)

mvidaldp commented 2 years ago

You are welcome. I am happy to help.

But just for the sake of clarity, the Gradle - CMake issue has nothing to do with this bug from the stack trace I shared. What I shared is the trace of a working build, while the app is running. In this case, the problem is that using Gradle >= 7 with CMake > 3.18.0 does not work (Android Studio allows you to install CMake 3.18.1 from the SDK Manager, otherwise 3.10). Like you cannot make the build at all. So the solution is to use a lower version of Gradle to work with a CMake > 3.18.0, or to use Grade >= 7 and a CMake version < 3.18.1 (manually specifying the custom CMake dir on local.properties) .

So, unfortunately, I cannot include the full compiler commands because I cannot get there.

But the trace of this Gradle - CMake issue when trying to build is the following:

com.intellij.openapi.externalSystem.model.ExternalSystemException (no error message)

  • Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Exception is: com.intellij.openapi.externalSystem.model.ExternalSystemException: at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:258) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:116) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:41) at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:64) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.runAction(AbstractClientProvidedBuildActionRunner.java:160) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.apply(AbstractClientProvidedBuildActionRunner.java:133) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.apply(AbstractClientProvidedBuildActionRunner.java:111) at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator.fromBuildModel(DefaultBuildTreeModelCreator.java:34) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$0(DefaultBuildTreeLifecycleController.java:76) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:104) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel(DefaultBuildTreeLifecycleController.java:69) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:56) at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:53) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:47) at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69) at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:91) at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40) at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:154) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40) at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:56) at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:56) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64) at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.lambda$execute$0(BuildSessionLifecycleBuildActionExecuter.java:56) at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:55) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:37) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) at org.gradle.util.internal.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) java.lang.NullPointerException at com.android.build.gradle.external.cmake.server.ServerProtocolV1.readExpected(ServerProtocolV1.java:519) at com.android.build.gradle.external.cmake.server.ServerProtocolV1.readMessage(ServerProtocolV1.java:547) at com.android.build.gradle.external.cmake.server.ServerProtocolV1.decodeResponse(ServerProtocolV1.java:404) at com.android.build.gradle.external.cmake.server.ServerProtocolV1.decodeResponse(ServerProtocolV1.java:398) at com.android.build.gradle.external.cmake.server.ServerProtocolV1.connect(ServerProtocolV1.java:113) at com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator.executeProcessAndGetOutput(CmakeServerExternalNativeJsonGenerator.kt:139) at com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator.executeProcess(CmakeServerExternalNativeJsonGenerator.kt:82) at com.android.build.gradle.tasks.ExternalNativeJsonGenerator$buildForOneConfiguration$1$1$2.invoke(ExternalNativeJsonGenerator.kt:236) at com.android.build.gradle.tasks.ExternalNativeJsonGenerator$buildForOneConfiguration$1$1$2.invoke(ExternalNativeJsonGenerator.kt:236) at com.android.build.gradle.internal.cxx.timing.TimingEnvironmentKt.time(TimingEnvironment.kt:32) at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.buildForOneConfiguration(ExternalNativeJsonGenerator.kt:236) at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.generate(ExternalNativeJsonGenerator.kt:121) at com.android.build.gradle.internal.cxx.gradle.generator.CxxMetadataGenerator$DefaultImpls.generate$default(CxxMetadataGenerator.kt:40) at com.android.build.gradle.internal.ide.v2.NativeModelBuilder.generateBuildFilesAndCompileCommandsJson(NativeModelBuilder.kt:154) at com.android.build.gradle.internal.ide.v2.NativeModelBuilder.buildAll(NativeModelBuilder.kt:138) at com.android.build.gradle.internal.ide.v2.NativeModelBuilder.buildAll(NativeModelBuilder.kt:50) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuilderWithParameter.build(DefaultToolingModelBuilderRegistry.java:248) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$UserCodeAssigningBuilder.lambda$build$0(DefaultToolingModelBuilderRegistry.java:322) at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication.reapply(DefaultUserCodeApplicationContext.java:109) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$UserCodeAssigningBuilder.build(DefaultToolingModelBuilderRegistry.java:322) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$LockSingleProjectBuilder.lambda$build$0(DefaultToolingModelBuilderRegistry.java:265) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$withProjectLock$3(DefaultProjectStateRegistry.java:385) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:385) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:366) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$LockSingleProjectBuilder.build(DefaultToolingModelBuilderRegistry.java:265) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder$1.call(DefaultToolingModelBuilderRegistry.java:300) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder.build(DefaultToolingModelBuilderRegistry.java:297) at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getParameterizedModel(DefaultBuildController.java:162) at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:110) at org.gradle.tooling.internal.consumer.connection.ParameterAwareBuildControllerAdapter.getModel(ParameterAwareBuildControllerAdapter.java:39) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.getModel(UnparameterizedBuildController.java:113) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.getModel(NestedActionAwareBuildControllerAdapter.java:31) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel(UnparameterizedBuildController.java:97) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel(NestedActionAwareBuildControllerAdapter.java:31) at org.jetbrains.plugins.gradle.model.ProjectImportAction$MyBuildController.findModel(ProjectImportAction.java:574) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker.findNativeVariantAbiModel(AndroidExtraModelProviderWorker.kt:552) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker.access$findNativeVariantAbiModel(AndroidExtraModelProviderWorker.kt:48) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker$getVariantAndModuleDependenciesAction$1.invoke(AndroidExtraModelProviderWorker.kt:455) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker$getVariantAndModuleDependenciesAction$1.invoke(AndroidExtraModelProviderWorker.kt:449) at com.android.tools.idea.gradle.project.sync.SequentialSyncActionRunner.runAction(SyncActionRunner.kt:61) at com.android.tools.idea.gradle.project.sync.SequentialSyncActionRunner.runActions(SyncActionRunner.kt:57) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker.chooseSelectedVariants(AndroidExtraModelProviderWorker.kt:364) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker.populateAndroidModels(AndroidExtraModelProviderWorker.kt:154) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderWorker.populateBuildModels(AndroidExtraModelProviderWorker.kt:65) at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProvider.populateBuildModels(AndroidExtraModelProvider.kt:52) at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:246) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:116) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:41) at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:64) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.runAction(AbstractClientProvidedBuildActionRunner.java:160) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.apply(AbstractClientProvidedBuildActionRunner.java:133) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.apply(AbstractClientProvidedBuildActionRunner.java:111) at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator.fromBuildModel(DefaultBuildTreeModelCreator.java:34) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$0(DefaultBuildTreeLifecycleController.java:76) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:104) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel(DefaultBuildTreeLifecycleController.java:69) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:56) at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:53) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:47) at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69) at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:91) at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40) at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:154) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40) at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:56) at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:56) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64) at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.lambda$execute$0(BuildSessionLifecycleBuildActionExecuter.java:56) at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:55) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:37) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) at org.gradle.util.internal.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) at java.base/java.lang.Thread.run(Thread.java:834)

tstenner commented 2 years ago

I couldn't reproduce either error, maybe there are some stale files remaining from previous builds?

FWIW, I have also pushed a PR that adds a CI config to built Android packages (#157) so we can periodically make sure that a given version builds and run the tests on a local smartphone.

mvidaldp commented 2 years ago

I tried it deleting all cache and build folders. And I tried it on two different computers and two different phones. On Android Studio for Linux and for Windows. No difference at all.

mvidaldp commented 2 years ago

I can confirm the problem occurs only running a debuggable build. No problem at all using a release build. I did not try before because I did not know how to make a release build since it needs to be signed. I also tried setting the same build parameters on debug and release but the problem is still there. This are the gradle build differences:

buildTypes {
        debug {
            debuggable true
            jniDebuggable true
            renderscriptDebuggable true
            signingConfig signingConfigs.debug
        }
        release {
            debuggable false
            jniDebuggable false
            renderscriptDebuggable false
            signingConfig signingConfigs.release
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

Also another topic. You can close the gradle -> cmake version problem. I tested it with the last CMake shipped with Android Studio (3.18.1) and last Gradle > 7 and it builds. The only actual problem I had building was trying to use the last NDK version (23), the picked by default one (21.4) worked.

mvidaldp commented 2 years ago

Fixed on version 1.16.0