App crashes on tapping ‘hide for now’ button in other devices recent tabs |
|||||||||||
Issue descriptionApp Version: 70.0.3511.0 Canary iOS Version: 10.3.3, 11.4.1, 12 beta 5 Device: iPhone, iPad Steps to reproduce: 1. Launch chrome 2. Sign in to chrome with the account which is already logged in other devices 3. Go to recent tabs and wait for the other devices records to load 4. Long press on the device name 5. Tap on Hide for now button Observed results: Notice that the app crashes Expected results: App shouldn’t crash Number of times you were able to reproduce: 5/5 Bug reproducible after clean install: Yes Bug reproducible after clearing cache and cookies: Yes Bug reproducible on Chrome Mobile on Android: Not tested Bug reproducible on Safari/Firefox: Firefox: NA, Safari: NA Bug reproducible on current stable build (App Version, iOS Version): No on M68 (UI Refresh not available) Bug reproducible on the current beta channel build (App Version, iOS Version): Yes on M69 Stack Trace: Thread 0 (id: 0x303) CRASHED [EXC_SOFTWARE / UNCAUGHT_NS_EXCEPTION @ 0x000000018238ed8c ] MAGIC SIGNATURE THREAD Stack Quality76%Show frame trust levels 0x000000018238ed8c (CoreFoundation + 0x00145d8c ) __exceptionPreprocess 0x00000001815485e8 (libobjc.A.dylib + 0x000085e8 ) objc_exception_throw 0x000000018232774c (CoreFoundation + 0x000de74c ) _CFThrowFormattedException 0x0000000182315470 (CoreFoundation + 0x000cc470 ) -[__NSArrayM removeObjectsInRange:] 0x0000000100a41440 (Chrome -list_model.mm:112 ) -[ListModel removeSectionWithIdentifier:] 0x0000000100f64998 (Chrome -recent_tabs_table_view_controller.mm:347 ) -[RecentTabsTableViewController removeSessionSections] 0x0000000100f64338 (Chrome -recent_tabs_table_view_controller.mm:277 ) -[RecentTabsTableViewController updateSessionSections] 0x000000018c25d59c (UIKit + 0x0030759c ) 0x000000018c25d494 (UIKit + 0x00307494 ) 0x0000000100f657b4 (Chrome -recent_tabs_table_view_controller.mm:549 ) -[RecentTabsTableViewController refreshUserState:] 0x0000000100f636a0 (Chrome -recent_tabs_mediator.mm:179 ) -[RecentTabsMediator refreshSessionsView] 0x0000000100929220 (Chrome -synced_sessions_bridge.mm:65 ) synced_sessions::SyncedSessionsObserverBridge::OnForeignSessionUpdated(syncer::SyncService*) 0x0000000101532088 (Chrome -profile_sync_service.cc:857 ) browser_sync::ProfileSyncService::NotifyForeignSessionUpdated() 0x00000001019facf8 (Chrome -callback.h:129 ) sync_sessions::SessionSyncBridge::DeleteForeignSessionWithBatch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, sync_sessions::SessionStore::WriteBatch*) 0x00000001019faaf8 (Chrome -session_sync_bridge.cc:388 ) sync_sessions::SessionSyncBridge::DeleteForeignSessionFromUI(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) 0x00000001019fb4f8 (Chrome -bind_internal.h:680 ) void base::internal::Invoker<base::internal::BindState<void (sync_sessions::SessionSyncBridge::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), base::internal::UnretainedWrapper<sync_sessions::SessionSyncBridge> >, void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>::RunImpl<void (sync_sessions::SessionSyncBridge::* const&)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), std::__1::tuple<base::internal::UnretainedWrapper<sync_sessions::SessionSyncBridge> > const&, 0ul>(void (sync_sessions::SessionSyncBridge::* const&&&)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), std::__1::tuple<base::internal::UnretainedWrapper<sync_sessions::SessionSyncBridge> > const&&&, std::__1::integer_sequence<unsigned long, 0ul>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) 0x000000018c40374c (UIKit + 0x004ad74c ) 0x000000018bf979a0 (UIKit + 0x000419a0 ) 0x000000018bf97328 (UIKit + 0x00041328 ) 0x000000018c08123c (UIKit + 0x0012b23c ) 0x00000001a2461944 (UIKit + 0x000a4944 ) -[UIViewAnimationStateAccessibility animationDidStop:finished:] 0x0000000186527368 (QuartzCore + 0x00132368 ) 0x0000000181c80a5c (libdispatch.dylib + 0x00001a5c ) 0x0000000181c8d658 (libdispatch.dylib + 0x0000e658 ) 0x000000018233706c (CoreFoundation + 0x000ee06c ) __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ 0x0000000182334bc4 (CoreFoundation + 0x000ebbc4 ) __CFRunLoopRun 0x0000000182254da4 (CoreFoundation + 0x0000bda4 ) CFRunLoopRunSpecific 0x000000018423a01c (GraphicsServices + 0x0000b01c ) GSEventRunModal 0x000000018c2739c8 (UIKit + 0x0031d9c8 ) 0x0000000100686910 (Chrome -chrome_exe_main.mm:54 ) main 0x0000000181ce5fbc (libdyld.dylib + 0x00000fbc ) start Link to crash log: https://crash.corp.google.com/browse?stbtiq=68d1203466e6a7bb Link to video: https://drive.google.com/file/d/1FxuU-JnTQ8IjTAFIiHG42PBlmqAGPnGg/view?usp=sharing
,
Aug 6
,
Aug 6
Yes, a crash makes this an RBS.
,
Aug 6
+edchin: http://crrev.com/c/1130462 introduces this crash. This was added on that CL: // Without this DCHECK, |sectionIdentifierToRemove| can continue to // increment indefinitely. It is a programmer error for the model not to // have an expected session section. DCHECK([self.tableViewModel hasSectionForSectionIdentifier:sectionIdentifierToRemove]); And we used to have: if([self.tableViewModel hasSectionForSectionIdentifier:sectionIdentifierToRemove]){ E.g. we can hide/delete section 2 when selecting hideForNow on section 2 (Leaving sections 3 and 4 untouched). That DCHECK will get hit on the next update since there's no section 2 anymore, and since the if condition was removed the app crashes. I'm not sure if there was a problem you encountered with the previous if condition (since you added that comment), but re-adding it fixes the crash. So I want to make sure I'm not re-introducing another issue here. I tried creating an eg test for this but we need to create a remote session with a TabOpen for this to work. Will reach out to identity to see if they have any ideas. Fix CL: http://crrev.com/c/1164256
,
Aug 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c097daf8d38417cffe8e1104f712f37072caff46 commit c097daf8d38417cffe8e1104f712f37072caff46 Author: sczs <sczs@chromium.org> Date: Wed Aug 08 17:38:17 2018 [ios] Checks if section exists on RecentTabs session deletion Bug: 871200 Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet Change-Id: I73ec397b9fcc9d243766753e2251ba261c443022 Reviewed-on: https://chromium-review.googlesource.com/1164256 Reviewed-by: edchin <edchin@chromium.org> Commit-Queue: Sergio Collazos <sczs@chromium.org> Cr-Commit-Position: refs/heads/master@{#581620} [modify] https://crrev.com/c097daf8d38417cffe8e1104f712f37072caff46/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
,
Aug 8
Waiting for next canary for verification.
,
Aug 9
Verified on latest Canary, kariahda@ could you PTAL?
,
Aug 9
This bug requires manual review: Less than 22 days to go before AppStore submit on M69 Please contact the milestone owner if you have questions. Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Aug 9
Approved.
,
Aug 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/168f7e3fc698e0065b8e0a3a247b3ff06f3ded95 commit 168f7e3fc698e0065b8e0a3a247b3ff06f3ded95 Author: sczs <sczs@chromium.org> Date: Thu Aug 09 21:44:07 2018 [ios] Checks if section exists on RecentTabs session deletion TBR=sczs@chromium.org (cherry picked from commit c097daf8d38417cffe8e1104f712f37072caff46) Bug: 871200 Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet Change-Id: I73ec397b9fcc9d243766753e2251ba261c443022 Reviewed-on: https://chromium-review.googlesource.com/1164256 Reviewed-by: edchin <edchin@chromium.org> Commit-Queue: Sergio Collazos <sczs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#581620} Reviewed-on: https://chromium-review.googlesource.com/1169632 Reviewed-by: Sergio Collazos <sczs@chromium.org> Cr-Commit-Position: refs/branch-heads/3497@{#520} Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753} [modify] https://crrev.com/168f7e3fc698e0065b8e0a3a247b3ff06f3ded95/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
,
Aug 14
Tested in: App Version: 70.0.3521.0 canary Devices: iPhone 7 Plus, iPhone 6 Plus, iPhone 6S Plus iOS Version: 10.3.3, 11.4.1, 12.0 beta 6 This crash is not reproducible on iOS 11.4.1 & 12.0 beta 6 devices and still reproducible in iOS 10 devices with the steps mentioned in comment #0 but magic signature & stack trace looks similar to https://crbug.com/851946 Hence, marking this bug as 'verified'
,
Aug 15
Verified on iPhone X iOS 11.4, iPhone 6 iOS 12 beta8 on 69.0.3497.41 beta .App does not crash. But the app still crashes on iPad Pro 12'9 iOS 10.3.3 on 69.0.3497.41 beta
,
Aug 15
Thanks vbhatsoori@ Can you reproduce constantly on iPad Pro? Could you please file a bug for this with any extra details that might help?
,
Aug 16
A bug has already been filed. https://bugs.chromium.org/p/chromium/issues/detail?id=851946 |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by sczs@chromium.org
, Aug 6Labels: M-69
Owner: sczs@chromium.org
Status: Started (was: Untriaged)