• Dmitry Vyukov's avatar
    runtime/race: run tests with GOMAXPROCS=1 · 572f7660
    Dmitry Vyukov authored
    We set GOMAXPROCS=1 to prevent test flakiness.
    There are two sources of flakiness:
    1. Some tests rely on particular execution order.
       If the order is different, race does not happen at all.
    2. Ironically, ThreadSanitizer runtime contains a logical race condition
       that can lead to false negatives if racy accesses happen literally at the same time.
    Tests used to work reliably in the good old days of GOMAXPROCS=1.
    So let's set it for now. A more reliable solution is to explicitly annotate tests
    with required execution order by means of a special "invisible" synchronization primitive
    (that's what is done for C++ ThreadSanitizer tests). This is issue #14119.
    
    This reduces flakes on RaceAsFunc3 test from 60/3000 to 1/3000.
    
    Fixes #14086
    Fixes #14079
    Fixes #14035
    
    Change-Id: Ibaec6b2b21e27b62563bffbb28473a854722cf41
    Reviewed-on: https://go-review.googlesource.com/18968Reviewed-by: 's avatarAustin Clements <austin@google.com>
    Run-TryBot: Austin Clements <austin@google.com>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    572f7660
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...