The test URLRequestQuicPerfTest.TestGetRequest is flaky. Occasionally, a ZX_ERR_CANCELED error is raised, which then leads into a fatal error stating that the current task needs to be run from a SingleThreadTaskRunner. The failure can be replicated with the command 'out/fuchsia/bin/run_net_perftests -d --gtest_filter=URLRequestQuicPerfTest.TestGetRequest --gtest_repeat=1000 --single-process-test'
Stack Trace:
[929801:752947875:0614/202052.317639:8690428764:WARNING:message_pump_fuchsia.cc(75)] async wait failed: ZX_ERR_CANCELED (-23)
[929801:752947875:0614/202052.321202:8690432326:FATAL:thread_task_runner_handle.cc(29)] Check failed: current. Error: This caller requires a single-threaded context (i.e. the current task needs to run from a SingleThreadTaskRunner).
#00: base::debug::StackTrace::StackTrace(unsigned long) at stack_trace_fuchsia.cc:?
#01: base::debug::StackTrace::StackTrace() at stack_trace.cc:?
#02: logging::LogMessage::~LogMessage() at logging.cc:?
#03: base::ThreadTaskRunnerHandle::Get() at thread_task_runner_handle.cc:?
#04: net::QuicChromiumClientSession::NotifyFactoryOfSessionClosedLater() at quic_chromium_client_session.cc:?
#05: net::QuicChromiumClientSession::OnConnectionClosed(quic::QuicErrorCode, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char> > const&, quic::ConnectionCloseSource) at quic_chromium_client_session.cc:?
#06: quic::QuicConnection::TearDownLocalConnectionState(quic::QuicErrorCode, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char> > const&, quic::ConnectionCloseSource) at quic_connection.cc:?
#07: quic::QuicConnection::CloseConnection(quic::QuicErrorCode, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char> > const&, quic::ConnectionCloseBehavior) at quic_connection.cc:?
#08: net::QuicChromiumClientSession::CloseSessionOnError(int, quic::QuicErrorCode) at quic_chromium_client_session.cc:?
#09: net::QuicStreamFactory::CloseAllSessions(int, quic::QuicErrorCode) at quic_stream_factory.cc:?
#10: net::QuicStreamFactory::~QuicStreamFactory() at quic_stream_factory.cc:?
#11: net::HttpNetworkSession::~HttpNetworkSession() at http_network_session.cc:?
#12: net::HttpNetworkSession::~HttpNetworkSession() at http_network_session.cc:?
#13: net::URLRequestContextStorage::~URLRequestContextStorage() at url_request_context_storage.cc:?
#14: net::TestURLRequestContext::~TestURLRequestContext() at url_request_test_util.cc:?
#15: net::TestURLRequestContext::~TestURLRequestContext() at url_request_test_util.cc:?
#16: net::(anonymous namespace)::URLRequestQuicPerfTest::~URLRequestQuicPerfTest() at url_request_quic_perftest.cc:?
#17: net::URLRequestQuicPerfTest_TestGetRequest_Test::~URLRequestQuicPerfTest_TestGetRequest_Test() at url_request_quic_perftest.cc:?
#18: net::URLRequestQuicPerfTest_TestGetRequest_Test::~URLRequestQuicPerfTest_TestGetRequest_Test() at url_request_quic_perftest.cc:?
#19: void base::RefCountedThreadSafe<net::IOBuffer, base::DefaultRefCountedThreadSafeTraits<net::IOBuffer> >::DeleteInternal<net::IOBuffer>(net::IOBuffer const*) at disk_cache_perftest.cc:?
#20: testing::Test* testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::TestFactoryBase, testing::Test*>(testing::internal::TestFactoryBase*, testing::Test* (testing::internal::TestFactoryBase::*)(), char const*) at gtest.cc:?
#21: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) at gtest.cc:?
#22: testing::TestInfo::Run() at gtest.cc:?
#23: testing::TestCase::Run() at gtest.cc:?
#24: testing::internal::UnitTestImpl::RunAllTests() at gtest.cc:?
#25: bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) at gtest.cc:?
#26: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) at gtest.cc:?
#27: testing::UnitTest::Run() at gtest.cc:?
#28: RUN_ALL_TESTS() at test_suite.cc:?
#29: base::TestSuite::Run() at test_suite.cc:?
#30: main at run_all_perftests.cc:?
#31: pc 0x6f94c2d9138e (libfdio.so,0x31f9d768838e)
Comment 1 by dtapu...@chromium.org
, Aug 31