Badcache with multiple locks.

Previously badcache used one single mutex for everything, which
was causing performance issues. Use one global rwlock for the whole
hashtable and per-bucket mutexes.
80 jobs for !3076 with wpk/perfwork-7-multilocked-badcache in 34 minutes and 59 seconds (queued for 4 seconds)
detached
Status Job ID Name Coverage
  Precheck
passed #692412
amd64 linux
🐞:sid:amd64

00:04:06

passed #692411
amd64 linux
💾:sid:amd64

00:00:20

passed #692409
amd64 linux
autoreconf:sid:amd64

00:00:32

passed #692410
amd64 linux
misc:sid:amd64

00:00:16

 
  Build
passed #692428
amd64 linux
asan:sid:amd64

00:02:38

passed #692435
amd64 freebsd
clang:freebsd11.3:amd64

00:01:08

passed #692436
amd64 freebsd
clang:freebsd12.0:amd64

00:00:58

passed #692437
amd64 libvirt
clang:openbsd6.6:amd64

00:04:42

passed #692432
amd64 linux
clang:stretch:amd64

00:01:50

passed #692433
i386 linux
clang:stretch:i386

00:02:02

passed #692413
amd64 linux
gcc:alpine3.11:amd64

00:02:42

passed #692427
amd64 linux
gcc:bionic:amd64

00:01:37

passed #692419
amd64 linux
gcc:buster:amd64

00:01:15

passed #692414
amd64 linux
gcc:centos6:amd64

00:02:01

passed #692415
amd64 linux
gcc:centos7:amd64

00:02:29

passed #692416
amd64 linux
gcc:centos8:amd64

00:02:19

passed #692425
amd64 linux
gcc:fedora31:amd64

00:02:36

passed #692417
amd64 linux
gcc:jessie:amd64

00:01:31

passed #692420
amd64 linux
gcc:sid:amd64

00:02:18

passed #692422
arm64 linux
gcc:sid:arm64

00:21:46

passed #692423
i386 linux
gcc:sid:i386

00:02:01

passed #692418
amd64 linux
gcc:stretch:amd64

00:01:54

passed #692424
amd64 linux
gcc:tumbleweed:amd64

00:02:16

passed #692426
amd64 linux
gcc:xenial:amd64

00:01:17

passed #692439
amd64 windows
msvc:windows:amd64

00:02:24

passed #692431
amd64 linux
mutexatomics:sid:amd64

00:01:18

passed #692438
amd64 linux
nolibtool:sid:amd64

00:02:20

passed #692421
amd64 linux
oot:sid:amd64

00:01:27

passed #692434
amd64 linux
pkcs11:sid:amd64

00:01:33

passed #692430
amd64 linux
rwlock:sid:amd64

00:01:26

passed #692429
amd64 linux
tsan:buster:amd64

00:02:52

 
  Unit
passed #692454
amd64 linux
unit:asan:sid:amd64

00:00:57

passed #692460
amd64 freebsd
unit:clang:freebsd11.3:amd64

00:00:34

passed #692461
amd64 freebsd
unit:clang:freebsd12.0:amd64

00:00:39

passed #692458
amd64 linux
unit:clang:stretch:amd64

00:00:44

passed #692440
amd64 linux
unit:gcc:alpine3.11:amd64

00:00:58

passed #692453
amd64 linux
unit:gcc:bionic:amd64

00:00:52

passed #692446
amd64 linux
unit:gcc:buster:amd64

00:00:52

passed #692441
amd64 linux
unit:gcc:centos6:amd64

00:00:55

passed #692442
amd64 linux
unit:gcc:centos7:amd64

00:00:56

passed #692443
amd64 linux
unit:gcc:centos8:amd64

00:00:44

passed #692451
amd64 linux
unit:gcc:fedora31:amd64

00:00:57

passed #692444
amd64 linux
unit:gcc:jessie:amd64

00:00:28

passed #692447
amd64 linux
unit:gcc:sid:amd64

00:00:53

passed #692448
arm64 linux
unit:gcc:sid:arm64

00:01:07

passed #692449
i386 linux
unit:gcc:sid:i386

00:00:54

passed #692445
amd64 linux
unit:gcc:stretch:amd64

00:00:40

passed #692450
amd64 linux
unit:gcc:tumbleweed:amd64

00:00:53

passed #692452
amd64 linux
unit:gcc:xenial:amd64

00:00:53

failed #692457
amd64 linux allowed to fail
unit:mutexatomics:sid:amd64

00:10:26

passed #692462
amd64 linux
unit:nolibtool:sid:amd64

00:01:16

