New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 717645 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

mash: Crash when opening system tray networking details, ui_proxy_config_service_

Project Member Reported by jamescook@chromium.org, May 2 2017

Issue description

chrome --mash on device and on desktop, r468701

[12279:12279:0502/111553.693267:1443876332:FATAL:network_handler.cc(170)] Check failed: ui_proxy_config_service_.get(). 
#0 0x7fbd2e56d1ec base::debug::StackTrace::StackTrace()
#1 0x7fbd2e58227e logging::LogMessage::~LogMessage()
#2 0x7fbd2ef6b101 chromeos::NetworkHandler::ui_proxy_config_service()
#3 0x7fbd3034cede ash::NetworkListView::UpdateNetworkListEntries()
#4 0x7fbd3034c940 ash::NetworkListView::UpdateNetworkListInternal()
#5 0x7fbd3034c054 ash::NetworkListView::Update()
#6 0x7fbd3033f465 ash::tray::NetworkStateListDetailedView::Init()
#7 0x7fbd3030cd56 ash::TrayNetwork::CreateDetailedView()
#8 0x7fbd3029324d ash::SystemTrayBubble::CreateItemViews()
#9 0x7fbd30292f19 ash::SystemTrayBubble::UpdateView()
#10 0x7fbd30291585 ash::SystemTray::ShowItems()
#11 0x7fbd30291919 ash::SystemTray::ShowDetailedView()
#12 0x7fbd2e5d2d53 base::Timer::RunScheduledTask()
#13 0x7fbd2e5fdbc6 base::debug::TaskAnnotator::RunTask()
#14 0x7fbd2e587ebe base::MessageLoop::RunTask()
#15 0x7fbd2e58827b base::MessageLoop::DeferOrRunPendingTask()
#16 0x7fbd2e5889d2 base::MessageLoop::DoDelayedWork()
#17 0x7fbd2e589ded base::MessagePumpLibevent::Run()
#18 0x7fbd2e587b2b base::MessageLoop::RunHandler()
#19 0x7fbd2e5a96a0 base::RunLoop::Run()
#20 0x7fbd2e1f33b7 _ZN4base8internal7InvokerINS0_9BindStateIZN15service_manager12_GLOBAL__N_110RunServiceEPNS3_12MainDelegateEE3$_0JS6_PiEEEFvN4mojo16InterfaceRequestINS3_5mojom7ServiceEEEEE3RunEPNS0_13BindStateBaseEOSE_
#21 0x7fbd2ccb1884 service_manager::RunStandaloneService()
#22 0x7fbd2e1f2be9 service_manager::Main()
#23 0x7fbd2e1d39b1 content::ContentMain()
#24 0x7fbd2c91163e ChromeMain
#25 0x7fbd2a3b3796 __libc_start_main
#26 0x7fbd2c911469 _start

It's a CHECK failure on a null ui_proxy_config_service() here:

std::unique_ptr<std::set<std::string>>
NetworkListView::UpdateNetworkListEntries() {
  NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();

  // Keep an index where the next child should be inserted.
  int index = 0;

  bool show_connection_warning =
      !!NetworkHandler::Get()->network_state_handler()->ConnectedNetworkByType(
          NetworkTypePattern::VPN());
  show_connection_warning =
      show_connection_warning || NetworkHandler::Get()
                                     ->ui_proxy_config_service()
                                     ->HasDefaultNetworkProxyConfigured();
....

This probably means this code is not covered by tests, otherwise mash_unittests would have caught it.

I don't know if we expect to have a ui_proxy_config_service() with mash or not.

 
Status: Started (was: Assigned)
Code was added recently in https://codereview.chromium.org/2836453003 for issue 646698

Cc: jonr...@chromium.org
I think this needs to be fixed with a null check and a TODO waiting on improvements to the prefs service.

UIProxyConfigService is built by NetworkPrefStateObserver in c/b/chromeos/net calling NetworkHandler::InitializePrefServices() during chrome startup and again after user profile load.

https://cs.chromium.org/chromium/src/chrome/browser/chromeos/net/network_pref_state_observer.cc?type=cs&sq=package:chromium&l=15
https://cs.chromium.org/chromium/src/chromeos/network/network_handler.cc?l=116&gsn=InitializePrefServices

UIProxyConfigService depends on both profile prefs and local state prefs. The mojo prefs service will provide profile prefs soon, but local state prefs are not available. See https://docs.google.com/document/d/1JU8QUWxMEXWMqgkvFUumKSxr7Z-nfq0YvreSJTkMVmU/edit#heading=h.7pmqf27u91lh

Cc: tibell@chromium.org
Yeah we will need the temporary fix for this while we await the finished service.

+tibell@ FYI
Status: Fixed (was: Started)
Fixed by https://codereview.chromium.org/2861773003/
Status: Started (was: Fixed)
This is happening again.
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 29 2017

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

commit 14a3f223996a875cee52cea58d8c036edafb8dfc
Author: James Cook <jamescook@chromium.org>
Date: Thu Jun 29 23:13:36 2017

chromeos: Fix crash when showing network list under --mash

There is no UIProxyConfigService available under mash because the prefs
service does not yet support local state prefs. Just skip the proxy
check for now.

Bug:  717645 
Test: ash_unittests --mash, also manually open menu when running chrome --mash
Change-Id: I163b8edb71cbee477d80480abc47bb1e0337becb
Reviewed-on: https://chromium-review.googlesource.com/556269
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483535}
[modify] https://crrev.com/14a3f223996a875cee52cea58d8c036edafb8dfc/ash/system/network/network_list.cc
[modify] https://crrev.com/14a3f223996a875cee52cea58d8c036edafb8dfc/ash/system/network/tray_network_unittest.cc

Status: Fixed (was: Started)

Comment 8 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)
Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment