Closed ladeiko closed 4 years ago
It's look like that you use a lot of recursion calls? - https://github.com/belozierov/SwiftCoroutine/issues/22
stack buffer overflow - it's possible.. But swift access race ....
anyway, thanks for help. will try to locate problem code
Used memory sanitizer in xcode, and got crash:
Crashed Thread: 13 Dispatch queue: com.apple.root.default-qos
abort() called CoreSimulator 732.17 - Device: iPhone 8 (88037FF6-637E-4827-B62A-4BD2AD70CCE6) - Runtime: iOS 12.2 (16E226) - DeviceType: iPhone 8
Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information: ==49420==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x700004312000; bottom 0x10013c25e000; size: 0x5ffec80b4000 (105547882512384) False positive error reports may follow
SUMMARY: AddressSanitizer: stack-buffer-overflow (/Users/admin/Library/Developer/CoreSimulator/Devices/88037FF6-637E-4827-B62A-4BD2AD70CCE6/data/Containers/Bundle/Application/F8151562-99F5-44CC-8239-92715B85CBED/MyApp.app/Frameworks/libclang_rt.asan_iossim_dynamic.dylib:x86_64+0x17e70) in wrap_memcpy+0x3a0 Shadow bytes around the buggy address: 0x020155643f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643f80: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 =>0x020155643f90:[01]f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x020155643fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==49420==ABORTING
Thread 13 Crashed:: Dispatch queue: com.apple.root.default-qos 0 libsystem_kernel.dylib 0x000000011029b33a pthread_kill + 10 1 libsystem_pthread.dylib 0x00000001102f8e60 pthread_kill + 430 2 libsystem_c.dylib 0x000000011005e0bc abort + 144 3 libsystem_c.dylib 0x000000011005e02c abort + 142 4 libclang_rt.asan_iossim_dynamic.dylib 0x0000000104024d06 sanitizer::Abort() + 70 5 libclang_rt.asan_iossim_dynamic.dylib 0x00000001040246f4 __sanitizer::Die() + 196 6 libclang_rt.asan_iossim_dynamic.dylib 0x000000010400c374 asan::ScopedInErrorReport::~ScopedInErrorReport() + 420 7 libclang_rt.asan_iossim_dynamic.dylib 0x000000010400bc0e asan::ReportGenericError(unsigned long, unsigned long, unsigned long, unsigned long, bool, unsigned long, unsigned int, bool) + 1198 8 libclang_rt.asan_iossim_dynamic.dylib 0x0000000103fdbe90 wrap_memcpy + 960 9 org.cocoapods.SwiftCoroutine 0x000000010b657f45 SharedCoroutine.saveStack() + 2053 (SharedCoroutine.swift:78) 10 org.cocoapods.SwiftCoroutine 0x000000010b65fb97 SharedCoroutineQueue.start(dispatcher:scheduler:task:) + 1143 (SharedCoroutineQueue.swift:38) 11 org.cocoapods.SwiftCoroutine 0x000000010b65cba3 closure #1 in SharedCoroutineDispatcher.execute(on:task:) + 579 (SharedCoroutineDispatcher.swift:27) 12 org.cocoapods.SwiftCoroutine 0x000000010b623821 thunk for @escaping @callee_guaranteed () -> () + 145 13 libclang_rt.asan_iossim_dynamic.dylib 0x00000001040049cb wrap_dispatch_async_block_invoke + 203 14 libdispatch.dylib 0x000000010ff02d7f _dispatch_call_block_and_release + 12 15 libdispatch.dylib 0x000000010ff03db5 _dispatch_client_callout + 8 16 libdispatch.dylib 0x000000010ff067b9 _dispatch_queue_override_invoke + 1022 17 libdispatch.dylib 0x000000010ff14632 _dispatch_root_queue_drain + 351 18 libdispatch.dylib 0x000000010ff14fca _dispatch_worker_thread2 + 130 19 libsystem_pthread.dylib 0x00000001102f59f7 _pthread_wqthread + 220 20 libsystem_pthread.dylib 0x00000001102f4b77 start_wqthread + 15
WARNING: ThreadSanitizer: Swift access race (pid=51212) Modifying access of Swift variable at 0x7b1000453c18 by thread T19:
0 $s14SwiftCoroutine8CoFutureC11addCallbackyyys6ResultOyxs5Error_pGcF (SwiftCoroutine:x86_64+0x2bf68)
Previous read of size 8 at 0x7b1000453c18 by thread T18:
0 $s14SwiftCoroutine13CallbackStackV6appendySbyxcF (SwiftCoroutine:x86_64+0x1e035)
ThreadSanitizer report breakpoint hit. Use 'thread info -s' to get extended information about the report. A 0
31 $s14SwiftCoroutine06SharedB10DispatcherC7execute2on4taskyAA0B9Scheduler_p_yyctFyycfU_TA (SwiftCoroutine:x86_64+0x4f414)
Location is heap block of size 64 at 0x7b1000453c00 allocated by thread T18:
0 malloc (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x4ef1a)
e0B7ContextC5startSbyFySVSgcfU_To (SwiftCoroutine:x86_64+0x3d330)
12 __start (SwiftCoroutine:x86_64+0x3ffa)
Thread T19 (tid=5147481, running) is a GCD worker thread
Thread T18 (tid=5147475, running) is a GCD worker thread
SUMMARY: ThreadSanitizer: Swift access race (/Users/admin/Library/Developer/CoreSimulator/Devices/88037FF6-637E-4827-B62A-4BD2AD70CCE6/data/Containers/Bundle/Application/89A141C1-2DC8-4A6C-B3DB-65CC1E2A08F7/MyApp.app/Frameworks/SwiftCoroutine.framework/SwiftCoroutine:x86_64+0x2bf68) in $s14SwiftCoroutine8CoFutureC11addCallbackyyys6ResultOyxs5Error_pGcF+0x1f8
ThreadSanitizer report breakpoint hit. Use 'thread info -s' to get extended information about the report.
WARNING: ThreadSanitizer: Swift access race (pid=51212) Modifying access of Swift variable at 0x7b140011cb70 by thread T18:
0 $s14SwiftCoroutine06SharedB10DispatcherC4pushyyAA0cB5QueueCF (SwiftCoroutine:x86_64+0x4f912)
Previous modifying access of Swift variable at 0x7b140011cb70 by thread T19:
0 $s14SwiftCoroutine9FifoQueueV3popxSgyF (SwiftCoroutine:x86_64+0x474bf)
Location is heap block of size 72 at 0x7b140011cb50 allocated by main thread:
0 malloc (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x4ef1a)
Thread T18 (tid=5147475, running) is a GCD worker thread
Thread T19 (tid=5147481, running) is a GCD worker thread
SUMMARY: ThreadSanitizer: Swift access race (/Users/admin/Library/Developer/CoreSimulator/Devices/88037FF6-637E-4827-B62A-4BD2AD70CCE6/data/Containers/Bundle/Application/89A141C1-2DC8-4A6C-B3DB-65CC1E2A08F7/MyApp.app/Frameworks/SwiftCoroutine.framework/SwiftCoroutine:x86_64+0x4f912) in $s14SwiftCoroutine06SharedB10DispatcherC4pushyyAA0cB5QueueCF+0x222
ThreadSanitizer report breakpoint hit. Use 'thread info -s' to get extended information about the report.
WARNING: ThreadSanitizer: Swift access race (pid=51212) Modifying access of Swift variable at 0x7b140011cb80 by thread T18:
0 $s14SwiftCoroutine9FifoQueueV4pushyyxF (SwiftCoroutine:x86_64+0x45dff)
Previous write of size 1 at 0x7b140011cb80 by thread T19: [failed to restore the stack]
Location is heap block of size 72 at 0x7b140011cb50 allocated by main thread:
0 malloc (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x4ef1a)
Thread T18 (tid=5147475, running) is a GCD worker thread
Thread T19 (tid=5147481, running) is a GCD worker thread
SUMMARY: ThreadSanitizer: Swift access race (/Users/admin/Library/Developer/CoreSimulator/Devices/88037FF6-637E-4827-B62A-4BD2AD70CCE6/data/Containers/Bundle/Application/89A141C1-2DC8-4A6C-B3DB-65CC1E2A08F7/MyApp.app/Frameworks/SwiftCoroutine.framework/SwiftCoroutine:x86_64+0x45dff) in $s14SwiftCoroutine9FifoQueueV4pushyyxF+0x38f