New issue
Advanced search Search tips

Issue 832994 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

[CRD iOS] Crash at GetHttpReasonPhrase()

Project Member Reported by yuweih@chromium.org, Apr 14 2018

Issue description

"URLFetcher::RESPONSE_CODE_INVALID" is being passed.

#0	0x000000010185c7d8 in base::debug::BreakDebugger() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/debug/debugger_posix.cc:258
#1	0x00000001018b2dc0 in logging::LogMessage::~LogMessage() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/logging.cc:855
#2	0x00000001018afc54 in logging::LogMessage::~LogMessage() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/logging.cc:588
#3	0x00000001022da574 in net::GetHttpReasonPhrase(net::HttpStatusCode) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../net/http/http_status_code.cc:19
#4	0x00000001017c17fc in remoting::HostListService::HandleFetchFailure(remoting::HostListService::FetchFailureReason, int) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../remoting/ios/facade/host_list_service.mm:169
#5	0x00000001017c26a8 in remoting::HostListService::HandleHostListResult(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../remoting/ios/facade/host_list_service.mm:145
#6	0x00000001017c4dc0 in void base::internal::FunctorTraits<void (remoting::HostListService::*)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), void>::Invoke<base::WeakPtr<remoting::HostListService>, int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&>(void (remoting::HostListService::*)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), base::WeakPtr<remoting::HostListService>&&, int&&, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&&&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:447
#7	0x00000001017c4ce0 in void base::internal::InvokeHelper<true, void>::MakeItSo<void (remoting::HostListService::*)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), base::WeakPtr<remoting::HostListService>, int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&>(void (remoting::HostListService::*&&)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), base::WeakPtr<remoting::HostListService>&&, int&&, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&&&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:550
#8	0x00000001017c4c54 in void base::internal::Invoker<base::internal::BindState<void (remoting::HostListService::*)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), base::WeakPtr<remoting::HostListService> >, void (int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&)>::RunImpl<void (remoting::HostListService::*)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), std::__1::tuple<base::WeakPtr<remoting::HostListService> >, 0ul>(void (remoting::HostListService::*&&)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), std::__1::tuple<base::WeakPtr<remoting::HostListService> >&&, std::__1::integer_sequence<unsigned long, 0ul>, int&&, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:604
#9	0x00000001017c4b3c in base::internal::Invoker<base::internal::BindState<void (remoting::HostListService::*)(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&), base::WeakPtr<remoting::HostListService> >, void (int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&)>::RunOnce(base::internal::BindStateBase*, int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:572
#10	0x00000001017baa60 in base::OnceCallback<void (int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&)>::Run(int, std::__1::vector<remoting::HostInfo, std::__1::allocator<remoting::HostInfo> > const&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/callback.h:95
#11	0x00000001017bba40 in remoting::HostListFetcher::OnURLFetchComplete(net::URLFetcher const*) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../remoting/ios/facade/host_list_fetcher.cc:144
#12	0x000000010285319c in net::URLFetcherCore::InformDelegateFetchIsComplete() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../net/url_request/url_fetcher_core.cc:729
#13	0x0000000102853050 in net::URLFetcherCore::OnCompletedURLRequest(base::TimeDelta) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../net/url_request/url_fetcher_core.cc:722
#14	0x0000000102858f30 in void base::internal::FunctorTraits<void (net::URLFetcherCore::*)(base::TimeDelta), void>::Invoke<scoped_refptr<net::URLFetcherCore> const&, base::TimeDelta const&>(void (net::URLFetcherCore::*)(base::TimeDelta), scoped_refptr<net::URLFetcherCore> const&&&, base::TimeDelta const&&&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:447
#15	0x0000000102858e84 in void base::internal::InvokeHelper<false, void>::MakeItSo<void (net::URLFetcherCore::* const&)(base::TimeDelta), scoped_refptr<net::URLFetcherCore> const&, base::TimeDelta const&>(void (net::URLFetcherCore::* const&&&)(base::TimeDelta), scoped_refptr<net::URLFetcherCore> const&&&, base::TimeDelta const&&&) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:530
#16	0x0000000102858e14 in void base::internal::Invoker<base::internal::BindState<void (net::URLFetcherCore::*)(base::TimeDelta), scoped_refptr<net::URLFetcherCore>, base::TimeDelta>, void ()>::RunImpl<void (net::URLFetcherCore::* const&)(base::TimeDelta), std::__1::tuple<scoped_refptr<net::URLFetcherCore>, base::TimeDelta> const&, 0ul, 1ul>(void (net::URLFetcherCore::* const&&&)(base::TimeDelta), std::__1::tuple<scoped_refptr<net::URLFetcherCore>, base::TimeDelta> const&&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:604
#17	0x0000000102858d08 in base::internal::Invoker<base::internal::BindState<void (net::URLFetcherCore::*)(base::TimeDelta), scoped_refptr<net::URLFetcherCore>, base::TimeDelta>, void ()>::Run(base::internal::BindStateBase*) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/bind_internal.h:586
#18	0x0000000101468cf8 in base::OnceCallback<void ()>::Run() && at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/callback.h:95
#19	0x000000010185ff8c in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/debug/task_annotator.cc:101
#20	0x00000001018d5170 in base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/incoming_task_queue.cc:124
#21	0x00000001018e0128 in base::MessageLoop::RunTask(base::PendingTask*) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/message_loop.cc:326
#22	0x00000001018e06cc in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/message_loop.cc:336
#23	0x00000001018e09e8 in base::MessageLoop::DoWork() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/message_loop.cc:380
#24	0x0000000101b30d9c in base::MessagePumpCFRunLoopBase::RunWork() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/message_pump_mac.mm:462
#25	0x0000000101b30d18 in ::___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke() at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/message_pump_mac.mm:439
#26	0x0000000101b25170 in base::mac::CallWithEHFrame(void () block_pointer) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/mac/call_with_eh_frame.cc:18
#27	0x0000000101b300e8 in base::MessagePumpCFRunLoopBase::RunWorkSource(void*) at /Users/yuweih/Workspace/bling/src/out/ios-device-debug/../../base/message_loop/message_pump_mac.mm:438

 
Project Member

