New issue
Advanced search Search tips

Issue 871200 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Aug 8
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug
Q2



Sign in to add a comment

App crashes on tapping ‘hide for now’ button in other devices recent tabs

Project Member Reported by rakurati@chromium.org, Aug 6

Issue description

App 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

 
Cc: -sczs@chromium.org marq@chromium.org rohitrao@chromium.org
Labels: M-69
Owner: sczs@chromium.org
Status: Started (was: Untriaged)
+rohitrao@,marq@ depending of the fix/repro steps I think we might want to cherrypick this to M69. Though I'm not sure whats the plan for cherrypicks now, but I guess a crash would pass the bar.


Labels: Q2
Labels: ReleaseBlock-Stable
Yes, a crash makes this an RBS.
Cc: edchin@chromium.org
+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

Project Member

Comment 5 by bugdroid1@chromium.org, 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

Labels: Merge-TBD
Status: Fixed (was: Started)
Waiting for next canary for verification.
Cc: kariahda@chromium.org
Labels: Merge-Request-69
Verified on latest Canary, kariahda@ could you PTAL?
Project Member

Comment 8 by sheriffbot@chromium.org, Aug 9

Labels: -Merge-Request-69 Merge-Review-69 Hotlist-Merge-Review
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
Labels: -Merge-TBD -Merge-Review-69 Merge-Approved-69
Approved.
Project Member

Comment 10 by bugdroid1@chromium.org, Aug 9

Labels: -merge-approved-69 merge-merged-3497
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

Status: Verified (was: Fixed)
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'
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
Cc: vbhatso...@chromium.org
Thanks vbhatsoori@ Can you reproduce constantly on iPad Pro? Could you please file a bug for this with any extra details that might help? 

Sign in to add a comment