<div dir="ltr">The thread sanitizer on Linux is reporting that I have race conditions in libswiftcore. I eliminated enough code down to this trivial example. Is there really a race condition here or are these bogus errors?<div><br></div><div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>let count = 1000</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>var items = [[UInt8]?](repeating: nil, count: count)</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>DispatchQueue.concurrentPerform(iterations: count) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>items[$0] = [UInt8](repeating: 7, count: 10)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>}</div></div><div><br></div><div>My real scenario is retrieving data asynchronously, so I just threw in a buffer assignment.</div><div><br></div><div>Thanks, Ed</div><div><br></div><div><div>==================</div><div>WARNING: ThreadSanitizer: data race (pid=30720)</div><div>  Read of size 8 at 0x7d9000008028 by thread T16:</div><div>    #0 memcpy &lt;null&gt; (libtsan.so.0+0x00000002617a)</div><div>    #1 _TwCcOs31_ClosedRangeIndexRepresentation &lt;null&gt; (libswiftCore.so+0x00000027e0fa)</div><div><br></div><div>  Previous write of size 8 at 0x7d9000008028 by main thread:</div><div>    #0 memcpy &lt;null&gt; (libtsan.so.0+0x00000002617a)</div><div>    #1 _TwCcOs31_ClosedRangeIndexRepresentation &lt;null&gt; (libswiftCore.so+0x00000027e0fa)</div><div><br></div><div>  Location is heap block of size 8032 at 0x7d9000008000 allocated by main thread:</div><div>    #0 malloc &lt;null&gt; (libtsan.so.0+0x0000000254a3)</div><div>    #1 swift_slowAlloc &lt;null&gt; (libswiftCore.so+0x0000002ee3e5)</div><div><br></div><div>  Thread T16 (tid=30917, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>SUMMARY: ThreadSanitizer: data race ??:0 memcpy</div><div>==================</div><div>==================</div><div>WARNING: ThreadSanitizer: data race (pid=30720)</div><div>  Write of size 8 at 0x7d0c00015d80 by thread T16:</div><div>    #0 free &lt;null&gt; (libtsan.so.0+0x000000025819)</div><div>    #1 _TwXxOs31_ClosedRangeIndexRepresentation &lt;null&gt; (libswiftCore.so+0x00000027e071)</div><div><br></div><div>  Previous write of size 8 at 0x7d0c00015d80 by main thread:</div><div>    #0 malloc &lt;null&gt; (libtsan.so.0+0x0000000254a3)</div><div>    #1 swift_slowAlloc &lt;null&gt; (libswiftCore.so+0x0000002ee3e5)</div><div><br></div><div>  Thread T16 (tid=30917, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>SUMMARY: ThreadSanitizer: data race ??:0 __interceptor_free</div><div>==================</div><div>==================</div><div>WARNING: ThreadSanitizer: data race (pid=30720)</div><div>  Write of size 8 at 0x7d900000a028 by thread T20:</div><div>    #0 free &lt;null&gt; (libtsan.so.0+0x000000025819)</div><div>    #1 _TZFSa11_copyBufferfRGVs22_ContiguousArrayBufferx_T_ &lt;null&gt; (libswiftCore.so+0x00000010884e)</div><div><br></div><div>  Previous read of size 8 at 0x7d900000a028 by thread T17:</div><div>    #0 memcpy &lt;null&gt; (libtsan.so.0+0x00000002617a)</div><div>    #1 _TwCcOs31_ClosedRangeIndexRepresentation &lt;null&gt; (libswiftCore.so+0x00000027e0fa)</div><div><br></div><div>  Thread T20 (tid=30921, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>  Thread T17 (tid=30918, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>SUMMARY: ThreadSanitizer: data race ??:0 __interceptor_free</div><div>==================</div><div>==================</div><div>WARNING: ThreadSanitizer: data race (pid=30720)</div><div>  Read of size 8 at 0x7d9000006028 by thread T23:</div><div>    #0 memcpy &lt;null&gt; (libtsan.so.0+0x00000002617a)</div><div>    #1 _TwCcOs31_ClosedRangeIndexRepresentation &lt;null&gt; (libswiftCore.so+0x00000027e0fa)</div><div><br></div><div>  Previous write of size 8 at 0x7d9000006028 by main thread:</div><div>    #0 malloc &lt;null&gt; (libtsan.so.0+0x0000000254a3)</div><div>    #1 swift_slowAlloc &lt;null&gt; (libswiftCore.so+0x0000002ee3e5)</div><div><br></div><div>  Location is heap block of size 8032 at 0x7d9000006000 allocated by main thread:</div><div>    #0 malloc &lt;null&gt; (libtsan.so.0+0x0000000254a3)</div><div>    #1 swift_slowAlloc &lt;null&gt; (libswiftCore.so+0x0000002ee3e5)</div><div><br></div><div>  Thread T23 (tid=30924, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>SUMMARY: ThreadSanitizer: data race ??:0 memcpy</div><div>==================</div><div>==================</div><div>WARNING: ThreadSanitizer: data race (pid=30720)</div><div>  Write of size 8 at 0x7d900002e000 by thread T19:</div><div>    #0 free &lt;null&gt; (libtsan.so.0+0x000000025819)</div><div>    #1 _TZFSa11_copyBufferfRGVs22_ContiguousArrayBufferx_T_ &lt;null&gt; (libswiftCore.so+0x000000108859)</div><div><br></div><div>  Previous write of size 8 at 0x7d900002e000 by thread T20:</div><div>    #0 malloc &lt;null&gt; (libtsan.so.0+0x0000000254a3)</div><div>    #1 swift_slowAlloc &lt;null&gt; (libswiftCore.so+0x0000002ee3e5)</div><div><br></div><div>  Thread T19 (tid=30920, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>  Thread T20 (tid=30921, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>SUMMARY: ThreadSanitizer: data race ??:0 __interceptor_free</div><div>==================</div><div>==================</div><div>WARNING: ThreadSanitizer: data race (pid=30720)</div><div>  Write of size 8 at 0x7d9000004000 by thread T17:</div><div>    #0 free &lt;null&gt; (libtsan.so.0+0x000000025819)</div><div>    #1 _TZFSa11_copyBufferfRGVs22_ContiguousArrayBufferx_T_ &lt;null&gt; (libswiftCore.so+0x00000010884e)</div><div><br></div><div>  Previous write of size 8 at 0x7d9000004000 by main thread:</div><div>    #0 malloc &lt;null&gt; (libtsan.so.0+0x0000000254a3)</div><div>    #1 swift_slowAlloc &lt;null&gt; (libswiftCore.so+0x0000002ee3e5)</div><div><br></div><div>  Thread T17 (tid=30918, running) created by main thread at:</div><div>    #0 pthread_create &lt;null&gt; (libtsan.so.0+0x000000027577)</div><div>    #1 manager_workqueue_additem /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/libpwq/src/posix/manager.c:815 (libdispatch.so+0x00000007c6b1)</div><div><br></div><div>SUMMARY: ThreadSanitizer: data race ??:0 __interceptor_free</div><div>==================</div></div><div><br></div></div>