Flake in org.chromium.net.smoke.Http2Test#testHttp2 |
||
Issue descriptionExample: https://build.chromium.org/p/tryserver.chromium.android/builders/android_cronet_tester/builds/1368 c7ade: 04-28 14:38:04.399 11026 11042 W System.err: java.lang.NullPointerException c7ade: 04-28 14:38:04.399 11026 11042 W System.err: at org.chromium.net.impl.CronetUrlRequestContext.stopNetLogCompleted(CronetUrlRequestContext.java:307) c7ade: 04-28 14:38:04.399 11026 11042 W System.err: at dalvik.system.NativeStart.run(Native Method) signal 6 (SIGABRT) at 0x00002b12 (code=-6), thread 11042 (network) pid: 11026, tid: 11042, name: network >>> org.chromium.net <<< signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- r0 00000000 r1 00002b22 r2 00000006 r3 00000000 r4 00000006 r5 00000000 r6 00002b22 r7 0000010c r8 76e2ad28 r9 76e2ae3c sl 76d26b5c fp 76e2b270 ip 76e2ace0 sp 76e2ac80 lr 400d8fe5 pc 400e7f90 Stack Trace: RELADDR FUNCTION FILE:LINE 00021f90 tgkill+12 /system/lib/libc.so 00012fe1 pthread_kill+48 /system/lib/libc.so 000131f5 raise+10 /system/lib/libc.so 00011f2b <unknown> /system/lib/libc.so 00021844 abort+4 /system/lib/libc.so v------> DebugBreak /b/build/slave/android_cronet_tester/build/src/base/debug/debugger_posix.cc:221 0004ebe7 base::debug::BreakDebugger()+18 /b/build/slave/android_cronet_tester/build/src/base/debug/debugger_posix.cc:251 00064a9f logging::LogMessage::~LogMessage()+850 /b/build/slave/android_cronet_tester/build/src/base/logging.cc:783 0003d03b base::android::CheckException(_JNIEnv*)+126 /b/build/slave/android_cronet_tester/build/src/base/android/jni_android.cc:243 v------> jni_generator::CheckException(_JNIEnv*) /b/build/slave/android_cronet_tester/build/src/base/android/jni_generator/jni_generator_helper.h:42 v------> Java_CronetUrlRequestContext_stopNetLogCompleted /b/build/slave/android_cronet_tester/build/src/out/Debug/gen/components/cronet/android/cronet_jni_headers/cronet/jni/CronetUrlRequestContext_jni.h:289 0003155b cronet::CronetURLRequestContextAdapter::StopNetLogCompleted()+138 /b/build/slave/android_cronet_tester/build/src/components/cronet/android/cronet_url_request_context_adapter.cc:1043 000439b9 base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() &&+80 /b/build/slave/android_cronet_tester/build/src/base/callback.h:91 000a762f base::(anonymous namespace)::PostTaskAndReplyRelay::RunReplyAndSelfDestruct()+102 /b/build/slave/android_cronet_tester/build/src/base/threading/post_task_and_reply_impl.cc:60 v------> base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() && /b/build/slave/android_cronet_tester/build/src/base/callback.h:91 0004f5df base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)+602 /b/build/slave/android_cronet_tester/build/src/base/debug/task_annotator.cc:59 0006ba53 base::MessageLoop::RunTask(base::PendingTask*)+442 /b/build/slave/android_cronet_tester/build/src/base/message_loop/message_loop.cc:423 0006beb9 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)+28 /b/build/slave/android_cronet_tester/build/src/base/message_loop/message_loop.cc:434 0006bfa3 base::MessageLoop::DoWork()+144 /b/build/slave/android_cronet_tester/build/src/base/message_loop/message_loop.cc:527 0006e559 base::MessagePumpLibevent::Run(base::MessagePump::Delegate*)+68 /b/build/slave/android_cronet_tester/build/src/base/message_loop/message_pump_libevent.cc:219 0006d309 base::MessageLoop::RunHandler()+168 /b/build/slave/android_cronet_tester/build/src/base/message_loop/message_loop.cc:387 0008920b base::RunLoop::Run()+86 /b/build/slave/android_cronet_tester/build/src/base/run_loop.cc:37 000abfc7 base::Thread::Run(base::RunLoop*)+126 /b/build/slave/android_cronet_tester/build/src/base/threading/thread.cc:250 000accfb base::Thread::ThreadMain()+686 /b/build/slave/android_cronet_tester/build/src/base/threading/thread.cc:333 000a7455 base::(anonymous namespace)::ThreadFunc(void*)+60 /b/build/slave/android_cronet_tester/build/src/base/threading/platform_thread_posix.cc:71 0000d170 __thread_entry+72 /system/lib/libc.so 0000d308 pthread_create+240 /system/lib/libc.so
,
Apr 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4e899699e945d5b065580d2bd42f59e6ea09879e commit 4e899699e945d5b065580d2bd42f59e6ea09879e Author: kapishnikov <kapishnikov@chromium.org> Date: Fri Apr 28 17:43:38 2017 Cronet: fix flaky Http2Test#testHttp2 BUG= 716480 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester Review-Url: https://codereview.chromium.org/2848903003 Cr-Commit-Position: refs/heads/master@{#468049} [modify] https://crrev.com/4e899699e945d5b065580d2bd42f59e6ea09879e/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java
,
Apr 28 2017
|
||
►
Sign in to add a comment |
||
Comment 1 by kapishnikov@chromium.org
, Apr 28 2017Status: Started (was: Untriaged)
I think there is a race condition here: @Override public void stopNetLog() { synchronized (mLock) { if (!mIsLogging) { return; } checkHaveAdapter(); nativeStopNetLog(mUrlRequestContextAdapter); mIsLogging = false; mStopNetLogCompleted = new ConditionVariable(); } mStopNetLogCompleted.block(); } @CalledByNative public void stopNetLogCompleted() { mStopNetLogCompleted.open(); } stopNetLog() is called on the user thread; however, stopNetLogCompleted() is called on the network thread as the consequence of nativeStopNetLog() call. I think we should call "mStopNetLogCompleted = new ConditionVariable()" before calling nativeStopNetLog(). I will fix it.