ISC Open Source Projects issues
https://gitlab.isc.org/groups/isc-projects/-/issues
2020-09-17T15:40:04Z
https://gitlab.isc.org/isc-projects/bind9/-/issues/2163
ThreadSanitizer: data race lib/isc/mem.c:1119:19 in isc___mem_put
2020-09-17T15:40:04Z
Ondřej Surý
ThreadSanitizer: data race lib/isc/mem.c:1119:19 in isc___mem_put
* [ ] [1e5e2a618fdb7d7ac658c038b937e8c14542c01d6e57039bdfb510ff8db72464.txt](/uploads/6abb1b18cbb8f1a0def520f7885fec2a/1e5e2a618fdb7d7ac658c038b937e8c14542c01d6e57039bdfb510ff8db72464.txt)
* [ ] [1e5e2a618fdb7d7ac658c038b937e8c14542c01d6e57039bdfb510ff8db72464.txt](/uploads/6abb1b18cbb8f1a0def520f7885fec2a/1e5e2a618fdb7d7ac658c038b937e8c14542c01d6e57039bdfb510ff8db72464.txt)
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
Ondřej Surý
Ondřej Surý
https://gitlab.isc.org/isc-projects/kea/-/issues/1240
extend JSON files describing commands
2020-09-17T14:17:29Z
Francis Dupont
extend JSON files describing commands
In application of https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/https-wrapper-for-control-agent#proposal-32-extend-json-files add an access entry with read or write values to the JSON files describing commands in `doc/sphinx/ap...
In application of https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/https-wrapper-for-control-agent#proposal-32-extend-json-files add an access entry with read or write values to the JSON files describing commands in `doc/sphinx/api`:
- update README
- update template and generator
- update all command files
- update api2doc script
- update Makefile so these files are installed
kea1.9.0
Francis Dupont
Francis Dupont
https://gitlab.isc.org/isc-projects/kea/-/issues/1091
comma escaping doesn't work in string options
2020-09-17T13:59:48Z
Ghost User
comma escaping doesn't work in string options
---
name: Bug report
about: comma escaping doesn't work in string options
---
**Describe the bug**
As mentioned in documentation we try to escape comma (,) symbol in proprietary option fro Avaya IP Phones.But that doesn't work.
**To ...
---
name: Bug report
about: comma escaping doesn't work in string options
---
**Describe the bug**
As mentioned in documentation we try to escape comma (,) symbol in proprietary option fro Avaya IP Phones.But that doesn't work.
**To Reproduce**
started kea-daemon4
connected avaya phone to network
address is assigned to phone, options assigned
phone doesn't connect to phone server.
**Expected behavior**
option 242 must looks like: "MCIPADD=192.168.131.133, MCPORT=1719"
phone is connected to phone server.
it works fine when we use Cisco commutator as DHCP with options set like this:
```
option 242 ascii MCIPADD=192.168.131.133,MCPORT=1719
```
**Environment:**
```
[root@dns-core menv]# rpm -qa|grep kea
isc-kea-hooks-1.7.3-isc0009420191217090201.el7.x86_64
isc-kea-1.7.3-isc0009420191217090201.el7.x86_64
isc-kea-libs-1.7.3-isc0009420191217090201.el7.x86_64
[root@dns-core menv]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
- Kea version: 1.7.3 pre-RPMs from cloudsmith.io
- OS: CentOS Linux release 7.7.1908 (Core)
```
**Additional Information**
configuration:
```
[
{
"arguments": {
"Dhcp4": {
"authoritative": false,
"boot-file-name": "",
"calculate-tee-times": false,
"client-classes": [
{
"boot-file-name": "/undionly.kpxe.1.0.1",
"name": "Legacy_Intel_x86PC",
"next-server": "192.168.134.52",
"option-data": [
],
"option-def": [
],
"server-hostname": "",
"test": "option[93].hex == 0x0000"
},
{
"boot-file-name": "/pxelinux.0.4.05",
"name": "XClient_iPXE",
"next-server": "192.168.134.52",
"option-data": [
],
"option-def": [
],
"server-hostname": "",
"test": "substring(option[77].hex,1,4) == 'PXE'"
},
{
"boot-file-name": "",
"name": "Cisco_IP_Phone",
"next-server": "0.0.0.0",
"option-data": [
],
"option-def": [
],
"server-hostname": "",
"test": "substring(option[60].hex,0,5) == 'Cisco'"
}
],
"config-control": {
"config-databases": [
{
"host": "localhost",
"name": "kea",
"password": "********",
"port": 3306,
"type": "mysql",
"user": "kea"
}
],
"config-fetch-wait-time": 20
},
"control-socket": {
"socket-name": "/var/run/kea/socket-v4",
"socket-type": "unix"
},
"ddns-generated-prefix": "myhost",
"ddns-override-client-update": false,
"ddns-override-no-update": false,
"ddns-qualifying-suffix": "",
"ddns-replace-client-name": "never",
"ddns-send-updates": true,
"decline-probation-period": 86400,
"dhcp-ddns": {
"enable-updates": false,
"max-queue-size": 1024,
"ncr-format": "JSON",
"ncr-protocol": "UDP",
"sender-ip": "0.0.0.0",
"sender-port": 0,
"server-ip": "127.0.0.1",
"server-port": 53001
},
"dhcp-queue-control": {
"capacity": 500,
"enable-queue": false,
"queue-type": "kea-ring4"
},
"dhcp4o6-port": 0,
"echo-client-id": true,
"expired-leases-processing": {
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"reclaim-timer-wait-time": 10,
"unwarned-reclaim-cycles": 5
},
"hooks-libraries": [
{
"library": "/usr/lib64/kea/hooks/libdhcp_mysql_cb.so"
},
{
"library": "/usr/lib64/kea/hooks/libdhcp_lease_cmds.so"
}
],
"host-reservation-identifiers": [
"hw-address",
"duid",
"circuit-id",
"client-id"
],
"hosts-databases": [
{
"host": "localhost",
"name": "kea",
"password": "********",
"port": 3306,
"reconnect-wait-time": 500,
"type": "mysql",
"user": "kea"
}
],
"interfaces-config": {
"dhcp-socket-type": "udp",
"interfaces": [
"eth0"
],
"outbound-interface": "use-routing",
"re-detect": true
},
"lease-database": {
"host": "localhost",
"lfc-interval": 1800,
"name": "kea_leases",
"password": "********",
"port": 3306,
"reconnect-wait-time": 500,
"type": "mysql",
"user": "kea"
},
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"flush": true,
"output": "/var/log/kea/server.log",
"pattern": "%d{%j %H:%M:%S.%q} %c %m\n"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.options",
"output_options": [
{
"flush": true,
"output": "/var/log/kea/options.log",
"pattern": "%d{%j %H:%M:%S.%q} %c %m\n"
}
],
"severity": "DEBUG"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.packets",
"output_options": [
{
"flush": true,
"output": "/var/log/kea/packets.log",
"pattern": "%d{%j %H:%M:%S.%q} %c %m\n"
}
],
"severity": "DEBUG"
},
{
"name": "kea-dhcp4.leases",
"output_options": [
{
"flush": true,
"output": "/var/log/kea/leases.log",
"pattern": "%d{%j %H:%M:%S.%q} %c %m\n"
}
],
"severity": "INFO"
}
],
"match-client-id": false,
"next-server": "0.0.0.0",
"option-data": [
{
"always-send": false,
"code": 252,
"csv-format": true,
"data": "http://wpad/wpad.pac",
"space": "dhcp4"
},
{
"always-send": false,
"code": 4,
"csv-format": true,
"data": "192.168.134.52, 192.168.134.13",
"name": "time-servers",
"space": "dhcp4"
},
{
"always-send": false,
"code": 6,
"csv-format": true,
"data": "192.168.134.53, 192.168.160.53",
"name": "domain-name-servers",
"space": "dhcp4"
},
{
"always-send": false,
"code": 15,
"csv-format": true,
"data": "kmz.ts",
"name": "domain-name",
"space": "dhcp4"
}
],
"option-def": [
{
"array": false,
"code": 252,
"encapsulate": "",
"name": "autoproxy",
"record-types": "",
"space": "dhcp4",
"type": "string"
},
{
"array": true,
"code": 150,
"encapsulate": "",
"name": "tftp-server-voice",
"record-types": "",
"space": "dhcp4",
"type": "ipv4-address"
},
{
"array": false,
"code": 242,
"encapsulate": "",
"name": "tftp-server-voice-avaya",
"record-types": "",
"space": "dhcp4",
"type": "string"
}
],
"rebind-timer": 2000,
"renew-timer": 1000,
"reservation-mode": "all",
"sanity-checks": {
"lease-checks": "warn"
},
"server-hostname": "",
"server-tag": "dns-core",
"shared-networks": [
{
"name": "test-one_vlan",
"option-data": [
],
"relay": {
"ip-addresses": [
]
},
"subnet4": [
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"id": 22028,
"option-data": [
{
"always-send": false,
"code": 150,
"csv-format": true,
"data": "192.168.160.48, 192.168.131.3",
"space": "dhcp4"
},
{
"always-send": false,
"code": 242,
"csv-format": true,
"data": "MCIPADD=192.168.131.133\\, MCPORT=1719",
"space": "dhcp4"
},
{
"always-send": false,
"code": 3,
"csv-format": true,
"data": "192.168.111.65",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"client-class": "Cisco_IP_Phone",
"option-data": [
],
"pool": "192.168.111.66-192.168.111.72"
},
{
"option-data": [
],
"pool": "192.168.111.73-192.168.111.78"
}
],
"relay": {
"ip-addresses": [
]
},
"reservations": [
],
"subnet": "192.168.111.64/28"
}
]
},
{
"name": "test-two_vlan",
"option-data": [
],
"relay": {
"ip-addresses": [
]
},
"subnet4": [
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"id": 22170,
"option-data": [
{
"always-send": false,
"code": 3,
"csv-format": true,
"data": "192.168.161.121",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"client-class": "KNOWN",
"option-data": [
],
"pool": "192.168.161.122-192.168.161.126"
}
],
"relay": {
"ip-addresses": [
]
},
"reservations": [
],
"subnet": "192.168.161.120/29"
}
]
}
],
"subnet4": [
],
"t1-percent": 0.5,
"t2-percent": 0.875,
"valid-lifetime": 4000
}
},
"result": 0
}
]
```
Server startuop log
```
023 15:44:27.885 kea-dhcp4.hosts HOSTS_BACKENDS_REGISTERED the following host backend types are available: mysql postgresql
023 15:44:27.888 kea-dhcp4.dhcpsrv DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type udp
023 15:44:27.888 kea-dhcp4.dhcpsrv DHCPSRV_CFGMGR_ADD_IFACE listening on interface eth0
023 15:44:27.889 kea-dhcp4.commands COMMAND_ACCEPTOR_START Starting to accept connections via unix domain socket bound to /var/run/kea/socket-v4
023 15:44:27.890 kea-dhcp4.mysql-cb-hooks MYSQL_CB_INIT_OK loading MYSQL CB hooks library successful
023 15:44:27.890 kea-dhcp4.hooks HOOKS_LIBRARY_LOADED hooks library /usr/lib64/kea/hooks/libdhcp_mysql_cb.so successfully loaded
023 15:44:27.891 kea-dhcp4.lease-cmds-hooks LEASE_CMDS_INIT_OK loading Lease Commands hooks library successful
023 15:44:27.891 kea-dhcp4.hooks HOOKS_LIBRARY_LOADED hooks library /usr/lib64/kea/hooks/libdhcp_lease_cmds.so successfully loaded
023 15:44:27.891 kea-dhcp4.dctl DCTL_OPEN_CONFIG_DB Opening configuration database: host=localhost name=kea password=***** port=3306 type=mysql user=kea
023 15:44:27.910 kea-dhcp4.dctl DCTL_CONFIG_FETCH Fetching configuration data from config backends.
023 15:44:27.915 kea-dhcp4.dhcpsrv DHCPSRV_CFGMGR_CONFIG4_MERGED Configuration backend data has been merged.
023 15:44:27.915 kea-dhcp4.dhcp4 DHCP4_CONFIG_COMPLETE DHCPv4 server has completed configuration: added IPv4 subnets: 2; DDNS: disabled
023 15:44:27.915 kea-dhcp4.dhcpsrv DHCPSRV_MYSQL_DB opening MySQL lease database: host=localhost lfc-interval=1800 name=kea_leases password=***** port=3306 reconnect-wait-time=500 type=mysql universe=4 user=kea
023 15:44:27.921 kea-dhcp4.hosts DHCPSRV_MYSQL_HOST_DB opening MySQL hosts database: host=localhost name=kea password=***** port=3306 reconnect-wait-time=500 type=mysql universe=4 user=kea
023 15:44:27.926 kea-dhcp4.dhcp4 DHCP4_STARTED Kea DHCPv4 server version 1.7.3 started
```
packets.log on debug level 99
```
023 15:37:04.920 kea-dhcp4.packets DHCP4_BUFFER_RECEIVED received buffer from 192.168.111.65:67 to 192.168.160.8:67 over interface eth0
023 15:37:04.921 kea-dhcp4.packets DHCP4_PACKET_RECEIVED [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: DHCPDISCOVER (type 1) received from 192.168.111.65 to 192.168.160.8 on interface eth0
023 15:37:04.921 kea-dhcp4.packets DHCP4_QUERY_DATA [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079, packet details: local_address=192.168.160.8:67, remote_address=192.168.111.65:67, msg_type=DHCPDISCOVER (1), transid=0xf1d5d079,
options:
type=012, len=009: "AVX5B761E" (string)
type=053, len=001: 1 (uint8)
type=055, len=007: 1(uint8) 28(uint8) 3(uint8) 6(uint8) 15(uint8) 42(uint8) 242(uint8)
type=057, len=002: 576 (uint16)
023 15:37:04.921 kea-dhcp4.packets DHCP4_SUBNET_SELECTED [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: the subnet with ID 22028 was selected for client assignments
023 15:37:04.921 kea-dhcp4.packets DHCP4_SUBNET_DATA [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: the selected subnet details: 192.168.111.64/28
023 15:37:04.922 kea-dhcp4.packets DHCP4_PACKET_SEND [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: trying to send packet DHCPOFFER (type 2) from *:67 to 192.168.111.65:67 on interface eth0
023 15:37:04.922 kea-dhcp4.packets DHCP4_RESPONSE_DATA [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: responding with packet DHCPOFFER (type 2), packet details: local_address=0.0.0.0:67, remote_address=192.168.111.65:67, msg_type=DHCPOFFER (2), transid=0xf1d5d079,
options:
type=001, len=004: 4294967280 (uint32)
type=003, len=004: 192.168.111.65
type=006, len=008: 192.168.134.53 192.168.160.53
type=012, len=009: "avx5b761e" (string)
type=015, len=006: "kmz.ts" (string)
type=051, len=004: 4000 (uint32)
type=053, len=001: 2 (uint8)
type=054, len=004: 192.168.160.8
type=058, len=004: 1000 (uint32)
type=059, len=004: 2000 (uint32)
type=242, len=024: "MCIPADD=192.168.131.133\" (string)
023 15:37:09.919 kea-dhcp4.packets DHCP4_BUFFER_RECEIVED received buffer from 192.168.111.65:67 to 192.168.160.8:67 over interface eth0
023 15:37:09.919 kea-dhcp4.packets DHCP4_PACKET_RECEIVED [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: DHCPDISCOVER (type 1) received from 192.168.111.65 to 192.168.160.8 on interface eth0
023 15:37:09.920 kea-dhcp4.packets DHCP4_QUERY_DATA [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079, packet details: local_address=192.168.160.8:67, remote_address=192.168.111.65:67, msg_type=DHCPDISCOVER (1), transid=0xf1d5d079,
options:
type=012, len=009: "AVX5B761E" (string)
type=053, len=001: 1 (uint8)
type=055, len=007: 1(uint8) 28(uint8) 3(uint8) 6(uint8) 15(uint8) 42(uint8) 242(uint8)
type=057, len=002: 576 (uint16)
023 15:37:09.920 kea-dhcp4.packets DHCP4_SUBNET_SELECTED [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: the subnet with ID 22028 was selected for client assignments
023 15:37:09.920 kea-dhcp4.packets DHCP4_SUBNET_DATA [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: the selected subnet details: 192.168.111.64/28
023 15:37:09.920 kea-dhcp4.packets DHCP4_PACKET_SEND [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: trying to send packet DHCPOFFER (type 2) from *:67 to 192.168.111.65:67 on interface eth0
023 15:37:09.920 kea-dhcp4.packets DHCP4_RESPONSE_DATA [hwtype=1 3c:b1:5b:5b:76:1e], cid=[no info], tid=0xf1d5d079: responding with packet DHCPOFFER (type 2), packet details: local_address=0.0.0.0:67, remote_address=192.168.111.65:67, msg_type=DHCPOFFER (2), transid=0xf1d5d079,
options:
type=001, len=004: 4294967280 (uint32)
type=003, len=004: 192.168.111.65
type=006, len=008: 192.168.134.53 192.168.160.53
type=012, len=009: "avx5b761e" (string)
type=015, len=006: "kmz.ts" (string)
type=051, len=004: 4000 (uint32)
type=053, len=001: 2 (uint8)
type=054, len=004: 192.168.160.8
type=058, len=004: 1000 (uint32)
type=059, len=004: 2000 (uint32)
type=242, len=024: "MCIPADD=192.168.131.133\" (string)
```
**Contacting you**
email: hedgehog57@gmail.com
https://gitlab.isc.org/isc-projects/bind9/-/issues/2123
Lock order inversions in main
2020-09-17T08:28:16Z
Mark Andrews
Lock order inversions in main
There are a number of lock order inversions in !3997 that are applicable to main.
Extract them into a seperate MR so they can be applied to all applicable branches.
There are a number of lock order inversions in !3997 that are applicable to main.
Extract them into a seperate MR so they can be applied to all applicable branches.
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1420
ThreadSanitizer: data race message.c:397 in msgreset
2020-09-17T08:17:47Z
Ondřej Surý
ThreadSanitizer: data race message.c:397 in msgreset
Binary: `named`
Commit: d744a6fc238fc685411d8bc673c951cb80d6cb81
Tests: rpz
```
WARNING: ThreadSanitizer: data race (pid=38656)
Write of size 8 at 0x7b5000050390 by thread T1:
#0 msgreset message.c:397 (libdns.1505.dylib:x86_64+0x...
Binary: `named`
Commit: d744a6fc238fc685411d8bc673c951cb80d6cb81
Tests: rpz
```
WARNING: ThreadSanitizer: data race (pid=38656)
Write of size 8 at 0x7b5000050390 by thread T1:
#0 msgreset message.c:397 (libdns.1505.dylib:x86_64+0x72bd8)
#1 dns_message_reset message.c:797 (libdns.1505.dylib:x86_64+0x71be1)
#2 ns__client_reset_cb client.c:215 (libns.1502.dylib:x86_64+0x4513)
#3 isc_nmhandle_unref netmgr.c:993 (libisc.1504.dylib:x86_64+0x26abc)
#4 isc__nm_uvreq_put netmgr.c:1155 (libisc.1504.dylib:x86_64+0x275f7)
#5 udp_send_cb udp.c:440 (libisc.1504.dylib:x86_64+0x2b775)
#6 uv__udp_run_completed <null>:1587584 (libuv.1.dylib:x86_64+0x1278f)
Previous read of size 8 at 0x7b5000050390 by thread T7:
#0 ns_client_send client.c:661 (libns.1502.dylib:x86_64+0x2308)
#1 respond update.c:1559 (libns.1502.dylib:x86_64+0x32b7d)
#2 updatedone_action update.c:3391 (libns.1502.dylib:x86_64+0x3aa53)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 497 at 0x7b5000050200 allocated by thread T4:
#0 malloc <null>:1587616 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_get mem.c:598 (libisc.1504.dylib:x86_64+0x21d03)
#3 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#4 dns_message_create message.c:715 (libdns.1505.dylib:x86_64+0x7142d)
#5 ns__client_setup client.c:2250 (libns.1502.dylib:x86_64+0x745e)
#6 ns__client_request client.c:1634 (libns.1502.dylib:x86_64+0x4b0a)
#7 udp_recv_cb udp.c:318 (libisc.1504.dylib:x86_64+0x2aa91)
#8 uv__udp_io <null>:1587616 (libuv.1.dylib:x86_64+0x13244)
Thread T1 (tid=2559143, running) created by main thread at:
#0 pthread_create <null>:1587664 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000debe)
Thread T7 (tid=2559149, running) created by main thread at:
#0 pthread_create <null>:1587664 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000df16)
Thread T4 (tid=2559146, running) created by main thread at:
#0 pthread_create <null>:1587568 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000debe)
SUMMARY: ThreadSanitizer: data race message.c:397 in msgreset
```
BIND 9.17 Backburner
Mark Andrews
Mark Andrews
https://gitlab.isc.org/isc-projects/bind9/-/issues/1438
ThreadSanitizer: data race lib/ns/client.c:2278 in ns__client_setup
2020-09-17T08:17:30Z
Ondřej Surý
ThreadSanitizer: data race lib/ns/client.c:2278 in ns__client_setup
Binary: `named`
Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
Tests: rpzrecurse, dnssec, serve-stale, ...
```
WARNING: ThreadSanitizer: data race (pid=19725)
Write of size 8 at 0x7b90000c01e8 by thread T8:
#0 ns__client_setup /...
Binary: `named`
Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
Tests: rpzrecurse, dnssec, serve-stale, ...
```
WARNING: ThreadSanitizer: data race (pid=19725)
Write of size 8 at 0x7b90000c01e8 by thread T8:
#0 ns__client_setup /home/ondrej/Projects/bind9/lib/ns/client.c:2278 (libns.so.1502+0x12cdc)
#1 ns__client_request /home/ondrej/Projects/bind9/lib/ns/client.c:1643 (libns.so.1502+0x134f6)
#2 udp_recv_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:318 (libisc.so.1504+0x45287)
#3 <null> <null> (libuv.so.1+0x1d6d4)
#4 <null> <null> (libtsan.so.0+0x29b3d)
Previous read of size 8 at 0x7b90000c01e8 by thread T13:
#0 updatedone_action /home/ondrej/Projects/bind9/lib/ns/update.c:3393 (libns.so.1502+0x4f539)
#1 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#2 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#3 <null> <null> (libtsan.so.0+0x29b3d)
Location is heap block of size 7489 at 0x7b90000c0000 allocated by thread T8:
#0 malloc <null> (libtsan.so.0+0x2b1a3)
#1 default_memalloc /home/ondrej/Projects/bind9/lib/isc/mem.c:685 (libisc.so.1504+0x33f1e)
#2 mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:598 (libisc.so.1504+0x34bae)
#3 mem_allocateunlocked /home/ondrej/Projects/bind9/lib/isc/mem.c:1222 (libisc.so.1504+0x34bae)
#4 isc___mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:1242 (libisc.so.1504+0x34bae)
#5 isc__mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:2387 (libisc.so.1504+0x3bd94)
#6 isc___mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:1007 (libisc.so.1504+0x3c5fa)
#7 isc__mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:2365 (libisc.so.1504+0x3ae21)
#8 alloc_handle /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:856 (libisc.so.1504+0x401f7)
#9 isc__nmhandle_get /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:880 (libisc.so.1504+0x401f7)
#10 udp_recv_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:313 (libisc.so.1504+0x45212)
#11 <null> <null> (libuv.so.1+0x1d6d4)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Thread T8 'isc-net-0007' (tid=19747, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7a324)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:152 (libisc.so.1504+0x3e979)
#3 create_managers main.c:895 (named+0x1aec0)
#4 setup main.c:1235 (named+0x1aec0)
#5 main main.c:1513 (named+0x1aec0)
Thread T13 'isc-worker0004' (tid=19752, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/ns/client.c:2278 in ns__client_setup
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1440
ThreadSanitizer: data race in free (closeversion)
2020-09-17T08:17:12Z
Ondřej Surý
ThreadSanitizer: data race in free (closeversion)
Binary: `named`
Commit:
Tests: autosign
```
WARNING: ThreadSanitizer: data race (pid=3192)
Write of size 8 at 0x7b5400020a98 by thread T13 (mutexes: write M745199812520979736):
#0 free <null> (libtsan.so.0+0x2b46a)
#1 default...
Binary: `named`
Commit:
Tests: autosign
```
WARNING: ThreadSanitizer: data race (pid=3192)
Write of size 8 at 0x7b5400020a98 by thread T13 (mutexes: write M745199812520979736):
#0 free <null> (libtsan.so.0+0x2b46a)
#1 default_memfree /home/ondrej/Projects/bind9/lib/isc/mem.c:713 (libisc.so.1504+0x3304c)
#2 mem_put /home/ondrej/Projects/bind9/lib/isc/mem.c:627 (libisc.so.1504+0x35fb1)
#3 isc___mem_free /home/ondrej/Projects/bind9/lib/isc/mem.c:1343 (libisc.so.1504+0x35fb1)
#4 isc__mem_free /home/ondrej/Projects/bind9/lib/isc/mem.c:2408 (libisc.so.1504+0x3d064)
#5 isc___mem_put /home/ondrej/Projects/bind9/lib/isc/mem.c:1061 (libisc.so.1504+0x3df2d)
#6 isc__mem_put /home/ondrej/Projects/bind9/lib/isc/mem.c:2373 (libisc.so.1504+0x3b1ef)
#7 closeversion /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2548 (libdns.so.1505+0x112e08)
#8 dns_db_closeversion /home/ondrej/Projects/bind9/lib/dns/db.c:418 (libdns.so.1505+0x66291)
#9 update_action /home/ondrej/Projects/bind9/lib/ns/update.c:3346 (libns.so.1502+0x4f8bc)
#10 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#11 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Previous read of size 8 at 0x7b5400020a98 by thread T7:
#0 closeversion /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2387 (libdns.so.1505+0x11264d)
#1 dns_db_closeversion /home/ondrej/Projects/bind9/lib/dns/db.c:418 (libdns.so.1505+0x66291)
#2 query_reset /home/ondrej/Projects/bind9/lib/ns/query.c:665 (libns.so.1502+0x32c21)
#3 query_cleanup /home/ondrej/Projects/bind9/lib/ns/query.c:751 (libns.so.1502+0x3388e)
#4 ns_client_endrequest /home/ondrej/Projects/bind9/lib/ns/client.c:191 (libns.so.1502+0x121cf)
#5 ns__client_reset_cb /home/ondrej/Projects/bind9/lib/ns/client.c:1528 (libns.so.1502+0x121cf)
#6 isc_nmhandle_unref /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:993 (libisc.so.1504+0x4064b)
#7 isc__nm_uvreq_put /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1155 (libisc.so.1504+0x41aef)
#8 udp_send_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:440 (libisc.so.1504+0x455ed)
#9 <null> <null> (libuv.so.1+0x1d283)
#10 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M745199812520979736 is already destroyed.
Thread T13 'isc-worker0004' (tid=3219, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
Thread T7 'isc-net-0006' (tid=3213, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7a324)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:152 (libisc.so.1504+0x3e979)
#3 create_managers main.c:895 (named+0x1aec0)
#4 setup main.c:1235 (named+0x1aec0)
#5 main main.c:1513 (named+0x1aec0)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2b46a) in __interceptor_free
```
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
Mark Andrews
Mark Andrews
https://gitlab.isc.org/isc-projects/bind9/-/issues/1477
ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_keytable_fin...
2020-09-17T08:16:37Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_keytable_find vs resume_iteration
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=1260)
Cycle in lock order graph: M340438830370852048 (0x000000000000) => M417844242807813680 (0x000000000000) => M340438830370852048
Mutex M417844242807813...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=1260)
Cycle in lock order graph: M340438830370852048 (0x000000000000) => M417844242807813680 (0x000000000000) => M340438830370852048
Mutex M417844242807813680 acquired here while holding mutex M340438830370852048 in thread T9:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x52197)
#2 dns_keytable_find /home/ondrej/Projects/bind9/lib/dns/keytable.c:479 (libdns.so.1505+0x9c179)
#3 sync_keyzone /home/ondrej/Projects/bind9/lib/dns/zone.c:4362 (libdns.so.1505+0x2279b5)
#4 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4879 (libdns.so.1505+0x24d51a)
#5 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163 (libdns.so.1505+0x251499)
#6 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x251b31)
#7 load_zones server.c:9548 (named+0x2e61a)
#8 run_server server.c:9657 (named+0x59a5a)
#9 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#10 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#11 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M340438830370852048 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x52197)
#2 resume_iteration /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:8946 (libdns.so.1505+0x11dc47)
#3 dbiterator_first /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:8993 (libdns.so.1505+0x11dc47)
#4 dns_dbiterator_first /home/ondrej/Projects/bind9/lib/dns/dbiterator.c:44 (libdns.so.1505+0x69316)
#5 dns_rriterator_first /home/ondrej/Projects/bind9/lib/dns/rriterator.c:69 (libdns.so.1505+0x1c002a)
#6 sync_keyzone /home/ondrej/Projects/bind9/lib/dns/zone.c:4344 (libdns.so.1505+0x22788d)
#7 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4879 (libdns.so.1505+0x24d51a)
#8 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163 (libdns.so.1505+0x251499)
#9 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x251b31)
#10 load_zones server.c:9548 (named+0x2e61a)
#11 run_server server.c:9657 (named+0x59a5a)
#12 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#13 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#14 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M340438830370852048 acquired here while holding mutex M417844242807813680 in thread T9:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x52197)
#2 zone_find /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:3860 (libdns.so.1505+0x11efe0)
#3 dns_db_find /home/ondrej/Projects/bind9/lib/dns/db.c:511 (libdns.so.1505+0x6648d)
#4 addifmissing /home/ondrej/Projects/bind9/lib/dns/zone.c:4281 (libdns.so.1505+0x226c84)
#5 dns_keytable_forall /home/ondrej/Projects/bind9/lib/dns/keytable.c:901 (libdns.so.1505+0x9a9ff)
#6 sync_keyzone /home/ondrej/Projects/bind9/lib/dns/zone.c:4388 (libdns.so.1505+0x227f70)
#7 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4879 (libdns.so.1505+0x24d51a)
#8 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163 (libdns.so.1505+0x251499)
#9 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x251b31)
#10 load_zones server.c:9548 (named+0x2e61a)
#11 run_server server.c:9657 (named+0x59a5a)
#12 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#13 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#14 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M417844242807813680 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x52197)
#2 dns_keytable_forall /home/ondrej/Projects/bind9/lib/dns/keytable.c:885 (libdns.so.1505+0x9a89a)
#3 sync_keyzone /home/ondrej/Projects/bind9/lib/dns/zone.c:4388 (libdns.so.1505+0x227f70)
#4 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4879 (libdns.so.1505+0x24d51a)
#5 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163 (libdns.so.1505+0x251499)
#6 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x251b31)
#7 load_zones server.c:9548 (named+0x2e61a)
#8 run_server server.c:9657 (named+0x59a5a)
#9 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#10 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#11 <null> <null> (libtsan.so.0+0x29b3d)
Thread T9 'isc-worker0000' (tid=1327, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7bcc4)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59d63)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2cf99) in pthread_rwlock_rdlock
```
BIND 9.17 Backburner
Diego dos Santos Fronza
Diego dos Santos Fronza
https://gitlab.isc.org/isc-projects/bind9/-/issues/1485
ThreadSanitizer: data race (bin/named/.libs/named+0x449fe2) in ns__client_set...
2020-09-17T08:14:41Z
Ondřej Surý
ThreadSanitizer: data race (bin/named/.libs/named+0x449fe2) in ns__client_setup lib/ns/client.c:2278:13
There are more variants where the second thread runs:
* `fetch_callback()`
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 memset <null>
#1 ns__client_setup lib/ns/client.c:2278:13
...
There are more variants where the second thread runs:
* `fetch_callback()`
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 memset <null>
#1 ns__client_setup lib/ns/client.c:2278:13
#2 ns__client_request lib/ns/client.c:1643:12
#3 processbuffer lib/isc/netmgr/tcpdns.c:177:3
#4 dnslisten_readcb lib/isc/netmgr/tcpdns.c:231:12
#5 read_cb lib/isc/netmgr/tcp.c:768:4
#6 <null> <null>
Previous read of size 8 at 0x000000000001 by thread T2:
#0 fetch_callback lib/ns/query.c:5680:29
#1 dispatch lib/isc/task.c:1143:7
#2 run lib/isc/task.c:1328:2
Location is heap block of size 7489 at 0x000000000012 allocated by thread T1:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:685:8
#2 mem_get lib/isc/mem.c:598:8
#3 mem_allocateunlocked lib/isc/mem.c:1222:8
#4 isc___mem_allocate lib/isc/mem.c:1242:7
#5 isc__mem_allocate lib/isc/mem.c:2387:10
#6 isc___mem_get lib/isc/mem.c:1007:11
#7 isc__mem_get lib/isc/mem.c:2365:10
#8 alloc_handle lib/isc/netmgr/netmgr.c:918:3
#9 isc__nmhandle_get lib/isc/netmgr/netmgr.c:942:12
#10 processbuffer lib/isc/netmgr/tcpdns.c:176:15
#11 dnslisten_readcb lib/isc/netmgr/tcpdns.c:231:12
#12 read_cb lib/isc/netmgr/tcp.c:768:4
#13 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers bin/named/./main.c:895:15
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: data race in memset
```
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 memset <null>
#1 ns__client_setup lib/ns/client.c:2278:13
#2 ns__client_request lib/ns/client.c:1643:12
#3 udp_recv_cb lib/isc/netmgr/udp.c:317:2
#4 <null> <null>
Previous read of size 8 at 0x000000000001 by thread T2:
#0 fetch_callback lib/ns/query.c:5680:29
#1 dispatch lib/isc/task.c:1143:7
#2 run lib/isc/task.c:1328:2
Location is heap block of size 7489 at 0x000000000010 allocated by thread T1:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:685:8
#2 mem_get lib/isc/mem.c:598:8
#3 mem_allocateunlocked lib/isc/mem.c:1222:8
#4 isc___mem_allocate lib/isc/mem.c:1242:7
#5 isc__mem_allocate lib/isc/mem.c:2387:10
#6 isc___mem_get lib/isc/mem.c:1007:11
#7 isc__mem_get lib/isc/mem.c:2365:10
#8 alloc_handle lib/isc/netmgr/netmgr.c:918:3
#9 isc__nmhandle_get lib/isc/netmgr/netmgr.c:942:12
#10 udp_recv_cb lib/isc/netmgr/udp.c:312:13
#11 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers bin/named/./main.c:895:15
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: data race in memset
```
* `isc_sockaddr_pf()`
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 memset <null>
#1 ns__client_setup lib/ns/client.c:2278:13
#2 ns__client_request lib/ns/client.c:1643:12
#3 udp_recv_cb lib/isc/netmgr/udp.c:317:2
#4 <null> <null>
Previous read of size 2 at 0x000000000001 by thread T2:
#0 isc_sockaddr_pf lib/isc/sockaddr.c:326:28
#1 ns_client_send lib/ns/client.c:633:11
#2 respond lib/ns/update.c:1559:2
#3 updatedone_action lib/ns/update.c:3391:2
#4 dispatch lib/isc/task.c:1143:7
#5 run lib/isc/task.c:1328:2
Location is heap block of size 7473 at 0x000000000013 allocated by thread T1:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:685:8
#2 mem_get lib/isc/mem.c:598:8
#3 isc___mem_get lib/isc/mem.c:1013:9
#4 isc__mem_get lib/isc/mem.c:2365:10
#5 alloc_handle lib/isc/netmgr/netmgr.c:918:3
#6 isc__nmhandle_get lib/isc/netmgr/netmgr.c:942:12
#7 udp_recv_cb lib/isc/netmgr/udp.c:312:13
#8 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers bin/named/./main.c:895:15
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: data race in memset
```
* `updatedone_action()`
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 memset <null>
#1 ns__client_setup lib/ns/client.c:2278:13
#2 ns__client_request lib/ns/client.c:1643:12
#3 udp_recv_cb lib/isc/netmgr/udp.c:317:2
#4 <null> <null>
Previous read of size 8 at 0x000000000001 by thread T2:
#0 updatedone_action lib/ns/update.c:3393:29
#1 dispatch lib/isc/task.c:1143:7
#2 run lib/isc/task.c:1328:2
Location is heap block of size 7473 at 0x000000000010 allocated by thread T1:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:685:8
#2 mem_get lib/isc/mem.c:598:8
#3 isc___mem_get lib/isc/mem.c:1013:9
#4 isc__mem_get lib/isc/mem.c:2365:10
#5 alloc_handle lib/isc/netmgr/netmgr.c:918:3
#6 isc__nmhandle_get lib/isc/netmgr/netmgr.c:942:12
#7 udp_recv_cb lib/isc/netmgr/udp.c:312:13
#8 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers bin/named/./main.c:895:15
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: data race in memset
```
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 memset <null>
#1 ns__client_setup lib/ns/client.c:2278:13
#2 ns__client_request lib/ns/client.c:1643:12
#3 udp_recv_cb lib/isc/netmgr/udp.c:317:2
#4 <null> <null>
Previous read of size 8 at 0x000000000001 by thread T2:
#0 updatedone_action lib/ns/update.c:3393:29
#1 dispatch lib/isc/task.c:1143:7
#2 run lib/isc/task.c:1328:2
Location is heap block of size 7489 at 0x000000000010 allocated by thread T1:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:685:8
#2 mem_get lib/isc/mem.c:598:8
#3 mem_allocateunlocked lib/isc/mem.c:1222:8
#4 isc___mem_allocate lib/isc/mem.c:1242:7
#5 isc__mem_allocate lib/isc/mem.c:2387:10
#6 isc___mem_get lib/isc/mem.c:1007:11
#7 isc__mem_get lib/isc/mem.c:2365:10
#8 alloc_handle lib/isc/netmgr/netmgr.c:918:3
#9 isc__nmhandle_get lib/isc/netmgr/netmgr.c:942:12
#10 udp_recv_cb lib/isc/netmgr/udp.c:312:13
#11 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers bin/named/./main.c:895:15
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: data race in memset
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/2129
ThreadSanitizer: data race bin/named/controlconf.c:645:22 in control_newconn
2020-09-17T08:13:41Z
Ondřej Surý
ThreadSanitizer: data race bin/named/controlconf.c:645:22 in control_newconn
This happens !4089:
```
WARNING: ThreadSanitizer: data race
Write of size 1 at 0x000000000001 by thread T1:
#0 control_newconn bin/named/controlconf.c:645:22
#1 isc__nm_async_tcpchildaccept lib/isc/netmgr/tcp.c:493:2
#2 pro...
This happens !4089:
```
WARNING: ThreadSanitizer: data race
Write of size 1 at 0x000000000001 by thread T1:
#0 control_newconn bin/named/controlconf.c:645:22
#1 isc__nm_async_tcpchildaccept lib/isc/netmgr/tcp.c:493:2
#2 process_queue lib/isc/netmgr/netmgr.c:625:4
#3 async_cb lib/isc/netmgr/netmgr.c:593:2
#4 uv__async_io obj-x86_64-linux-gnu/./src/unix/async.c:163:5
Previous write of size 1 at 0x000000000001 by thread T2:
#0 control_newconn bin/named/controlconf.c:645:22
#1 isc__nm_async_tcpchildaccept lib/isc/netmgr/tcp.c:493:2
#2 process_queue lib/isc/netmgr/netmgr.c:625:4
#3 async_cb lib/isc/netmgr/netmgr.c:593:2
#4 uv__async_io obj-x86_64-linux-gnu/./src/unix/async.c:163:5
Location is heap block of size 265 at 0x000000000007 allocated by thread T3:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:713:8
#2 mem_get lib/isc/mem.c:622:8
#3 isc___mem_get lib/isc/mem.c:1044:9
#4 isc__mem_get lib/isc/mem.c:2432:10
#5 add_listener bin/named/controlconf.c:1118:13
#6 named_controls_configure bin/named/controlconf.c:1316:6
#7 load_configuration bin/named/server.c:9132:2
#8 run_server bin/named/server.c:9769:2
#9 dispatch lib/isc/task.c:1152:7
#10 run lib/isc/task.c:1344:2
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:73:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:223:3
#3 create_managers bin/named/main.c:909:15
#4 setup bin/named/main.c:1223:11
#5 main bin/named/main.c:1523:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:73:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:223:3
#3 create_managers bin/named/main.c:909:15
#4 setup bin/named/main.c:1223:11
#5 main bin/named/main.c:1523:2
Thread T3 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:73:8
#2 isc_taskmgr_create lib/isc/task.c:1434:3
#3 create_managers bin/named/main.c:915:11
#4 setup bin/named/main.c:1223:11
#5 main bin/named/main.c:1523:2
SUMMARY: ThreadSanitizer: data race bin/named/controlconf.c:645:22 in control_newconn
```
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
Evan Hunt
Evan Hunt
https://gitlab.isc.org/isc-projects/bind9/-/issues/2130
ThreadSanitizer: heap-use-after-free lib/ns/tests/nstest.c:125:11 in __wrap_i...
2020-09-17T08:12:49Z
Ondřej Surý
ThreadSanitizer: heap-use-after-free lib/ns/tests/nstest.c:125:11 in __wrap_isc_nmhandle_detach
Happens in !4089 MR:
```
WARNING: ThreadSanitizer: heap-use-after-free
Write of size 8 at 0x000000000001 by main thread:
#0 __wrap_isc_nmhandle_detach lib/ns/tests/nstest.c:125:11
#1 ns_test_qctx_destroy lib/ns/tests/nstest.c:8...
Happens in !4089 MR:
```
WARNING: ThreadSanitizer: heap-use-after-free
Write of size 8 at 0x000000000001 by main thread:
#0 __wrap_isc_nmhandle_detach lib/ns/tests/nstest.c:125:11
#1 ns_test_qctx_destroy lib/ns/tests/nstest.c:872:3
#2 run_sfcache_test lib/ns/tests/query_test.c:163:2
#3 ns__query_sfcache_test lib/ns/tests/query_test.c:245:3
#4 cmocka_run_one_test_or_fixture <null>
#5 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16
Previous write of size 8 at 0x000000000001 by main thread (mutexes: write M1):
#0 free <null>
#1 default_memfree lib/isc/mem.c:742:2
#2 mem_put lib/isc/mem.c:654:2
#3 isc___mem_put lib/isc/mem.c:1110:3
#4 isc__mem_put lib/isc/mem.c:2439:2
#5 __wrap_isc_nmhandle_detach lib/ns/tests/nstest.c:122:3
#6 ns_test_qctx_destroy lib/ns/tests/nstest.c:872:3
#7 run_sfcache_test lib/ns/tests/query_test.c:163:2
#8 ns__query_sfcache_test lib/ns/tests/query_test.c:245:3
#9 cmocka_run_one_test_or_fixture <null>
#10 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16
Mutex M1 (0x000000000014) created at:
#0 pthread_mutex_init <null>
#1 isc__mutex_init lib/isc/pthreads/mutex.c:288:8
#2 mem_create lib/isc/mem.c:765:2
#3 isc_mem_create lib/isc/mem.c:2425:2
#4 ns_test_begin lib/ns/tests/nstest.c:303:2
#5 _setup lib/ns/tests/query_test.c:43:11
#6 cmocka_run_one_test_or_fixture <null>
#7 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16
SUMMARY: ThreadSanitizer: heap-use-after-free lib/ns/tests/nstest.c:125:11 in __wrap_isc_nmhandle_detach
```
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
Evan Hunt
Evan Hunt
https://gitlab.isc.org/isc-projects/bind9/-/issues/1439
ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2f9f7) i...
2020-09-17T08:12:13Z
Ondřej Surý
ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2f9f7) in __interceptor_epoll_ctl
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: acl, rpzrecurse, serve-stale, dnssec, ...
```
WARNING: ThreadSanitizer: data race (pid=14215)
Read of size 8 at 0x7ba000002000 by thread T18:
#0 epoll_c...
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: acl, rpzrecurse, serve-stale, dnssec, ...
```
WARNING: ThreadSanitizer: data race (pid=14215)
Read of size 8 at 0x7ba000002000 by thread T18:
#0 epoll_ctl <null> (libtsan.so.0+0x2f9f7)
#1 watch_fd /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:717 (libisc.so.1504+0x71e7e)
#2 wakeup_socket /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:915 (libisc.so.1504+0x71e7e)
#3 process_ctlfd /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:3348 (libisc.so.1504+0x71e7e)
#4 process_fds /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:3263 (libisc.so.1504+0x71e7e)
#5 netthread /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:3503 (libisc.so.1504+0x71e7e)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Previous write of size 8 at 0x7ba000002000 by thread T16 (mutexes: write M51082519952713632):
#0 connect <null> (libtsan.so.0+0x2eaa3)
#1 isc_socket_connect /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:4750 (libisc.so.1504+0x7617a)
#2 resquery_send /home/ondrej/Projects/bind9/lib/dns/resolver.c:2799 (libdns.so.1505+0x18fced)
#3 fctx_query /home/ondrej/Projects/bind9/lib/dns/resolver.c:2153 (libdns.so.1505+0x19eff4)
#4 fctx_try /home/ondrej/Projects/bind9/lib/dns/resolver.c:4141 (libdns.so.1505+0x1a1641)
#5 fctx_timeout /home/ondrej/Projects/bind9/lib/dns/resolver.c:4466 (libdns.so.1505+0x1abbbf)
#6 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#7 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#8 <null> <null> (libtsan.so.0+0x29b3d)
Location is file descriptor 512 created by thread T16 at:
#0 connect <null> (libtsan.so.0+0x2eaa3)
#1 isc_socket_connect /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:4750 (libisc.so.1504+0x7617a)
#2 resquery_send /home/ondrej/Projects/bind9/lib/dns/resolver.c:2799 (libdns.so.1505+0x18fced)
#3 fctx_query /home/ondrej/Projects/bind9/lib/dns/resolver.c:2153 (libdns.so.1505+0x19eff4)
#4 fctx_try /home/ondrej/Projects/bind9/lib/dns/resolver.c:4141 (libdns.so.1505+0x1a1641)
#5 fctx_timeout /home/ondrej/Projects/bind9/lib/dns/resolver.c:4466 (libdns.so.1505+0x1abbbf)
#6 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#7 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#8 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M51082519952713632 is already destroyed.
Thread T18 'isc-socket-0' (tid=14247, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7a324)
#2 isc_socketmgr_create2 /home/ondrej/Projects/bind9/lib/isc/unix/socket.c:3817 (libisc.so.1504+0x73342)
#3 create_managers main.c:919 (named+0x1af94)
#4 setup main.c:1235 (named+0x1af94)
#5 main main.c:1513 (named+0x1af94)
Thread T16 'isc-worker0007' (tid=14245, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2f9f7) in __interceptor_epoll_ctl
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1502
ThreadSanitizer: data race in close - stoplistening()
2020-09-17T08:11:26Z
Ondřej Surý
ThreadSanitizer: data race in close - stoplistening()
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1 (mutexes: write M1):
#0 close <null>
#1 uv__close_nocheckstdio <null>
#2 stoplistening lib/isc/netmgr/udp.c:179:4
#3 isc_nm_udp_stop...
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1 (mutexes: write M1):
#0 close <null>
#1 uv__close_nocheckstdio <null>
#2 stoplistening lib/isc/netmgr/udp.c:179:4
#3 isc_nm_udp_stoplistening lib/isc/netmgr/udp.c:218:3
#4 ns_interface_shutdown lib/ns/interfacemgr.c:545:3
#5 purge_old_interfaces lib/ns/interfacemgr.c:643:4
#6 ns_interfacemgr_shutdown lib/ns/interfacemgr.c:375:2
#7 shutdown_server bin/named/./server.c:9686:2
#8 dispatch lib/isc/task.c:1143:7
#9 run lib/isc/task.c:1328:2
Previous read of size 8 at 0x000000000001 by thread T2:
#0 epoll_ctl <null>
#1 uv__io_poll <null>
Location is file descriptor 66 created by thread T2 at:
#0 socket <null>
#1 isc_nm_listenudp lib/isc/netmgr/udp.c:86:15
#2 ns_interface_listenudp lib/ns/interfacemgr.c:451:11
#3 ns_interface_setup lib/ns/interfacemgr.c:506:11
#4 do_scan lib/ns/interfacemgr.c:1070:14
#5 ns_interfacemgr_scan0 lib/ns/interfacemgr.c:1130:11
#6 ns_interfacemgr_scan lib/ns/interfacemgr.c:1177:11
#7 load_configuration bin/named/./server.c:8712:11
#8 run_server bin/named/./server.c:9654:2
#9 dispatch lib/isc/task.c:1143:7
#10 run lib/isc/task.c:1328:2
Mutex M1 is already destroyed.
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers bin/named/./main.c:895:15
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: data race in close
```
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1974
ThreadSanitizer: data race in dup
2020-09-17T07:53:56Z
Ondřej Surý
ThreadSanitizer: data race in dup
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 dup <null>
#1 isc_uv_export netmgr/uv-compat.c:162
#2 accept_connection netmgr/tcp.c:882
#3 tcp_connection_cb netmgr/tcp.c:392
...
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by thread T1:
#0 dup <null>
#1 isc_uv_export netmgr/uv-compat.c:162
#2 accept_connection netmgr/tcp.c:882
#3 tcp_connection_cb netmgr/tcp.c:392
#4 uv__server_io <null>
#5 <null> <null>
Previous read of size 8 at 0x000000000001 by thread T2:
#0 epoll_ctl <null>
#1 uv__platform_invalidate_fd <null>
#2 uv_run <null>
#3 <null> <null>
Location is file descriptor 87 created by thread T1 at:
#0 dup <null>
#1 isc_uv_export netmgr/uv-compat.c:162
#2 accept_connection netmgr/tcp.c:882
#3 tcp_connection_cb netmgr/tcp.c:392
#4 uv__server_io <null>
#5 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create pthreads/thread.c:73
#2 isc_nm_start netmgr/netmgr.c:215
#3 create_managers bin/named/main.c:903
#4 setup bin/named/main.c:1217
#5 main bin/named/main.c:1517
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create pthreads/thread.c:73
#2 isc_nm_start netmgr/netmgr.c:215
#3 create_managers bin/named/main.c:903
#4 setup bin/named/main.c:1217
#5 main bin/named/main.c:1517
SUMMARY: ThreadSanitizer: data race in dup
```
October 2020 (9.11.24, 9.11.24-S1, 9.16.8, 9.16.8-S1, 9.17.6)
Evan Hunt
Evan Hunt
https://gitlab.isc.org/isc-projects/bind9/-/issues/1501
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthrea...
2020-09-17T07:48:07Z
Ondřej Surý
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_wrlock - zone_postload
One variant is race between `zone_postload` and `resume_iteration`, and the second variant is race between `zone_postload` and `receive_secure_db`.
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
Cycle in lock ...
One variant is race between `zone_postload` and `resume_iteration`, and the second variant is race between `zone_postload` and `receive_secure_db`.
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1
Mutex M2 acquired here while holding mutex M1 in thread T1:
#0 pthread_rwlock_wrlock <null>
#1 isc_rwlock_lock lib/isc/rwlock.c:54:4
#2 zone_postload lib/dns/zone.c:4908:2
#3 receive_secure_db lib/dns/zone.c:15645:11
#4 dispatch lib/isc/task.c:1143:7
#5 run lib/isc/task.c:1328:2
Mutex M1 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null>
#1 isc_rwlock_lock lib/isc/rwlock.c:50:3
#2 resume_iteration lib/dns/rbtdb.c:8946:2
#3 dbiterator_first lib/dns/rbtdb.c:8993:3
#4 dns_dbiterator_first lib/dns/dbiterator.c:44:10
#5 receive_secure_db lib/dns/zone.c:15575:16
#6 dispatch lib/isc/task.c:1143:7
#7 run lib/isc/task.c:1328:2
Mutex M1 acquired here while holding mutex M2 in thread T2:
#0 pthread_rwlock_rdlock <null>
#1 isc_rwlock_lock lib/isc/rwlock.c:50:3
#2 findnodeintree lib/dns/rbtdb.c:2742:2
#3 findnode lib/dns/rbtdb.c:2804:10
#4 dns_db_findnode lib/dns/db.c:447:11
#5 zone_get_from_db lib/dns/zone.c:5373:11
#6 get_raw_serial lib/dns/zone.c:2398:12
#7 zone_gotwritehandle lib/dns/zone.c:2435:4
#8 dispatch lib/isc/task.c:1143:7
#9 run lib/isc/task.c:1328:2
Mutex M2 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null>
#1 isc_rwlock_lock lib/isc/rwlock.c:50:3
#2 zone_gotwritehandle lib/dns/zone.c:2428:2
#3 dispatch lib/isc/task.c:1143:7
#4 run lib/isc/task.c:1328:2
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
Thread T2 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_wrlock
```
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000002) => M1
Mutex M2 acquired here while holding mutex M1 in thread T1:
#0 pthread_rwlock_wrlock <null>
#1 isc_rwlock_lock lib/isc/rwlock.c:54:4
#2 zone_postload lib/dns/zone.c:4908:2
#3 receive_secure_db lib/dns/zone.c:15645:11
#4 dispatch lib/isc/task.c:1143:7
#5 run lib/isc/task.c:1328:2
Mutex M1 previously acquired by the same thread here:
#0 pthread_mutex_lock <null>
#1 receive_secure_db lib/dns/zone.c:15643:2
#2 dispatch lib/isc/task.c:1143:7
#3 run lib/isc/task.c:1328:2
Mutex M1 acquired here while holding mutex M2 in thread T1:
#0 pthread_mutex_lock <null>
#1 get_raw_serial lib/dns/zone.c:2396:2
#2 zone_gotwritehandle lib/dns/zone.c:2435:4
#3 dispatch lib/isc/task.c:1143:7
#4 run lib/isc/task.c:1328:2
Mutex M2 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null>
#1 isc_rwlock_lock lib/isc/rwlock.c:50:3
#2 zone_gotwritehandle lib/dns/zone.c:2428:2
#3 dispatch lib/isc/task.c:1143:7
#4 run lib/isc/task.c:1328:2
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_taskmgr_create lib/isc/task.c:1419:3
#3 create_managers bin/named/./main.c:902:11
#4 setup bin/named/./main.c:1235:11
#5 main bin/named/./main.c:1515:2
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_wrlock
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1489
ThreadSanitizer: lock-order-inversion (potential deadlock) - findnodeintree v...
2020-09-17T07:46:21Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - findnodeintree vs rss_post
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M18589 (0x7b780002a018) => M33903 (0x7b50000500d0) => M18589
Mutex M33903 acquired here while holding mutex M18589 in thr...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M18589 (0x7b780002a018) => M33903 (0x7b50000500d0) => M18589
Mutex M33903 acquired here while holding mutex M18589 in thread T12:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2742:2 (libdns.so.1505+0xed3db)
#3 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2804:10 (libdns.so.1505+0xdd39b)
#4 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447:11 (libdns.so.1505+0x5fb68)
#5 resume_addnsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:3573:11 (libdns.so.1505+0x1dda18)
#6 rss_post /home/ondrej/Projects/bind9/lib/dns/zone.c:19952:3 (libdns.so.1505+0x1dd1e8)
#7 setnsec3param /home/ondrej/Projects/bind9/lib/dns/zone.c:19760:3 (libdns.so.1505+0x1ce1fc)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M18589 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 rss_post /home/ondrej/Projects/bind9/lib/dns/zone.c:19951:3 (libdns.so.1505+0x1dd1b4)
#2 setnsec3param /home/ondrej/Projects/bind9/lib/dns/zone.c:19760:3 (libdns.so.1505+0x1ce1fc)
#3 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#4 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M18589 acquired here while holding mutex M33903 in thread T12:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:7991:3 (libdns.so.1505+0x1e6bdb)
#2 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#3 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M33903 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 resume_iteration /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:8946:2 (libdns.so.1505+0xf01fb)
#3 dbiterator_next /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:9223:3 (libdns.so.1505+0xef82a)
#4 dns_dbiterator_next /home/ondrej/Projects/bind9/lib/dns/dbiterator.c:88:10 (libdns.so.1505+0x62974)
#5 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8127:13 (libdns.so.1505+0x1e6f60)
#6 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#7 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Thread T12 'isc-worker0003' (tid=17312, running) created by main thread at:
#0 pthread_create <null> (named+0x44011b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75:8 (libisc.so.1504+0x6a9ea)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410:3 (libisc.so.1504+0x4f1b2)
#3 create_managers /home/ondrej/Projects/bind9/bin/named/./main.c:902:11 (named+0x4db206)
#4 setup /home/ondrej/Projects/bind9/bin/named/./main.c:1235:11 (named+0x4d98fe)
#5 main /home/ondrej/Projects/bind9/bin/named/./main.c:1515:2 (named+0x4d85c2)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/home/ondrej/Projects/bind9/bin/named/.libs/named+0x442616) in pthread_rwlock_rdlock
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1488
ThreadSanitizer: lock-order-inversion (potential deadlock) - setnsec3paramete...
2020-09-17T07:46:13Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - setnsec3parameters vs zone_asyncload
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M17781 (0x7b780001c818) => M921966132255197904 (0x000000000000) => M17781
Mutex M921966132255197904 acquired here while h...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M17781 (0x7b780001c818) => M921966132255197904 (0x000000000000) => M17781
Mutex M921966132255197904 acquired here while holding mutex M17781 in thread T15:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 setnsec3parameters /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2288:2 (libdns.so.1505+0xec52f)
#3 iszonesecure /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2261:2 (libdns.so.1505+0xec486)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7336:3 (libdns.so.1505+0xdb937)
#5 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301:10 (libdns.so.1505+0x5f3ee)
#6 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554:13 (libdns.so.1505+0x1cfd16)
#7 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138:13 (libdns.so.1505+0x1b6796)
#8 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193:11 (libdns.so.1505+0x1b709c)
#9 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#10 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M17781 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2192:2 (libdns.so.1505+0x1b704b)
#2 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#3 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M17781 acquired here while holding mutex M921966132255197904 in thread T9:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8216:3 (libdns.so.1505+0x1e7942)
#2 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#3 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M921966132255197904 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 resume_iteration /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:8946:2 (libdns.so.1505+0xf01fb)
#3 dbiterator_current /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:9268:3 (libdns.so.1505+0xefa7a)
#4 dns_dbiterator_current /home/ondrej/Projects/bind9/lib/dns/dbiterator.c:103:10 (libdns.so.1505+0x62a1a)
#5 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8253:3 (libdns.so.1505+0x1e7a78)
#6 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#7 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Thread T15 'isc-worker0006' (tid=17315, running) created by main thread at:
#0 pthread_create <null> (named+0x44011b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75:8 (libisc.so.1504+0x6a9ea)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410:3 (libisc.so.1504+0x4f1b2)
#3 create_managers /home/ondrej/Projects/bind9/bin/named/./main.c:902:11 (named+0x4db206)
#4 setup /home/ondrej/Projects/bind9/bin/named/./main.c:1235:11 (named+0x4d98fe)
#5 main /home/ondrej/Projects/bind9/bin/named/./main.c:1515:2 (named+0x4d85c2)
Thread T9 'isc-worker0000' (tid=17309, running) created by main thread at:
#0 pthread_create <null> (named+0x44011b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75:8 (libisc.so.1504+0x6a9ea)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410:3 (libisc.so.1504+0x4f1b2)
#3 create_managers /home/ondrej/Projects/bind9/bin/named/./main.c:902:11 (named+0x4db206)
#4 setup /home/ondrej/Projects/bind9/bin/named/./main.c:1235:11 (named+0x4d98fe)
#5 main /home/ondrej/Projects/bind9/bin/named/./main.c:1515:2 (named+0x4d85c2)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/home/ondrej/Projects/bind9/bin/named/.libs/named+0x442616) in pthread_rwlock_rdlock
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1487
ThreadSanitizer: lock-order-inversion (potential deadlock) - nodecount vs zon...
2020-09-17T07:46:07Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - nodecount vs zone_asyncload
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M17329 (0x7b7800015018) => M35468 (0x7b50000302d0) => M17329
Mutex M35468 acquired here while holding mutex M17329 in thr...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M17329 (0x7b7800015018) => M35468 (0x7b50000302d0) => M17329
Mutex M35468 acquired here while holding mutex M17329 in thread T15:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 nodecount /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7637:2 (libdns.so.1505+0xe108d)
#3 dns_db_nodecount /home/ondrej/Projects/bind9/lib/dns/db.c:847:10 (libdns.so.1505+0x613ea)
#4 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4570:8 (libdns.so.1505+0x1ca704)
#5 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163:11 (libdns.so.1505+0x1b6ac5)
#6 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193:11 (libdns.so.1505+0x1b709c)
#7 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#8 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M17329 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2192:2 (libdns.so.1505+0x1b704b)
#2 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#3 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M17329 acquired here while holding mutex M35468 in thread T13:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:7991:3 (libdns.so.1505+0x1e6bdb)
#2 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#3 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M35468 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 resume_iteration /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:8946:2 (libdns.so.1505+0xf01fb)
#3 dbiterator_next /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:9223:3 (libdns.so.1505+0xef82a)
#4 dns_dbiterator_next /home/ondrej/Projects/bind9/lib/dns/dbiterator.c:88:10 (libdns.so.1505+0x62974)
#5 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8127:13 (libdns.so.1505+0x1e6f60)
#6 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#7 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Thread T15 'isc-worker0006' (tid=17315, running) created by main thread at:
#0 pthread_create <null> (named+0x44011b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75:8 (libisc.so.1504+0x6a9ea)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410:3 (libisc.so.1504+0x4f1b2)
#3 create_managers /home/ondrej/Projects/bind9/bin/named/./main.c:902:11 (named+0x4db206)
#4 setup /home/ondrej/Projects/bind9/bin/named/./main.c:1235:11 (named+0x4d98fe)
#5 main /home/ondrej/Projects/bind9/bin/named/./main.c:1515:2 (named+0x4d85c2)
Thread T13 'isc-worker0004' (tid=17313, running) created by main thread at:
#0 pthread_create <null> (named+0x44011b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75:8 (libisc.so.1504+0x6a9ea)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410:3 (libisc.so.1504+0x4f1b2)
#3 create_managers /home/ondrej/Projects/bind9/bin/named/./main.c:902:11 (named+0x4db206)
#4 setup /home/ondrej/Projects/bind9/bin/named/./main.c:1235:11 (named+0x4d98fe)
#5 main /home/ondrej/Projects/bind9/bin/named/./main.c:1515:2 (named+0x4d85c2)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/home/ondrej/Projects/bind9/bin/named/.libs/named+0x442616) in pthread_rwlock_rdlock
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1478
ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_zone_setview...
2020-09-17T07:45:17Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_zone_setviewcommit vs dns_view_setviewcommit
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=1260)
Cycle in lock order graph: M637958001013031032 (0x000000000000) => M423192645322475544 (0x000000000000) => M637958001013031032
Mutex M423192645322475...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=1260)
Cycle in lock order graph: M637958001013031032 (0x000000000000) => M423192645322475544 (0x000000000000) => M637958001013031032
Mutex M423192645322475544 acquired here while holding mutex M637958001013031032 in thread T9:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_zone_setviewcommit /home/ondrej/Projects/bind9/lib/dns/zone.c:1530 (libdns.so.1505+0x20b0bf)
#2 dns_view_setviewcommit /home/ondrej/Projects/bind9/lib/dns/view.c:2355 (libdns.so.1505+0x1fd42d)
#3 load_configuration server.c:8971 (named+0x57743)
#4 run_server server.c:9654 (named+0x59a47)
#5 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#6 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#7 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M637958001013031032 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_view_setviewcommit /home/ondrej/Projects/bind9/lib/dns/view.c:2349 (libdns.so.1505+0x1fd3eb)
#2 load_configuration server.c:8971 (named+0x57743)
#3 run_server server.c:9654 (named+0x59a47)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M637958001013031032 acquired here while holding mutex M423192645322475544 in thread T10:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_view_findzonecut /home/ondrej/Projects/bind9/lib/dns/view.c:1242 (libdns.so.1505+0x1f7819)
#2 fctx_create /home/ondrej/Projects/bind9/lib/dns/resolver.c:4890 (libdns.so.1505+0x190c0d)
#3 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10581 (libdns.so.1505+0x1976b1)
#4 zone_refreshkeys /home/ondrej/Projects/bind9/lib/dns/zone.c:10575 (libdns.so.1505+0x22c089)
#5 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10787 (libdns.so.1505+0x249326)
#6 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13652 (libdns.so.1505+0x249326)
#7 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#8 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#9 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M423192645322475544 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 zone_refreshkeys /home/ondrej/Projects/bind9/lib/dns/zone.c:10462 (libdns.so.1505+0x22b945)
#2 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10787 (libdns.so.1505+0x249326)
#3 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13652 (libdns.so.1505+0x249326)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Thread T9 'isc-worker0000' (tid=1327, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7bcc4)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59d63)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
Thread T10 'isc-worker0001' (tid=1329, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7bcc4)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59d63)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock
```
BIND 9.17 Backburner
https://gitlab.isc.org/isc-projects/bind9/-/issues/1470
ThreadSanitizer: lock-order-inversion (potential deadlock) - validator_start ...
2020-09-17T07:45:09Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - validator_start vs. dns_resolver_createfetch
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=21211)
Cycle in lock order graph: M100197 (0x7b7000010008) => M1110 (0x7b7400000008) => M100197
Mutex M1110 acquired here while holding mutex M100197 in th...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=21211)
Cycle in lock order graph: M100197 (0x7b7000010008) => M1110 (0x7b7400000008) => M100197
Mutex M1110 acquired here while holding mutex M100197 in thread T1:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10538 (libdns.so.1505+0x196da5)
#2 create_fetch /home/ondrej/Projects/bind9/lib/dns/validator.c:1055 (libdns.so.1505+0x1f1c55)
#3 seek_dnskey /home/ondrej/Projects/bind9/lib/dns/validator.c:1305 (libdns.so.1505+0x1f1c55)
#4 validate_answer /home/ondrej/Projects/bind9/lib/dns/validator.c:1557 (libdns.so.1505+0x1f1c55)
#5 validator_start /home/ondrej/Projects/bind9/lib/dns/validator.c:3157 (libdns.so.1505+0x1f2ac9)
#6 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#7 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#8 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M100197 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 validator_start /home/ondrej/Projects/bind9/lib/dns/validator.c:3140 (libdns.so.1505+0x1f27a8)
#2 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#3 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#4 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M100197 acquired here while holding mutex M1110 in thread T1:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_validator_destroy /home/ondrej/Projects/bind9/lib/dns/validator.c:3402 (libdns.so.1505+0x1f23da)
#2 validated /home/ondrej/Projects/bind9/lib/dns/resolver.c:5379 (libdns.so.1505+0x1a8153)
#3 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#4 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#5 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M1110 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 validated /home/ondrej/Projects/bind9/lib/dns/resolver.c:5365 (libdns.so.1505+0x1a7f4e)
#2 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#3 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#4 <null> <null> (libtsan.so.0+0x29b3d)
Thread T1 'isc-worker0000' (tid=21226, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7bc54)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59cf3)
#3 isc_taskmgr_createinctx /home/ondrej/Projects/bind9/lib/isc/task.c:1978 (libisc.so.1504+0x5f3a2)
#4 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1730 (delv+0x3cfa)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock
```
BIND 9.17 Backburner
Diego dos Santos Fronza
Diego dos Santos Fronza