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

Issue 897049 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 27
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Task

Blocking:
issue 890727



Sign in to add a comment

Sync: provide more info on NETWORK_CONNECTION_UNAVAILABLE

Project Member Reported by treib@chromium.org, Oct 19

Issue description

We've had multiple but reports (e.g. bug 896021, bug 889583) where sync-internals reports a NETWORK_CONNECTION_UNAVAILABLE error, all in cases where the actual network connection appears to be just fine.

That error gets set here [1] if an HTTP Post fails with some network error. Claiming that no network connection is available in that case doesn't seem right. At the least, we could store and show the error code that we received.

[1] https://cs.chromium.org/chromium/src/components/sync/engine_impl/net/sync_server_connection_manager.cc?rcl=38381d67cbe82032653c036f2711177f11d4766b&l=72
 
Looked into this a bit, looks like it'll require a fair number of plumbing changes :-/

Right now, these errors are represented by a plain enum SyncerError. We could replace that by a class that, in addition to the enum, contains some optional details. But then all the places that store or set such an error will need to be updated. In particular, ModelNeutralState, GetUpdatesResponseEvent, and CommitResponseEvent store such errors. They're used in *ResponseEvent::GetDetails() (which ends up in the "Protocol Log" in sync-internals), and the ModelNeutralState members end up in "Download Step Result" etc.
Mcam mana cara nya nk ubah
Labels: sync-fixit-2018q4
Blocking: 890727
Owner: mamir@chromium.org
Status: Started (was: Available)
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 21

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

commit 87ec8f64562d80783fccfaf9818683b3ae07a892
Author: Mohamed Amir Yosef <mamir@chromium.org>
Date: Wed Nov 21 09:16:39 2018

[Sync] Convert SyncerError from an enum to a class

This CL converts SyncerError to a class. This is in preparation for
a later patch that would add more data to the SyncerError class.

Bug:  897049 
Change-Id: Ie44fa2f65e92ee9ad9733cdd9586a8c7095befb4
Reviewed-on: https://chromium-review.googlesource.com/c/1344098
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609962}
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/chrome/browser/sync/test/integration/profile_sync_service_harness.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/history/core/browser/sync/history_model_worker_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/base/syncer_error.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/base/syncer_error.h
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/driver/about_sync_util.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine/cycle/model_neutral_state.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine/model_safe_worker.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine/model_safe_worker.h
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine/model_safe_worker_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine/sequenced_model_worker_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine/ui_model_worker_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/backoff_delay_provider.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/backoff_delay_provider_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/clear_server_data.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/commit.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/cycle/status_controller_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/cycle/test_util.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/directory_commit_contribution.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/directory_update_handler.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/directory_update_handler_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/events/clear_server_data_response_event.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/events/commit_response_event.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/events/get_updates_response_event.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/get_updates_processor.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/get_updates_processor_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/model_type_worker.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/non_blocking_type_commit_contribution.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/syncer.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/syncer_proto_util.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/engine_impl/syncer_unittest.cc
[modify] https://crrev.com/87ec8f64562d80783fccfaf9818683b3ae07a892/components/sync/test/engine/mock_update_handler.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 27

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

commit 85b2df2a7ff59ca0510e5bf05606fee499417b6d
Author: Mohamed Amir Yosef <mamir@chromium.org>
Date: Tue Nov 27 15:11:13 2018

[Sync] Show the error on sync-internals when connection not available

This CL plumbs the network error code through to show it in the
chrome://sync-internals pages in case of NETWORK_CONNECTION_UNAVAILABLE.

This should allow for easier debugging for some user reported bugs.

Bug:  897049 
Change-Id: Id0fc5455eb4d64b1a022898d8a898e7efa4a255c
Reviewed-on: https://chromium-review.googlesource.com/c/1346460
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611113}
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/base/DEPS
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/base/syncer_error.cc
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/base/syncer_error.h
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/events/clear_server_data_response_event.cc
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/events/commit_response_event.cc
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/events/get_updates_response_event.cc
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/net/server_connection_manager.cc
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/net/server_connection_manager.h
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/net/sync_server_connection_manager.cc
[modify] https://crrev.com/85b2df2a7ff59ca0510e5bf05606fee499417b6d/components/sync/engine_impl/syncer_proto_util.cc

Status: Fixed (was: Started)

Sign in to add a comment