-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
Description
CancellableContinuationImpl.getParentHandle/setParentHandle
WARNING: ThreadSanitizer: data race (pid=88874)
Read of size 8 at 0x7b1400020b60 by thread T3:
#0 kfun:kotlinx.coroutines.CancellableContinuationImpl.<get-parentHandle>#internal CancellableContinuationImpl.kt:75 (newMM.kexe:x86_64+0x10019410b)
#1 kfun:kotlinx.coroutines.CancellableContinuationImpl#detachChild(){} CancellableContinuationImpl.kt:495 (newMM.kexe:x86_64+0x10019affb)
#2 kfun:kotlinx.coroutines.CancellableContinuationImpl.detachChildIfNonResuable#internal CancellableContinuationImpl.kt:488 (newMM.kexe:x86_64+0x10019af32)
#3 kfun:kotlinx.coroutines.CancellableContinuationImpl#cancel(kotlin.Throwable?){}kotlin.Boolean CancellableContinuationImpl.kt:174 (newMM.kexe:x86_64+0x10019623c)
#4 kfun:kotlinx.coroutines.CancellableContinuationImpl#parentCancelled(kotlin.Throwable){} CancellableContinuationImpl.kt:190 (newMM.kexe:x86_64+0x100196420)
#5 kfun:kotlinx.coroutines.ChildContinuation#invoke(kotlin.Throwable?){} JobSupport.kt:1475 (newMM.kexe:x86_64+0x1001cbf2d)
#6 kfun:kotlinx.coroutines.JobSupport.notifyCancelling#internal JobSupport.kt:330 (newMM.kexe:x86_64+0x1001b8f46)
#7 kfun:kotlinx.coroutines.JobSupport.tryMakeCancelling#internal JobSupport.kt:795 (newMM.kexe:x86_64+0x1001c1a21)
#8 kfun:kotlinx.coroutines.JobSupport.makeCancelling#internal JobSupport.kt:732 (newMM.kexe:x86_64+0x1001c0f01)
#9 kfun:kotlinx.coroutines.JobSupport#cancelImpl(kotlin.Any?){}kotlin.Boolean JobSupport.kt:671 (newMM.kexe:x86_64+0x1001bf5b1)
#10 kfun:kotlinx.coroutines.JobSupport#cancelCoroutine(kotlin.Throwable?){}kotlin.Boolean JobSupport.kt:658 (newMM.kexe:x86_64+0x1001bf142)
#11 kfun:kotlinx.coroutines.TimeoutCoroutine.run#internal Timeout.kt:154 (newMM.kexe:x86_64+0x1001d3218)
#12 kfun:kotlinx.coroutines.WorkerDispatcher.DisposableBlock.invoke#internal MultithreadedDispatchers.kt:46 (newMM.kexe:x86_64+0x10030407b)
#13 kfun:kotlinx.coroutines.WorkerDispatcher.DisposableBlock.$<bridge-UNN>invoke(){}#internal MultithreadedDispatchers.kt:42 (newMM.kexe:x86_64+0x100304228)
#14 WorkerLaunchpad Internal.kt:87 (newMM.kexe:x86_64+0x10002b05e)
#15 Worker::processQueueElement(bool) <null>:2 (newMM.kexe:x86_64+0x100e086d1)
#16 (anonymous namespace)::workerRoutine(void*) <null>:2 (newMM.kexe:x86_64+0x100e0784c)
Previous write of size 8 at 0x7b1400020b60 by main thread:
#0 UpdateHeapRef <null>:2 (newMM.kexe:x86_64+0x100dff931)
#1 kfun:kotlinx.coroutines.CancellableContinuationImpl.<set-parentHandle>#internal CancellableContinuationImpl.kt:75 (newMM.kexe:x86_64+0x1001941e1)
#2 kfun:kotlinx.coroutines.CancellableContinuationImpl.installParentHandle#internal CancellableContinuationImpl.kt:312 (newMM.kexe:x86_64+0x10019851b)
#3 kfun:kotlinx.coroutines.CancellableContinuationImpl#initCancellability(){} CancellableContinuationImpl.kt:98 (newMM.kexe:x86_64+0x10019486b)
#4 kfun:kotlinx.coroutines#delay(kotlin.Long){} Delay.kt:16 (newMM.kexe:x86_64+0x1001a63d6)
#5 kfun:kotlinx.coroutines#delay(kotlin.time.Duration){} Delay.kt:136 (newMM.kexe:x86_64+0x1001a6dfb)
#6 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:124 (newMM.kexe:x86_64+0x100554f9b)
#7 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x100555397)
#8 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal.1444 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x10055549b)
#9 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#10 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#11 kfun:kotlinx.coroutines#withTimeout(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:18 (newMM.kexe:x86_64+0x1001d18be)
#12 kfun:kotlinx.coroutines#withTimeout(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:71 (newMM.kexe:x86_64+0x1001d1a0a)
#13 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x1005558f4)
#14 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100555d97)
#15 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal.1446 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x100555e9b)
#16 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#17 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#18 kfun:kotlinx.coroutines.$withTimeoutOrNullCOROUTINE$2706#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? Timeout.kt:100 (newMM.kexe:x86_64+0x1001d2506)
#19 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:95 (newMM.kexe:x86_64+0x1001d2931)
#20 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:134 (newMM.kexe:x86_64+0x1001d1ee8)
#21 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21COROUTINE$620.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100556291)
#22 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#23 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#24 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#25 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#26 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#27 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#28 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#29 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest#testNestedTimeout(){} WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x10054a567)
#30 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.invoke#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x1005638b0)
#31 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.$<bridge-UNNN>invoke(-1:0){}#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x100563bf6)
#32 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#33 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#34 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#35 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#36 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#37 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#38 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#39 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#40 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#41 start <null>:2 (dyld:x86_64+0x551d)
Location is heap block of size 72 at 0x7b1400020b20 allocated by main thread:
#0 calloc <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x534a4)
#1 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Node::Create(kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData>&, unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd5c90)
#2 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Producer::Insert(unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd56b1)
#3 AllocInstance <null>:2 (newMM.kexe:x86_64+0x100dfeaad)
#4 kfun:kotlinx.coroutines#delay(kotlin.Long){} Delay.kt:16 (newMM.kexe:x86_64+0x1001a633c)
#5 kfun:kotlinx.coroutines#delay(kotlin.time.Duration){} Delay.kt:136 (newMM.kexe:x86_64+0x1001a6dfb)
#6 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:124 (newMM.kexe:x86_64+0x100554f9b)
#7 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x100555397)
#8 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal.1444 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x10055549b)
#9 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#10 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#11 kfun:kotlinx.coroutines#withTimeout(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:18 (newMM.kexe:x86_64+0x1001d18be)
#12 kfun:kotlinx.coroutines#withTimeout(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:71 (newMM.kexe:x86_64+0x1001d1a0a)
#13 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x1005558f4)
#14 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100555d97)
#15 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal.1446 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x100555e9b)
#16 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#17 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#18 kfun:kotlinx.coroutines.$withTimeoutOrNullCOROUTINE$2706#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? Timeout.kt:100 (newMM.kexe:x86_64+0x1001d2506)
#19 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:95 (newMM.kexe:x86_64+0x1001d2931)
#20 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:134 (newMM.kexe:x86_64+0x1001d1ee8)
#21 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21COROUTINE$620.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100556291)
#22 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#23 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#24 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#25 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#26 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#27 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#28 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#29 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest#testNestedTimeout(){} WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x10054a567)
#30 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.invoke#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x1005638b0)
#31 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.$<bridge-UNNN>invoke(-1:0){}#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x100563bf6)
#32 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#33 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#34 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#35 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#36 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#37 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#38 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#39 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#40 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#41 start <null>:2 (dyld:x86_64+0x551d)
Thread T3 (tid=8194867, running) created by main thread at:
#0 pthread_create <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2bb6f)
#1 Kotlin_Worker_startInternal <null>:2 (newMM.kexe:x86_64+0x100e0cfe4)
#2 kfun:kotlin.native.concurrent.Worker.Companion#start(kotlin.Boolean;kotlin.String?){}kotlin.native.concurrent.Worker Worker.kt:43 (newMM.kexe:x86_64+0x10002ee13)
#3 kfun:kotlin.native.concurrent.Worker.Companion#start$default(kotlin.Boolean;kotlin.String?;kotlin.Int){}kotlin.native.concurrent.Worker Worker.kt:42 (newMM.kexe:x86_64+0x10002ef74)
#4 kfun:kotlinx.coroutines.WorkerDispatcher#<init>(kotlin.String){} MultithreadedDispatchers.kt:25 (newMM.kexe:x86_64+0x10030329a)
#5 kfun:kotlinx.coroutines.DefaultExecutor#<init>(){} CoroutineContext.kt:13 (newMM.kexe:x86_64+0x1002ff65d)
#6 kotlin::mm::InitSingleton(kotlin::mm::ThreadData*, ObjHeader**, TypeInfo const*, void (*)(ObjHeader*), ObjHeader**) <null>:2 (newMM.kexe:x86_64+0x100dff504)
#7 InitSingleton <null>:2 (newMM.kexe:x86_64+0x100dfef35)
#8 kfun:kotlinx.coroutines.$init_global#internal.188 CoroutineContext.kt:44 (newMM.kexe:x86_64+0x1002fe5dd)
#9 CallInitGlobalPossiblyLock <null>:2 (newMM.kexe:x86_64+0x100e1e6e9)
#10 kfun:kotlinx.coroutines#newCoroutineContext__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext){}kotlin.coroutines.CoroutineContext CoroutineContext.kt:1 (newMM.kexe:x86_64+0x1002fe8e7)
#11 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:46 (newMM.kexe:x86_64+0x1002fcf94)
#12 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#13 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#14 kfun:kotlinx.coroutines.AbstractCoroutineTest#testNotifications(){} AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x10030e3a3)
#15 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.invoke#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311740)
#16 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.$<bridge-UNNN>invoke(-1:0){}#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311a86)
#17 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#18 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#19 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#20 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#21 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#22 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#23 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#24 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#25 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#26 start <null>:2 (dyld:x86_64+0x551d)
SUMMARY: ThreadSanitizer: data race CancellableContinuationImpl.kt:75 in kfun:kotlinx.coroutines.CancellableContinuationImpl.<get-parentHandle>#internal
JobNode.getNode/setJob
WARNING: ThreadSanitizer: data race (pid=88874)
Read of size 8 at 0x7b100012dfb0 by thread T3:
#0 kfun:kotlinx.coroutines.JobNode#<get-job>(){}kotlinx.coroutines.JobSupport JobSupport.kt:1355 (newMM.kexe:x86_64+0x1001cb3cd)
#1 kfun:kotlinx.coroutines.JobNode#dispose(){} JobSupport.kt:1358 (newMM.kexe:x86_64+0x1001cb6a7)
#2 kfun:kotlinx.coroutines.CancellableContinuationImpl#detachChild(){} CancellableContinuationImpl.kt:496 (newMM.kexe:x86_64+0x10019b10a)
#3 kfun:kotlinx.coroutines.CancellableContinuationImpl.detachChildIfNonResuable#internal CancellableContinuationImpl.kt:488 (newMM.kexe:x86_64+0x10019af32)
#4 kfun:kotlinx.coroutines.CancellableContinuationImpl.tryResumeImpl#internal CancellableContinuationImpl.kt:460 (newMM.kexe:x86_64+0x10019ab62)
#5 kfun:kotlinx.coroutines.CancellableContinuationImpl#tryResume(1:0;kotlin.Any?;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?){}kotlin.Any? CancellableContinuationImpl.kt:505 (newMM.kexe:x86_64+0x10019b3c6)
#6 kfun:kotlinx.coroutines.channels.AbstractChannel.ReceiveElement.tryResumeReceive#internal AbstractChannel.kt:901 (newMM.kexe:x86_64+0x1001dc8de)
#7 kfun:kotlinx.coroutines.channels.ArrayChannel#offerInternal(1:0){}kotlin.Any ArrayChannel.kt:58 (newMM.kexe:x86_64+0x1001f7b3a)
#8 kfun:kotlinx.coroutines.channels.AbstractSendChannel#send(1:0){} AbstractChannel.kt:134 (newMM.kexe:x86_64+0x1001e30a4)
#9 kfun:kotlinx.coroutines.channels.ChannelCoroutine#send(1:0){} ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020b0e3)
#10 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collector$lambda$79COROUTINE$952.invokeSuspend#internal FlowInvariantsTest.kt:266 (newMM.kexe:x86_64+0x1006bf746)
#11 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collector$lambda$79COROUTINE$952.invoke#internal FlowInvariantsTest.kt:265 (newMM.kexe:x86_64+0x1006bfb47)
#12 kfun:kotlinx.coroutines.flow.ChannelFlowBuilder.collectTo#internal Builders.kt:322 (newMM.kexe:x86_64+0x10021e372)
#13 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$<get-collectToFun>$lambda$0COROUTINE$2729.invokeSuspend#internal ChannelFlow.kt:60 (newMM.kexe:x86_64+0x100240b57)
#14 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#15 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#16 kfun:kotlinx.coroutines.WorkerDispatcher.dispatch$lambda$0#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x100303b5b)
#17 kfun:kotlinx.coroutines.WorkerDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1631.invoke#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x1003042c9)
#18 kfun:kotlinx.coroutines.WorkerDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1631.$<bridge-UNN>invoke(){}#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x1003043d8)
#19 WorkerLaunchpad Internal.kt:87 (newMM.kexe:x86_64+0x10002b05e)
#20 Worker::processQueueElement(bool) <null>:2 (newMM.kexe:x86_64+0x100e086d1)
#21 (anonymous namespace)::workerRoutine(void*) <null>:2 (newMM.kexe:x86_64+0x100e0784c)
Previous write of size 8 at 0x7b100012dfb0 by main thread:
#0 UpdateHeapRef <null>:2 (newMM.kexe:x86_64+0x100dff931)
#1 kfun:kotlinx.coroutines.JobNode#<set-job>(kotlinx.coroutines.JobSupport){} JobSupport.kt:1355 (newMM.kexe:x86_64+0x1001cb511)
#2 kfun:kotlinx.coroutines.JobSupport.makeNode#internal JobSupport.kt:519 (newMM.kexe:x86_64+0x1001bc85f)
#3 kfun:kotlinx.coroutines.JobSupport#invokeOnCompletion(kotlin.Boolean;kotlin.Boolean;kotlin.Function1<kotlin.Throwable?,kotlin.Unit>){}kotlinx.coroutines.DisposableHandle JobSupport.kt:458 (newMM.kexe:x86_64+0x1001bb908)
#4 kfun:kotlinx.coroutines.Job#invokeOnCompletion$default(kotlin.Boolean;kotlin.Boolean;kotlin.Function1<kotlin.Throwable?,kotlin.Unit>;kotlin.Int){}kotlinx.coroutines.DisposableHandle Job.kt:341 (newMM.kexe:x86_64+0x1001b0531)
#5 kfun:kotlinx.coroutines.CancellableContinuationImpl.installParentHandle#internal CancellableContinuationImpl.kt:308 (newMM.kexe:x86_64+0x1001984e4)
#6 kfun:kotlinx.coroutines.CancellableContinuationImpl#getResult(){}kotlin.Any? CancellableContinuationImpl.kt:271 (newMM.kexe:x86_64+0x100198111)
#7 kfun:kotlinx.coroutines.channels.AbstractChannel.receiveSuspend#internal AbstractChannel.kt:17 (newMM.kexe:x86_64+0x1001d62b0)
#8 kfun:kotlinx.coroutines.channels.AbstractChannel#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> AbstractChannel.kt:633 (newMM.kexe:x86_64+0x1001d6ceb)
#9 kfun:kotlinx.coroutines.channels.ChannelCoroutine#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020ad48)
#10 kfun:kotlinx.coroutines.flow.$emitAllImplCOROUTINE$2720.invokeSuspend#internal Channels.kt:51 (newMM.kexe:x86_64+0x100224182)
#11 kfun:kotlinx.coroutines.flow.emitAllImpl#internal Channels.kt:32 (newMM.kexe:x86_64+0x100224c1f)
#12 kfun:kotlinx.coroutines.flow#emitAll__at__kotlinx.coroutines.flow.FlowCollector<0:0>(kotlinx.coroutines.channels.ReceiveChannel<0:0>){0§<kotlin.Any?>} Channels.kt:30 (newMM.kexe:x86_64+0x100221fc7)
#13 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invokeSuspend#internal ChannelFlow.kt:123 (newMM.kexe:x86_64+0x100241515)
#14 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal ChannelFlow.kt:122 (newMM.kexe:x86_64+0x100241997)
#15 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal.65 ChannelFlow.kt:1 (newMM.kexe:x86_64+0x100241a9b)
#16 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturn__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:88 (newMM.kexe:x86_64+0x1002d3079)
#17 kfun:kotlinx.coroutines#coroutineScope(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 CoroutineScope.kt:15 (newMM.kexe:x86_64+0x1001a45d0)
#18 kfun:kotlinx.coroutines.flow.internal.ChannelFlow#collect(kotlinx.coroutines.flow.FlowCollector<1:0>){} ChannelFlow.kt:122 (newMM.kexe:x86_64+0x10023fdc7)
#19 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.$collectCOROUTINE$896.invokeSuspend#internal FlowInvariantsTest.kt:129 (newMM.kexe:x86_64+0x1006c1a6f)
#20 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.collect#internal FlowInvariantsTest.kt:125 (newMM.kexe:x86_64+0x1006c1d35)
#21 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collectorCOROUTINE$953.invokeSuspend#internal FlowInvariantsTest.kt:268 (newMM.kexe:x86_64+0x1006c050d)
#22 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest$collector#internal FlowInvariantsTest.kt:263 (newMM.kexe:x86_64+0x1006c08b5)
#23 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c0c61)
#24 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c111d)
#25 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal.2117 FlowInvariantsTest.kt:1 (newMM.kexe:x86_64+0x1006c11fd)
#26 kfun:kotlinx.coroutines.intrinsics#startCoroutineUnintercepted__at__kotlin.coroutines.SuspendFunction0<0:0>(kotlin.coroutines.Continuation<0:0>){0§<kotlin.Any?>} Undispatched.kt:18 (newMM.kexe:x86_64+0x1002d2962)
#27 kfun:kotlinx.coroutines.$withEmptyContextCOROUTINE$341#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? EmptyContext.kt:10 (newMM.kexe:x86_64+0x100461de1)
#28 kfun:kotlinx.coroutines#withEmptyContext(kotlin.coroutines.SuspendFunction0<0:0>){0§<kotlin.Any?>}0:0 EmptyContext.kt:10 (newMM.kexe:x86_64+0x1004620c7)
#29 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTestCOROUTINE$897.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x100695560)
#30 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest#internal FlowInvariantsTest.kt:262 (newMM.kexe:x86_64+0x100695905)
#31 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$testEmptyCoroutineContextMap$lambda$62COROUTINE$939.invokeSuspend#internal FlowInvariantsTest.kt:196 (newMM.kexe:x86_64+0x1006b68b6)
#32 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#33 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#34 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#35 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#36 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#37 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#38 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#39 kfun:kotlinx.coroutines.flow.FlowInvariantsTest#testEmptyCoroutineContextMap(){} FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x100694da3)
#40 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.invoke#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c7d30)
#41 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.$<bridge-UNNN>invoke(-1:0){}#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c8076)
#42 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#43 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#44 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#45 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#46 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#47 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#48 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#49 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#50 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#51 start <null>:2 (dyld:x86_64+0x551d)
Location is heap block of size 64 at 0x7b100012df80 allocated by main thread:
#0 calloc <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x534a4)
#1 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Node::Create(kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData>&, unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd5c90)
#2 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Producer::Insert(unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd56b1)
#3 AllocInstance <null>:2 (newMM.kexe:x86_64+0x100dfeaad)
#4 kfun:kotlinx.coroutines.CancellableContinuationImpl.installParentHandle#internal CancellableContinuationImpl.kt:310 (newMM.kexe:x86_64+0x10019847c)
#5 kfun:kotlinx.coroutines.CancellableContinuationImpl#getResult(){}kotlin.Any? CancellableContinuationImpl.kt:271 (newMM.kexe:x86_64+0x100198111)
#6 kfun:kotlinx.coroutines.channels.AbstractChannel.receiveSuspend#internal AbstractChannel.kt:17 (newMM.kexe:x86_64+0x1001d62b0)
#7 kfun:kotlinx.coroutines.channels.AbstractChannel#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> AbstractChannel.kt:633 (newMM.kexe:x86_64+0x1001d6ceb)
#8 kfun:kotlinx.coroutines.channels.ChannelCoroutine#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020ad48)
#9 kfun:kotlinx.coroutines.flow.$emitAllImplCOROUTINE$2720.invokeSuspend#internal Channels.kt:51 (newMM.kexe:x86_64+0x100224182)
#10 kfun:kotlinx.coroutines.flow.emitAllImpl#internal Channels.kt:32 (newMM.kexe:x86_64+0x100224c1f)
#11 kfun:kotlinx.coroutines.flow#emitAll__at__kotlinx.coroutines.flow.FlowCollector<0:0>(kotlinx.coroutines.channels.ReceiveChannel<0:0>){0§<kotlin.Any?>} Channels.kt:30 (newMM.kexe:x86_64+0x100221fc7)
#12 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invokeSuspend#internal ChannelFlow.kt:123 (newMM.kexe:x86_64+0x100241515)
#13 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal ChannelFlow.kt:122 (newMM.kexe:x86_64+0x100241997)
#14 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal.65 ChannelFlow.kt:1 (newMM.kexe:x86_64+0x100241a9b)
#15 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturn__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:88 (newMM.kexe:x86_64+0x1002d3079)
#16 kfun:kotlinx.coroutines#coroutineScope(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 CoroutineScope.kt:15 (newMM.kexe:x86_64+0x1001a45d0)
#17 kfun:kotlinx.coroutines.flow.internal.ChannelFlow#collect(kotlinx.coroutines.flow.FlowCollector<1:0>){} ChannelFlow.kt:122 (newMM.kexe:x86_64+0x10023fdc7)
#18 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.$collectCOROUTINE$896.invokeSuspend#internal FlowInvariantsTest.kt:129 (newMM.kexe:x86_64+0x1006c1a6f)
#19 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.collect#internal FlowInvariantsTest.kt:125 (newMM.kexe:x86_64+0x1006c1d35)
#20 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collectorCOROUTINE$953.invokeSuspend#internal FlowInvariantsTest.kt:268 (newMM.kexe:x86_64+0x1006c050d)
#21 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest$collector#internal FlowInvariantsTest.kt:263 (newMM.kexe:x86_64+0x1006c08b5)
#22 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c0c61)
#23 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c111d)
#24 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal.2117 FlowInvariantsTest.kt:1 (newMM.kexe:x86_64+0x1006c11fd)
#25 kfun:kotlinx.coroutines.intrinsics#startCoroutineUnintercepted__at__kotlin.coroutines.SuspendFunction0<0:0>(kotlin.coroutines.Continuation<0:0>){0§<kotlin.Any?>} Undispatched.kt:18 (newMM.kexe:x86_64+0x1002d2962)
#26 kfun:kotlinx.coroutines.$withEmptyContextCOROUTINE$341#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? EmptyContext.kt:10 (newMM.kexe:x86_64+0x100461de1)
#27 kfun:kotlinx.coroutines#withEmptyContext(kotlin.coroutines.SuspendFunction0<0:0>){0§<kotlin.Any?>}0:0 EmptyContext.kt:10 (newMM.kexe:x86_64+0x1004620c7)
#28 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTestCOROUTINE$897.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x100695560)
#29 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest#internal FlowInvariantsTest.kt:262 (newMM.kexe:x86_64+0x100695905)
#30 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$testEmptyCoroutineContextMap$lambda$62COROUTINE$939.invokeSuspend#internal FlowInvariantsTest.kt:196 (newMM.kexe:x86_64+0x1006b68b6)
#31 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#32 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#33 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#34 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#35 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#36 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#37 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#38 kfun:kotlinx.coroutines.flow.FlowInvariantsTest#testEmptyCoroutineContextMap(){} FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x100694da3)
#39 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.invoke#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c7d30)
#40 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.$<bridge-UNNN>invoke(-1:0){}#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c8076)
#41 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#42 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#43 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#44 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#45 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#46 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#47 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#48 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#49 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#50 start <null>:2 (dyld:x86_64+0x551d)
Thread T3 (tid=8194867, running) created by main thread at:
#0 pthread_create <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2bb6f)
#1 Kotlin_Worker_startInternal <null>:2 (newMM.kexe:x86_64+0x100e0cfe4)
#2 kfun:kotlin.native.concurrent.Worker.Companion#start(kotlin.Boolean;kotlin.String?){}kotlin.native.concurrent.Worker Worker.kt:43 (newMM.kexe:x86_64+0x10002ee13)
#3 kfun:kotlin.native.concurrent.Worker.Companion#start$default(kotlin.Boolean;kotlin.String?;kotlin.Int){}kotlin.native.concurrent.Worker Worker.kt:42 (newMM.kexe:x86_64+0x10002ef74)
#4 kfun:kotlinx.coroutines.WorkerDispatcher#<init>(kotlin.String){} MultithreadedDispatchers.kt:25 (newMM.kexe:x86_64+0x10030329a)
#5 kfun:kotlinx.coroutines.DefaultExecutor#<init>(){} CoroutineContext.kt:13 (newMM.kexe:x86_64+0x1002ff65d)
#6 kotlin::mm::InitSingleton(kotlin::mm::ThreadData*, ObjHeader**, TypeInfo const*, void (*)(ObjHeader*), ObjHeader**) <null>:2 (newMM.kexe:x86_64+0x100dff504)
#7 InitSingleton <null>:2 (newMM.kexe:x86_64+0x100dfef35)
#8 kfun:kotlinx.coroutines.$init_global#internal.188 CoroutineContext.kt:44 (newMM.kexe:x86_64+0x1002fe5dd)
#9 CallInitGlobalPossiblyLock <null>:2 (newMM.kexe:x86_64+0x100e1e6e9)
#10 kfun:kotlinx.coroutines#newCoroutineContext__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext){}kotlin.coroutines.CoroutineContext CoroutineContext.kt:1 (newMM.kexe:x86_64+0x1002fe8e7)
#11 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:46 (newMM.kexe:x86_64+0x1002fcf94)
#12 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#13 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#14 kfun:kotlinx.coroutines.AbstractCoroutineTest#testNotifications(){} AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x10030e3a3)
#15 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.invoke#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311740)
#16 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.$<bridge-UNNN>invoke(-1:0){}#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311a86)
#17 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#18 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#19 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#20 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#21 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#22 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#23 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#24 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#25 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#26 start <null>:2 (dyld:x86_64+0x551d)
SUMMARY: ThreadSanitizer: data race JobSupport.kt:1355 in kfun:kotlinx.coroutines.JobNode#<get-job>(){}kotlinx.coroutines.JobSupport