Skip to content
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

Intermittent crash on accessing DApps on Android #28015

Closed
SergeyZhukovsky opened this issue Jan 24, 2023 · 2 comments · Fixed by brave/brave-core#16841
Closed

Intermittent crash on accessing DApps on Android #28015

SergeyZhukovsky opened this issue Jan 24, 2023 · 2 comments · Fixed by brave/brave-core#16841
Assignees
Labels
crash OS/Android Fixes related to Android browser functionality priority/P2 A bad problem. We might uplift this to the next planned release. QA Pass - Android ARM QA/Yes release-notes/include

Comments

@SergeyZhukovsky
Copy link
Member

I found that crash on GPS on nightly 1.49.x, but it exists in the release channel as well. Basically the functionality is called when a DApp website is visited and pings our API and we want to show a wallet icon in the URL bar. I cannot replicate that crash. Just make sure that a wallet icon is shown if you go for example to
https://www.cryptokitties.co/

Stack trace:

Stack Trace:
  RELADDR   FUNCTION                                                                          FILE:LINE
  00000000041df430  brave_wallet::WalletInteractionDetected(content::WebContents*)                    ../../brave/browser/brave_wallet/brave_wallet_provider_delegate_impl_helper_android.cc:39:59
  0000000007419f44  brave_wallet::EthereumProviderImpl::Request(base::Value, base::OnceCallback<void (base::Value, base::Value, bool, std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>> const&, bool)>)  ../../brave/components/brave_wallet/browser/ethereum_provider_impl.cc:1017:14
  000000000359dc30  brave_wallet::mojom::EthereumProviderStubDispatch::AcceptWithResponder(brave_wallet::mojom::EthereumProvider*, mojo::Message*, std::Cr::unique_ptr<mojo::MessageReceiverWithStatus, std::Cr::default_delete<mojo::MessageReceiverWithStatus>>)  gen/brave/components/brave_wallet/common/brave_wallet.mojom.cc:6189:13
  0000000007207640  brave_wallet::mojom::EthereumProviderStub<mojo::RawPtrImplRefTraits<brave_wallet::mojom::EthereumProvider>>::AcceptWithResponder(mojo::Message*, std::Cr::unique_ptr<mojo::MessageReceiverWithStatus, std::Cr::default_delete<mojo::MessageReceiverWithStatus>>)  gen/brave/components/brave_wallet/common/brave_wallet.mojom.h:3678:12
  v------>  mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*)             ../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:956:56
  0000000004534264  mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept(mojo::Message*)  ../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:357:18
  00000000045377b0  mojo::MessageDispatcher::Accept(mojo::Message*)                                   ../../mojo/public/cpp/bindings/lib/message_dispatcher.cc:43:19
  00000000045354cc  mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*)              ../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:694:20
  000000000453a2a4  mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*)  ../../mojo/public/cpp/bindings/lib/multiplex_router.cc:1102:42
  0000000004539f64  mojo::internal::MultiplexRouter::Accept(mojo::Message*)                           ../../mojo/public/cpp/bindings/lib/multiplex_router.cc:716:7
  00000000045377b0  mojo::MessageDispatcher::Accept(mojo::Message*)                                   ../../mojo/public/cpp/bindings/lib/message_dispatcher.cc:43:19
  0000000004531b64  mojo::Connector::DispatchMessage(mojo::ScopedHandleBase<mojo::MessageHandle>)     ../../mojo/public/cpp/bindings/lib/connector.cc:561:49
  00000000045321b8  mojo::Connector::ReadAllAvailableMessages()                                       ../../mojo/public/cpp/bindings/lib/connector.cc:618:14
  00000000023b4cc0  base::RepeatingCallback<void (net::EffectiveConnectionType)>::Run(net::EffectiveConnectionType) const &  ../../base/functional/callback.h:309:12
  v------>  base::RepeatingCallback<void (unsigned int, mojo::HandleSignalsState const&)>::Run(unsigned int, mojo::HandleSignalsState const&) const &  ../../base/functional/callback.h:309:12
  00000000045479f4  mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&)  ../../mojo/public/cpp/system/simple_watcher.cc:278:14
  v------>  base::OnceCallback<void ()>::Run() &&                                             ../../base/functional/callback.h:174:12
  00000000042a6458  base::TaskAnnotator::RunTaskImpl(base::PendingTask&)                              ../../base/task/common/task_annotator.cc:155:32
  v------>  void base::TaskAnnotator::RunTask<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)::$_0>(perfetto::StaticString, base::PendingTask&, base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)::$_0&&)  ../../base/task/common/task_annotator.h:84:5
  v------>  base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)  ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:449:23
  00000000042b867c  base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()   ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:300:30
  00000000042ea938  base::MessagePumpForUI::DoNonDelayedLooperWork(bool)                              ../../base/message_loop/message_pump_android.cc:285:33
  v------>  base::MessagePumpForUI::OnNonDelayedLooperCallback()                              ../../base/message_loop/message_pump_android.cc:271:3
  00000000042ea274  base::(anonymous namespace)::NonDelayedLooperCallback(int, int, void*)            ../../base/message_loop/message_pump_android.cc:75:9
  0000000000018028  android::Looper::pollInner(int)+1064                                              /system/lib64/libutils.so
  0000000000017b9c  android::Looper::pollOnce(int, int*, int*, void**)+116                            /system/lib64/libutils.so
  0000000000166e90  android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+48  /system/lib64/libandroid_runtime.so
  00000000002eb504  art_jni_trampoline+116                                                            /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000ad1848  android.os.MessageQueue.next+312                                                  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000acdc18  android.os.Looper.loopOnce+104                                                    /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000acda7c  android.os.Looper.loop+1148                                                       /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  00000000007d7dc8  android.app.ActivityThread.main+1480                                              /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000434600  art_quick_invoke_static_stub+576                                                  /apex/com.android.art/lib64/libart.so
  0000000000466d34  _jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1960  /apex/com.android.art/lib64/libart.so
  0000000000466564  art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+48  /apex/com.android.art/lib64/libart.so
  00000000002f1148  art_jni_trampoline+120                                                            /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000a356a0  com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+144                   /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000a40544  com.android.internal.os.ZygoteInit.main+3604                                      /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
  0000000000434600  art_quick_invoke_static_stub+576                                                  /apex/com.android.art/lib64/libart.so
  000000000057e378  art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+900  /apex/com.android.art/lib64/libart.so
  00000000005f1d7c  art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+160  /apex/com.android.art/lib64/libart.so
  00000000000c0c04  _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124                     /system/lib64/libandroid_runtime.so
  00000000000cd470  android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+856  /system/lib64/libandroid_runtime.so
  0000000000002570  main+1304                                                                         /system/bin/app_process64
  00000000000854ec  __libc_init+100