passed #692459
amd64 linux
unit:pkcs11:sid:amd64

00:00:54

passed #692456
amd64 linux
unit:rwlock:sid:amd64

00:00:54

failed #692455
amd64 linux allowed to fail
unit:tsan:buster:amd64

00:02:39

 
  System
passed #692477
amd64 linux
system:asan:sid:amd64

00:14:12

passed #692482
amd64 freebsd
system:clang:freebsd11.3:amd64

00:13:00

passed #692483
amd64 freebsd
system:clang:freebsd12.0:amd64

00:13:03

passed #692463
amd64 linux
system:gcc:alpine3.11:amd64

00:13:13

passed #692476
amd64 linux
system:gcc:bionic:amd64

00:13:18

passed #692469
amd64 linux
system:gcc:buster:amd64

00:13:29

passed #692464
amd64 linux
system:gcc:centos6:amd64

00:12:26

passed #692465
amd64 linux
system:gcc:centos7:amd64

00:12:56

passed #692466
amd64 linux
system:gcc:centos8:amd64

00:12:40

passed #692474
amd64 linux
system:gcc:fedora31:amd64

00:12:31

passed #692467
amd64 linux
system:gcc:jessie:amd64

00:12:09

passed #692470
amd64 linux
system:gcc:sid:amd64

00:12:15

passed #692471
arm64 linux
system:gcc:sid:arm64

00:12:34

passed #692472
i386 linux
system:gcc:sid:i386

00:13:16

passed #692468
amd64 linux
system:gcc:stretch:amd64

00:12:18

passed #692473
amd64 linux
system:gcc:tumbleweed:amd64

00:12:57

passed #692475
amd64 linux
system:gcc:xenial:amd64

00:11:51

passed #692480
amd64 linux
system:mutexatomics:sid:amd64

00:13:37

passed #692484
amd64 linux
system:nolibtool:sid:amd64

00:13:20

passed #692481
amd64 linux
system:pkcs11:sid:amd64

00:12:47

passed #692479
amd64 linux
system:rwlock:sid:amd64

00:13:22

failed #692478
amd64 linux allowed to fail
system:tsan:buster:amd64

00:17:35

 
  Docs
passed #692485
amd64 linux
docs:sid:amd64

00:01:10

 
  Postcheck
passed #692487
amd64 linux
cppcheck:gcc:sid:amd64

00:01:54

passed #692488
arm64 linux
cppcheck:gcc:sid:arm64

00:02:16

failed #692486
amd64 linux
scan-build:buster:amd64

00:12:05

 
Name Stage Failure
failed
system:tsan:buster:amd64 System
make: *** [Makefile:486: test] Error 1
Running after script...
$ find bin -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
Uploading artifacts...
bin/tests/system/*/tsan.*: found 18 matching files
bin/tests/system/*/*/tsan.*: found 244 matching files

tsan/: found 192 matching files

Uploading artifacts to coordinator... ok
id=692478 responseStatus=201 Created token=yvwns-Th
ERROR: Job failed: exit code 1
failed
scan-build:buster:amd64 Postcheck
make[2]: Entering directory '/builds/isc-projects/bind9/doc/tex'
make[2]: Leaving directory '/builds/isc-projects/bind9/doc/tex'
make[1]: Leaving directory '/builds/isc-projects/bind9/doc'
scan-build: 2 bugs found.
scan-build: Run 'scan-view /builds/isc-projects/bind9/scan-build.reports/2020-02-18-141933-7624-1' to examine bug reports.
Uploading artifacts...
scan-build.reports/: found 7 matching files
Uploading artifacts to coordinator... ok
id=692486 responseStatus=201 Created token=bVbUMswP
ERROR: Job failed: exit code 1
failed
unit:mutexatomics:sid:amd64 Unit
Generating kyua_html/lib_ns_tests_query_test_main.html
Generating kyua_html/report.css
Generating kyua_html/index.html
Uploading artifacts...
kyua.log: found 1 matching files
kyua.results: found 1 matching files

kyua_html/: found 69 matching files

Uploading artifacts to coordinator... ok
id=692457 responseStatus=201 Created token=K58odGjz
ERROR: Job failed: exit code 1
failed
unit:tsan:buster:amd64 Unit
$ find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
Uploading artifacts...
lib/*/tests/tsan.*: found 1 matching files
tsan/: found 6 matching files

kyua.log: found 1 matching files

kyua.results: found 1 matching files

WARNING: kyua_html/: no matching files
Uploading artifacts to coordinator... ok
id=692455 responseStatus=201 Created token=CykwLkbQ
ERROR: Job failed: exit code 1