Comment 1 by sheriffbot@chromium.org, Apr 15 2018

Labels: -Merge-Request-67 Merge-Approved-67 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M67. Please go ahead and merge the CL to branch 3396 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3634cb492e52d944122012a9364d0b80d8fe0eb

commit e3634cb492e52d944122012a9364d0b80d8fe0eb
Author: Yuwei Huang <yuweih@chromium.org>
Date: Tue Apr 17 00:23:28 2018

[CRD iOS] Prevent crash when failed to fetch host list

HostListFetcher returns a -1 error code when it fails to get the HTTP
response (because of timeout?). We map the HTTP code into error message
using net::GetHttpReasonPhrase(), which reaches NOTREACHED() when the
argument is -1 and causes a crash on debug build.

This CL prevents this by explicitly translating -1 into "Connection
failed".

Bug:  832994 
Change-Id: I94f5c353de2674500190efb9dc8066ad40aaed8e
Reviewed-on: https://chromium-review.googlesource.com/1012787
Commit-Queue: Yuwei Huang <yuweih@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551181}
[modify] https://crrev.com/e3634cb492e52d944122012a9364d0b80d8fe0eb/remoting/ios/facade/host_list_fetcher.cc
[modify] https://crrev.com/e3634cb492e52d944122012a9364d0b80d8fe0eb/remoting/ios/facade/host_list_fetcher.h
[modify] https://crrev.com/e3634cb492e52d944122012a9364d0b80d8fe0eb/remoting/ios/facade/host_list_service.mm

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 17 2018

Labels: -merge-approved-67 merge-merged-3396
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d8492942a30edd894ad1425d92de39cf2611d5f

commit 8d8492942a30edd894ad1425d92de39cf2611d5f
Author: Yuwei Huang <yuweih@chromium.org>
Date: Tue Apr 17 00:42:07 2018

[CRD iOS] Prevent crash when failed to fetch host list

HostListFetcher returns a -1 error code when it fails to get the HTTP
response (because of timeout?). We map the HTTP code into error message
using net::GetHttpReasonPhrase(), which reaches NOTREACHED() when the
argument is -1 and causes a crash on debug build.

This CL prevents this by explicitly translating -1 into "Connection
failed".

Bug:  832994 
Change-Id: I94f5c353de2674500190efb9dc8066ad40aaed8e
Reviewed-on: https://chromium-review.googlesource.com/1012787
Commit-Queue: Yuwei Huang <yuweih@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#551181}(cherry picked from commit e3634cb492e52d944122012a9364d0b80d8fe0eb)
Reviewed-on: https://chromium-review.googlesource.com/1013549
Reviewed-by: Yuwei Huang <yuweih@chromium.org>
Cr-Commit-Position: refs/branch-heads/3396@{#34}
Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428}
[modify] https://crrev.com/8d8492942a30edd894ad1425d92de39cf2611d5f/remoting/ios/facade/host_list_fetcher.cc
[modify] https://crrev.com/8d8492942a30edd894ad1425d92de39cf2611d5f/remoting/ios/facade/host_list_fetcher.h
[modify] https://crrev.com/8d8492942a30edd894ad1425d92de39cf2611d5f/remoting/ios/facade/host_list_service.mm

Comment 4 by yuweih@chromium.org, Apr 17 2018

Status: Fixed (was: Assigned)

Sign in to add a comment