Bucketed statistics.

Even though statistics are lockless they still use atomics which
might cause contention. Split stats counters into buckets, sharded
by an artificial thread identifier, to increase throughput.
77 jobs for !3070 with wpk/perfwork-6-bucketed-stats in 45 minutes and 27 seconds (queued for 26 minutes and 8 seconds)
detached
Status Job ID Name Coverage
  Precheck
passed #678593
amd64 linux
🐞:sid:amd64

00:04:19

passed #678592
amd64 linux
💾:sid:amd64

00:00:24

passed #678590
amd64 linux
autoreconf:sid:amd64

00:00:34

passed #678591
amd64 linux
misc:sid:amd64

00:00:19

 
  Build
passed #678608
amd64 linux
asan:sid:amd64

00:01:14

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

00:01:30

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

00:01:21

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

00:06:15

passed #678612
amd64 linux
clang:stretch:amd64

00:01:25

passed #678613
i386 linux
clang:stretch:i386

00:01:35

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

00:01:59

passed #678607
amd64 linux
gcc:bionic:amd64

00:01:22

passed #678600
amd64 linux
gcc:buster:amd64

00:02:05

passed #678595
amd64 linux
gcc:centos6:amd64

00:01:32

passed #678596
amd64 linux
gcc:centos7:amd64

00:02:10

passed #678597
amd64 linux
gcc:centos8:amd64

00:02:21

passed #678605
amd64 linux
gcc:fedora31:amd64

00:01:52

passed #678598
amd64 linux
gcc:jessie:amd64

00:00:49

passed #678601
amd64 linux
gcc:sid:amd64

00:02:27

passed #678603
i386 linux
gcc:sid:i386

00:01:26

passed #678599
amd64 linux
gcc:stretch:amd64

00:01:39

passed #678604
amd64 linux
gcc:tumbleweed:amd64

00:02:08

passed #678606
amd64 linux
gcc:xenial:amd64

00:01:23

passed #678619
amd64 windows
msvc:windows:amd64

00:02:47

failed #678611
amd64 linux
mutexatomics:sid:amd64

00:00:40

passed #678618
amd64 linux
nolibtool:sid:amd64

00:02:15

passed #678602
amd64 linux
oot:sid:amd64

00:02:31

passed #678614
amd64 linux
pkcs11:sid:amd64

00:01:23

passed #678610
amd64 linux
rwlock:sid:amd64

00:02:52

passed #678609
amd64 linux
tsan:buster:amd64

00:02:57

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

00:01:08

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

00:00:35

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

00:00:39

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

00:00:50

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

00:00:54

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

00:00:50

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

00:00:43

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

00:00:44

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

00:00:59

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

00:00:51

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

00:00:54

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

00:00:32

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

00:00:42

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

00:01:02

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

00:00:49

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

00:00:41

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

00:00:54

skipped #678636
amd64 linux allowed to fail
unit:mutexatomics:sid:amd64
passed #678641
amd64 linux
unit:nolibtool:sid:amd64

00:01:09

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

00:00:37

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

00:00:50

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

00:02:41

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

00:14:01

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

00:12:52

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

00:12:50

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

00:13:07

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

00:12:10

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

00:12:58

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

00:13:30

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

00:12:28

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

00:12:49

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

00:12:45

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

00:12:28

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

00:12:24

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

00:13:29

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

00:11:14

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

00:13:05

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

00:12:07

skipped #678658
amd64 linux allowed to fail
system:mutexatomics:sid:amd64
passed #678662
amd64 linux
system:nolibtool:sid:amd64

00:12:44

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

00:12:38

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

00:14:09

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

00:17:06

failed #678647
amd64 linux
system:gcc:stretch:amd64

00:12:19

 
  Docs
passed #678663
amd64 linux
docs:sid:amd64

00:01:01

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

00:02:03

passed #678664
amd64 linux
scan-build:buster:amd64

00:11:02

 
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 270 matching files

tsan/: found 204 matching files

Uploading artifacts to coordinator... ok
id=678656 responseStatus=201 Created token=7NEdujzY
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=678634 responseStatus=201 Created token=DiLzFTNf
ERROR: Job failed: exit code 1
failed
mutexatomics:sid:amd64 Build
libtool: compile:  gcc -include /builds/isc-projects/bind9/config.h -I/builds/isc-projects/bind9 -I../.. -I./unix/include -I./pthreads/include -I./include -I./include -I/builds/isc-projects/bind9/lib/dns/include -I../../lib/dns/include -I/usr/include/json-c -I/usr/include/libxml2 -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 -g -Wall -Wextra -DISC_MEM_USE_INTERNAL_MALLOC=0 -pthread -fPIC -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -Wno-missing-field-initializers -fno-strict-aliasing -Wshadow -Werror -c backtrace-emptytbl.c  -fPIC -DPIC -o .libs/backtrace-emptytbl.o
make[2]: Target 'all' not remade because of errors.
make[2]: Leaving directory '/builds/isc-projects/bind9/lib/isc'
make[1]: *** [Makefile:84: subdirs] Error 1
make[1]: Target 'all' not remade because of errors.
make[1]: Leaving directory '/builds/isc-projects/bind9/lib'
make: *** [Makefile:87: subdirs] Error 1
make: Target 'all' not remade because of errors.
ERROR: Job failed: exit code 1