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

Issue 833483 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Handle birthday updates properly for USS datatypes

Project Member Reported by mastiz@chromium.org, Apr 16 2018

Issue description

When a client receives a birthday update, it should be treated similarly as a signout from USS's perspective: sync metadata should be cleared.

During a discussion with pavely@, we weren't sure how this is implemented, or whether it is at all. We should verify.
 

Comment 1 by treib@chromium.org, Apr 23 2018

Cc: mastiz@chromium.org
Status: Available (was: Untriaged)

Comment 2 by treib@chromium.org, Jun 7 2018

Cc: -mastiz@chromium.org
Owner: mastiz@chromium.org
Status: Assigned (was: Available)
Assigning to mastiz@, USS champion.

Any updates on this?
There's a related ongoing patch:
https://chromium-review.googlesource.com/c/chromium/src/+/1087062

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 12 2018

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

commit 0f28c2bc895daf8d39951249b2fbdc1555acd182
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Jun 12 20:22:25 2018

Propagate more context information in OnSyncStarting()

We rename ActivationContext-->DataTypeActivationResponse to avoid
confusion, and introduce a new struct (DataTypeActivationRequest) that
bundles context information that is relevant during activation of a
datatype.

In this implementation, ModelTypeController pulls those bits from
SyncService's public API, but it may make sense to instead explicitly
plumb them through DataTypeManager, in future patches.

Bug:  833483 , 820049 ,850428
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I91c5c3552dbd5db1c446dd6e00ef74389135af87
Reviewed-on: https://chromium-review.googlesource.com/1087062
Reviewed-by: Mike Pinkerton <pinkerton@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566550}
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/autofill/core/browser/webdata/autocomplete_sync_bridge_unittest.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/BUILD.gn
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/data_type_manager_impl_unittest.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/fake_sync_service.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/fake_sync_service.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/glue/sync_backend_host_impl.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/glue/sync_backend_host_impl.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/model_type_controller.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/model_type_controller_unittest.cc
[add] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/sync_client_mock.cc
[add] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/sync_client_mock.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/driver/sync_service.h
[delete] https://crrev.com/ece8228cecf913285fec932ca62516fd1f305fd8/components/sync/engine/activation_context.cc
[add] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/data_type_activation_request.cc
[add] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/data_type_activation_request.h
[add] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/data_type_activation_response.cc
[rename] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/data_type_activation_response.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/fake_model_type_connector.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/fake_model_type_connector.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/fake_sync_engine.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/fake_sync_engine.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/model_type_configurer.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine/model_type_connector.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine_impl/model_type_connector_proxy.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine_impl/model_type_connector_proxy.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine_impl/model_type_registry.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine_impl/model_type_registry.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/engine_impl/model_type_registry_unittest.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/model/fake_model_type_controller_delegate.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/model/fake_model_type_controller_delegate.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/model/model_type_controller_delegate.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/model_impl/client_tag_based_model_type_processor.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/model_impl/client_tag_based_model_type_processor.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync/model_impl/client_tag_based_model_type_processor_unittest.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync_bookmarks/bookmark_model_type_processor.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync_bookmarks/bookmark_model_type_processor.h
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/components/sync_sessions/session_sync_bridge_unittest.cc
[modify] https://crrev.com/0f28c2bc895daf8d39951249b2fbdc1555acd182/ios/chrome/test/app/sync_test_util.mm

Comment 5 by mastiz@chromium.org, Jun 19 2018

Cc: mastiz@chromium.org
Status: lixanyandex-team.ru (was: Assigned)
Summary: Handle birthday updates properly for USS datatypes (was: Verify that USS datatypes handle birthday updates properly)
I've tested birthday updates locally and they don't seem to work well.

In the current implementation, ModelTypeController::Stop() gets called with CLEAR_METADATA. However, the controller currently ignores the provided CLEAR_METADATA and instead checks the presence in prefs to (incorrectly) decide that sync metadata shouldn't be cleared.

Assigning to lixan@ since he has a patch that would fix this problem: https://chromium-review.googlesource.com/c/chromium/src/+/1008303

That should be sufficient to close this bug. Somewhat related, the detection of birthday mismatches relies on Directory as a central database to store the local birthday, so we'd need to update that once all types get migrated to USS and we remove directory. However, that is far off and it warrants a dedicated bug.

Comment 6 by mastiz@chromium.org, Jun 19 2018

Cc: sfiera@chromium.org
CC sfiera@, since this bug could explain some traffic we see server-side with invalid entity IDs.

Comment 7 by sfiera@google.com, Jun 19 2018

That’s an odd “Status”.

Comment 8 by mastiz@chromium.org, Jun 19 2018

Owner: li...@yandex-team.ru
Status: Assigned (was: lixanyandex-team.ru)

Comment 9 by mastiz@chromium.org, Jun 26 2018

Status: Fixed (was: Assigned)
Patch linked above landed, so marking as fixed.

Sign in to add a comment