SIGSEGV: Crash due to signal: SIGSEGV(SEGV_MAPERR) at 0000000c

Hello Support Team and members, I have been debugging a crash for more than 2 months now and not able to find the cause or able to reproduce.

data:text/text;charset=utf-8,
# Cause: Crash due to signal: SIGSEGV(SEGV_MAPERR) at 0000000c
# Reported at: 2021-07-23 04:22:58 UTC

Thread 0 [Crashed]:

0    libobjc.A.dylib                          0x1a8ccae2c     AutoreleasePoolPage::AutoreleasePoolPage(AutoreleasePoolPage*) + 84
1    libobjc.A.dylib                          0x1a8ccac2c     AutoreleasePoolPage::autoreleaseFullPage(objc_object*, AutoreleasePoolPage*) + 59
2    libobjc.A.dylib                          0x1a8ccaabc     objc_object::rootAutorelease2() + 107
3    CoreAutoLayout                           0x1a8f24e78     _engineVar_forVariable + 203
4    CoreAutoLayout                           0x1a8f3813c     -[NSISLinearExpression addVariable:coefficient:] + 59
5    UIKitCore                                0x197f8c258     -[UIView(AdditionalLayoutSupport) nsli_lowerAttribute:intoExpression:withCoefficient:forConstraint:onBehalfOfLayoutGuide:] + 2999
6    UIKitCore                                0x197f8b688     -[UIView(AdditionalLayoutSupport) nsli_lowerAttribute:intoExpression:withCoefficient:forConstraint:] + 307
7    CoreAutoLayout                           0x1a8f42928     -[NSLayoutConstraint _lowerIntoExpression:reportingConstantIsRounded:] + 75
8    CoreAutoLayout                           0x1a8f3ec90     -[NSLayoutConstraint _tryToChangeContainerGeometryWithUndoHandler:] + 171
9    CoreAutoLayout                           0x1a8f3f4b0     -[NSLayoutConstraint _setSymbolicConstant:constant:symbolicConstantMultiplier:] + 403
10   CoreAutoLayout                           0x1a8f3f8d0     -[NSLayoutConstraint setConstant:] + 91
11   UIKitCore                                0x197f7e538     -[UIView(UIConstraintBasedLayout) _updateContentSizeConstraints] + 687
12   UIKitCore                                0x197f87e94     -[UIView(AdditionalLayoutSupport) _updateSystemConstraints] + 123
13   UIKitCore                                0x197f86c60     -[UIView(AdditionalLayoutSupport) _sendUpdateConstraintsIfNecessaryForSecondPass:] + 479
14   UIKitCore                                0x197f87114     -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededCollectingViews:forSecondPass:] + 943
15   UIKitCore                                0x197f86ff4     -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededCollectingViews:forSecondPass:] + 655
16   CoreAutoLayout                           0x1a8f2a934     -[NSISEngine withBehaviors:performModifications:] + 79
17   UIKitCore                                0x197f877cc     _100-[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededWithViewForVariableChangeNotifications:]_block_invoke + 87
18   UIKitCore                                0x197f861f0     -[UIView(AdditionalLayoutSupport) _withUnsatisfiableConstraintsLoggingSuspendedIfEngineDelegateExists:] + 119
19   UIKitCore                                0x197f87418     -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededWithViewForVariableChangeNotifications:] + 159
20   UIKitCore                                0x197f883f0     -[UIView(AdditionalLayoutSupport) _updateConstraintsAtEngineLevelIfNeededWithViewForVariableChangeNotifications:] + 427
21   UIKitCore                                0x198058524     -[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 367
22   UIKitCore                                0x19806b288     -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2467
23   QuartzCore                               0x19856eb2c     -[CALayer layoutSublayers] + 287
24   QuartzCore                               0x198574ff8     CA::Layer::layout_if_needed(CA::Transaction*) + 519
25   QuartzCore                               0x198580314     CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 139
26   QuartzCore                               0x1984cc570     CA::Context::commit_transaction(CA::Transaction*, double, double*) + 415
27   QuartzCore                               0x1984f66f8     CA::Transaction::commit() + 727
28   QuartzCore                               0x1984f79a8     CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 91
29   CoreFoundation                           0x19527c86c     _CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 31
30   CoreFoundation                           0x195276f40     _CFRunLoopDoObservers + 603
31   CoreFoundation                           0x195277488     _CFRunLoopRun + 959
32   CoreFoundation                           0x195276b90     CFRunLoopRunSpecific + 571
33   GraphicsServices                         0x1ab599598     GSEventRunModal + 159
34   UIKitCore                                0x197b60638     -[UIApplication _run] + 1051
35   UIKitCore                                0x197b65bb8     UIApplicationMain + 163
36   Gojek                                    0x10228a840     main (VTGojekCreator.swift:52)
37   libdyld.dylib                            0x194f55588     $start + 3

Thread 1:

0    libsystem_kernel.dylib                   0x1c032a48c     _workq_kernreturn + 8
1    libsystem_pthread.dylib                  0x1db961874     $start_wqthread + 7

I added few logs in Crash reporting tools and looks like it is crashing while pushing the new controller but I can see looking at the logs that loadView of next view controller is not even getting called. I have had no luck reproducing it in local machine after thousand of tries across different simulator and devices. This crash is happening across the devices and iOS versions.

Please help me out, I am feeling lost now.

Problems like this, where you hit a memory access exception when draining the autorelease pool, are almost always a memory management issue, and most commonly an over-release issue. That is, something in your process is releasing an object more times than it should, leaving a dangling reference in the autorelease pool. When the system goes to drain that pool, it releases that dangling reference and then crashes.

The first step in debugging such problems is to run the app under the standard memory debugging tools, and specifically Zombies. These tools ofter turn unreproducible problems into reproducible ones, and you can debug from there.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thank you @eskimo.

I have already tried address sanitiser and zombies, it doesn't point out to anything.

Since I am using ARC and latest swift language, why would over release can happen? This crash is locally not reproducible.

Is there any way we can know which object is over releasing?

One interesting fact about this is that out of ~600 users, this crash is happening for ~25 users consistently, those 25 users can't use the app at all.

SIGSEGV: Crash due to signal: SIGSEGV(SEGV_MAPERR) at 0000000c
 
 
Q