Files app taking a long time to sync with Drive |
|||||||||||||||||||||||||||
Issue descriptionEve Feedback: https://listnr.corp.google.com/report/83097078667 It is possible for it take a little bit of time for files to sync with Drive, but we should investigate the cause (maybe network), since Eve shouldn't be experiencing any performance issues for a sync standpoint.
,
Nov 16 2017
,
Nov 16 2017
,
Nov 16 2017
,
Nov 27 2017
I will investigate this. So far I confirmed it sometimes stops fetching new changelists even when it receive push notification successfully.
,
Nov 27 2017
,
Nov 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bfc82632eb3a9db6efd828abe8d526d196acf1e5 commit bfc82632eb3a9db6efd828abe8d526d196acf1e5 Author: Tatsuhisa Yamaguchi <yamaguchi@chromium.org> Date: Tue Nov 28 05:44:49 2017 Add a debug log upon receiving XMPP notification to check for updates. The message will help identify whether changelist fetch was triggered by a push notification or internal polling timer from the logs in about://drive-internals. Bug: 783184 Change-Id: I3463aad2751b0adab7d708e0c2eb636893ea550d Reviewed-on: https://chromium-review.googlesource.com/790037 Reviewed-by: Tomasz Mikolajewski <mtomasz@chromium.org> Commit-Queue: Tatsuhisa Yamaguchi <yamaguchi@chromium.org> Cr-Commit-Position: refs/heads/master@{#519582} [modify] https://crrev.com/bfc82632eb3a9db6efd828abe8d526d196acf1e5/chrome/browser/chromeos/drive/drive_integration_service.cc
,
Dec 8 2017
,
Dec 8 2017
,
Jan 31 2018
,
Feb 16 2018
<files-triage>
,
Feb 16 2018
,
Feb 26 2018
,
Feb 28 2018
,
Feb 28 2018
,
Apr 27 2018
,
May 10 2018
,
Jul 26
,
Aug 9
,
Aug 31
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/664e2296f298a6a23804f41dec73bab472949787 commit 664e2296f298a6a23804f41dec73bab472949787 Author: Stuart Langley <slangley@google.com> Date: Fri Aug 31 04:58:28 2018 Add XMPP push notifications for changes to team drives. Update DriveNotificationManager so that it can register for, and process, XMPP push notifications for team drives. We can register for changes in COSMO by prefixing "TD:" to the team drive ID when we register for the invalidation. To support this change we: - Add OnTeamDrivesUpdated to FileSystemObserver to flow changes in the team drives that the user can access to observers. - Allow DriveNotificationManager to keep track of the users team drive ID's and register for notifications from them. - Change DriveNotificationManager to generate a different event if the update is triggered by the polling timer or a push notification. - Change CheckForUpdates to accept a set of id's which will be the team drive id's that were recieved from the invalidation service. - Provide a glue class in DriveIntegrationService to pass team drive updates to DriveNotificationManager. - Addes file system test cases. Follow ups: - Fix DriveNotificationManager so we can write unit tests against it. Write the tests for registering for and processing invalidations. - Look at batching in DriveNotifcationManager, as invalidation service can send many rapid invalidations for the same object. - Fix up the polling timer logic in DriveNotificationManager, and adjust the timeouts so we do not spam the drive backends with needless update checks if the user has many team drives. Bug: 837456 , 783184 , 867166 Change-Id: I3fd80d41902bdd7f6c8f090346acbbf64f9dafdb Reviewed-on: https://chromium-review.googlesource.com/1195256 Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Sam McNally <sammc@chromium.org> Commit-Queue: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/heads/master@{#587945} [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/chrome/browser/chromeos/drive/drive_integration_service.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/chrome/browser/chromeos/drive/drive_integration_service.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/chrome/browser/sync_file_system/drive_backend/sync_engine.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/chrome/browser/sync_file_system/drive_backend/sync_engine.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/dummy_file_system.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/fake_file_system.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/fake_file_system.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/file_system.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/file_system.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/file_system_interface.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/chromeos/file_system_observer.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/drive_notification_manager.cc [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/drive_notification_manager.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/drive_notification_observer.h [modify] https://crrev.com/664e2296f298a6a23804f41dec73bab472949787/components/drive/file_system_unittest.cc
,
Sep 6
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f6e73b0a19d3647b5af01354ac684f79711c397d commit f6e73b0a19d3647b5af01354ac684f79711c397d Author: Stuart Langley <slangley@google.com> Date: Thu Sep 06 23:34:57 2018 Add XMPP push notifications for changes to team drives. Update DriveNotificationManager so that it can register for, and process, XMPP push notifications for team drives. We can register for changes in COSMO by prefixing "TD:" to the team drive ID when we register for the invalidation. To support this change we: - Add OnTeamDrivesUpdated to FileSystemObserver to flow changes in the team drives that the user can access to observers. - Allow DriveNotificationManager to keep track of the users team drive ID's and register for notifications from them. - Change DriveNotificationManager to generate a different event if the update is triggered by the polling timer or a push notification. - Change CheckForUpdates to accept a set of id's which will be the team drive id's that were recieved from the invalidation service. - Provide a glue class in DriveIntegrationService to pass team drive updates to DriveNotificationManager. - Addes file system test cases. Follow ups: - Fix DriveNotificationManager so we can write unit tests against it. Write the tests for registering for and processing invalidations. - Look at batching in DriveNotifcationManager, as invalidation service can send many rapid invalidations for the same object. - Fix up the polling timer logic in DriveNotificationManager, and adjust the timeouts so we do not spam the drive backends with needless update checks if the user has many team drives. Bug: 837456 , 783184 , 867166 Change-Id: I3fd80d41902bdd7f6c8f090346acbbf64f9dafdb Reviewed-on: https://chromium-review.googlesource.com/1195256 Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Sam McNally <sammc@chromium.org> Commit-Queue: Stuart Langley <slangley@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#587945}(cherry picked from commit 664e2296f298a6a23804f41dec73bab472949787) Reviewed-on: https://chromium-review.googlesource.com/1212102 Reviewed-by: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/branch-heads/3538@{#117} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811} [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/chrome/browser/chromeos/drive/drive_integration_service.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/chrome/browser/chromeos/drive/drive_integration_service.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/chrome/browser/sync_file_system/drive_backend/sync_engine.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/chrome/browser/sync_file_system/drive_backend/sync_engine.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/dummy_file_system.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/fake_file_system.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/fake_file_system.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/file_system.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/file_system.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/file_system_interface.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/chromeos/file_system_observer.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/drive_notification_manager.cc [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/drive_notification_manager.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/drive_notification_observer.h [modify] https://crrev.com/f6e73b0a19d3647b5af01354ac684f79711c397d/components/drive/file_system_unittest.cc
,
Sep 6
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d03e9be2ec4d54506c08e0de1f5cf1346bf32890 commit d03e9be2ec4d54506c08e0de1f5cf1346bf32890 Author: Stuart Langley <slangley@google.com> Date: Thu Sep 06 23:42:52 2018 Fix directory fast fetch feature for team drives. DirectoryLoader contains a feature where it can fast fetch a directory based on the start page token for the parent and the start page token that represents the last time the directory was fetched. Each team drive has it's own start page token, and in this case we were not passing the team_drive_id when fetching the start page token, which means we were getting the start page token for the users default corpus, which effectively broke fast fetching for team drives. The fix is to pass the team drive id to directory loader so it can then retrieve the right start page token from resource metadata. Patch comes with a test \o/. Bug: 783184 Change-Id: Ic8c19efe8ea9bbffa4c97ba0a0d49f5debe2c97b Reviewed-on: https://chromium-review.googlesource.com/1207779 Commit-Queue: Stuart Langley <slangley@chromium.org> Reviewed-by: Luciano Pacheco <lucmult@chromium.org> Cr-Commit-Position: refs/heads/master@{#589368} [modify] https://crrev.com/d03e9be2ec4d54506c08e0de1f5cf1346bf32890/components/drive/chromeos/default_corpus_change_list_loader.cc [modify] https://crrev.com/d03e9be2ec4d54506c08e0de1f5cf1346bf32890/components/drive/chromeos/directory_loader.cc [modify] https://crrev.com/d03e9be2ec4d54506c08e0de1f5cf1346bf32890/components/drive/chromeos/directory_loader.h [modify] https://crrev.com/d03e9be2ec4d54506c08e0de1f5cf1346bf32890/components/drive/chromeos/team_drive_change_list_loader.cc [modify] https://crrev.com/d03e9be2ec4d54506c08e0de1f5cf1346bf32890/components/drive/directory_loader_unittest.cc
,
Sep 6
Merge Request for: https://chromium-review.googlesource.com/1207779
,
Sep 7
,
Sep 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e commit 5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e Author: Stuart Langley <slangley@google.com> Date: Sun Sep 09 23:27:40 2018 Fix directory fast fetch feature for team drives. DirectoryLoader contains a feature where it can fast fetch a directory based on the start page token for the parent and the start page token that represents the last time the directory was fetched. Each team drive has it's own start page token, and in this case we were not passing the team_drive_id when fetching the start page token, which means we were getting the start page token for the users default corpus, which effectively broke fast fetching for team drives. The fix is to pass the team drive id to directory loader so it can then retrieve the right start page token from resource metadata. Patch comes with a test \o/. Bug: 783184 Change-Id: Ic8c19efe8ea9bbffa4c97ba0a0d49f5debe2c97b Reviewed-on: https://chromium-review.googlesource.com/1207779 Commit-Queue: Stuart Langley <slangley@chromium.org> Reviewed-by: Luciano Pacheco <lucmult@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#589368}(cherry picked from commit d03e9be2ec4d54506c08e0de1f5cf1346bf32890) Reviewed-on: https://chromium-review.googlesource.com/1215422 Reviewed-by: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/branch-heads/3538@{#194} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811} [modify] https://crrev.com/5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e/components/drive/chromeos/default_corpus_change_list_loader.cc [modify] https://crrev.com/5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e/components/drive/chromeos/directory_loader.cc [modify] https://crrev.com/5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e/components/drive/chromeos/directory_loader.h [modify] https://crrev.com/5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e/components/drive/chromeos/team_drive_change_list_loader.cc [modify] https://crrev.com/5fbc5b57d0a93a7d1731a0f422b28b748f9e6f8e/components/drive/directory_loader_unittest.cc
,
Sep 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d2c0cb0fd8e83e1c091df6363a225b26cab756d6 commit d2c0cb0fd8e83e1c091df6363a225b26cab756d6 Author: Stuart Langley <slangley@google.com> Date: Thu Sep 27 02:07:00 2018 Don't continually load the same directory if we haven't loaded the full corpus. Calling ReadDirectory() before we have fetched the full corpus will result in multiple calls to the backend to get the data. If this is done repeatedly (which it is) this unnecssarily slows down the initial loading of the app. If we're still loading teh corpus then cache the result of ReadDirectory for 30 seconds before refreshing. Adds test and a better log mesage so we can see what directories are being read. Bug: 783184 Change-Id: I0a1c27dab2244a933f9d43d6ec48ccf0010fc110 Reviewed-on: https://chromium-review.googlesource.com/1237902 Commit-Queue: Stuart Langley <slangley@chromium.org> Reviewed-by: Luciano Pacheco <lucmult@chromium.org> Cr-Commit-Position: refs/heads/master@{#594564} [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/change_list_processor_unittest.cc [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/change_list_processor.cc [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/change_list_processor.h [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/default_corpus_change_list_loader.cc [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/default_corpus_change_list_loader.h [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/directory_loader.cc [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/directory_loader.h [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/file_system.cc [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/chromeos/file_system.h [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/directory_loader_unittest.cc [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/drive.proto [modify] https://crrev.com/d2c0cb0fd8e83e1c091df6363a225b26cab756d6/components/drive/file_system_unittest.cc
,
Oct 2
,
Oct 2
This bug requires manual review: We are only 13 days from stable. Please contact the milestone owner if you have questions. Owners: benmason@(Android), kariahda@(iOS), geohsu@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 2
This looks like a fairly large change. How has the testing gone on this?
,
Oct 3
Manual testing looks good, no reports back from canary but it hasn't landed in dev channel yet.
,
Oct 4
geohsu@ - WDYT, can we merge back? This fixes a pretty serious regression.
,
Oct 4
,
Oct 4
Issue 879659 has been merged into this issue.
,
Oct 4
,
Oct 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0b2456af92695a4289181fc70cfeca2264dea5d0 commit 0b2456af92695a4289181fc70cfeca2264dea5d0 Author: Stuart Langley <slangley@google.com> Date: Thu Oct 04 01:52:11 2018 Don't continually load the same directory if we haven't loaded the full corpus. Calling ReadDirectory() before we have fetched the full corpus will result in multiple calls to the backend to get the data. If this is done repeatedly (which it is) this unnecssarily slows down the initial loading of the app. If we're still loading teh corpus then cache the result of ReadDirectory for 30 seconds before refreshing. Adds test and a better log mesage so we can see what directories are being read. Bug: 783184 Change-Id: I0a1c27dab2244a933f9d43d6ec48ccf0010fc110 Reviewed-on: https://chromium-review.googlesource.com/1237902 Commit-Queue: Stuart Langley <slangley@chromium.org> Reviewed-by: Luciano Pacheco <lucmult@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#594564}(cherry picked from commit d2c0cb0fd8e83e1c091df6363a225b26cab756d6) Reviewed-on: https://chromium-review.googlesource.com/c/1260702 Reviewed-by: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/branch-heads/3538@{#846} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811} [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/change_list_processor_unittest.cc [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/change_list_processor.cc [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/change_list_processor.h [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/default_corpus_change_list_loader.cc [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/default_corpus_change_list_loader.h [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/directory_loader.cc [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/directory_loader.h [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/file_system.cc [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/chromeos/file_system.h [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/directory_loader_unittest.cc [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/drive.proto [modify] https://crrev.com/0b2456af92695a4289181fc70cfeca2264dea5d0/components/drive/file_system_unittest.cc
,
Oct 4
,
Oct 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0b2456af92695a4289181fc70cfeca2264dea5d0 Commit: 0b2456af92695a4289181fc70cfeca2264dea5d0 Author: slangley@google.com Commiter: slangley@chromium.org Date: 2018-10-04 01:52:11 +0000 UTC Don't continually load the same directory if we haven't loaded the full corpus. Calling ReadDirectory() before we have fetched the full corpus will result in multiple calls to the backend to get the data. If this is done repeatedly (which it is) this unnecssarily slows down the initial loading of the app. If we're still loading teh corpus then cache the result of ReadDirectory for 30 seconds before refreshing. Adds test and a better log mesage so we can see what directories are being read. Bug: 783184 Change-Id: I0a1c27dab2244a933f9d43d6ec48ccf0010fc110 Reviewed-on: https://chromium-review.googlesource.com/1237902 Commit-Queue: Stuart Langley <slangley@chromium.org> Reviewed-by: Luciano Pacheco <lucmult@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#594564}(cherry picked from commit d2c0cb0fd8e83e1c091df6363a225b26cab756d6) Reviewed-on: https://chromium-review.googlesource.com/c/1260702 Reviewed-by: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/branch-heads/3538@{#846} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}
,
Oct 18
|
|||||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||||
Comment 1 by weifangsun@chromium.org
, Nov 16 2017