@kjozwiak
Copy link
Member

The above requires 1.47.184 or higher for 1.47.x verification 👍

@kjozwiak kjozwiak modified the milestones: 1.47.x - Release #5, 1.47.x - Release #4 Jan 25, 2023
@Uni-verse
Copy link
Contributor

Verified on Samsung Galaxy S21 using the following build:

Brave	1.47.186 Chromium: 109.0.5414.119 (Official Build) (64-bit) 
Revision	772095164c7d5d4e73160f858efed3b5e87eca83-refs/branch-heads/5414@{#1458}
OS	Android 13; Build/TP1A.220624.014
  • Ensured loading dApps that interact with our wallet does not cause crash
  • Ensured that the brave wallet icon shows up in the url bar
  • Ensured connect to dApp using brave wallet is successful
  • Ensured wallet popup opens and does not crash when interacting with it

Cryptokitties.co

Example Example Example Example
screenshot-1674685397245 screenshot-1674685407433 screenshot-1674685420395 screenshot-1674685437663

Pancakeswap.finance

Example Example Example Example
screenshot-1674685271830 screenshot-1674685295052 screenshot-1674685306968 screenshot-1674685315236

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash OS/Android Fixes related to Android browser functionality priority/P2 A bad problem. We might uplift this to the next planned release. QA Pass - Android ARM QA/Yes release-notes/include
Projects
Archived in project
4 participants