UITableView causes a crash when Delete swipe action & another row are being tapped simultaneously

Originator:corrmage
Number:rdar://33540825 Date Originated:26-Jul-2017 05:29 PM
Status:Closed Resolved:
Product:iOS + SDK Product Version:11 beta 4
Classification:Crash/Hang/Data Loss Reproducible:Always
 
Summary:
UITableView can’t handle simultaneous taps on Delete action of a row and on another row.

Steps to Reproduce:
1. Create simple VC with table view with some contents, enabled Delete swipe action & enabled cell selection (see attached project)
2. Swipe left on a row to reveal Delete action
3. Tap Delete action AND another row simultaneously

Expected Results:
App doesn’t crash.

Actual Results:
App crashes with the following exception:

2017-07-26 17:12:04.134173+0200 TableViewCrashiOS11[1870:1030877] *** Assertion failure in -[_UITableViewSubviewManager preventReuseOfCell:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3683.300.2/_UITableViewSubviewManager.m:80
UITableView internal inconsistency: cell should not be nil in preventReuseOfCell:
(null)

2017-07-26 17:12:09.399031+0200 TableViewCrashiOS11[1870:1030877] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView internal inconsistency: cell should not be nil in preventReuseOfCell:'
*** First throw call stack:
(0x18394d858 0x182124528 0x18394d72c 0x184482280 0x18a830288 0x18a48f590 0x18aa803c0 0x18a829e48 0x18a4902e8 0x18a829d90 0x18aa801c4 0x18aa81578 0x18ab34c28 0x18a18fcb8 0x18a18fc38 0x18a17adc8 0x18a18f52c 0x18a7b0dfc 0x18a7ac3f0 0x18a7abf24 0x18a7ab080 0x18a18a4f4 0x18a15bb38 0x18aa5d514 0x18aa5f984 0x18aa58af0 0x1838f4528 0x1838f3d5c 0x1838f1904 0x183810280 0x185321f94 0x18a1bf0f0 0x103880594 0x182601e40)
libc++abi.dylib: terminating with uncaught exception of type NSException



Version:
11 beta 4

Notes:

Comments

Resolved in (apparently) 11.2

Can be reproduced in Reminders App on iOS 11 beta 10

By larionov.alvl at Sept. 11, 2017, 10:50 a.m. (reply...)

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!