Matthijs Mekking and Evan Hunt
3cd62b71e6
Fix race condition crash
...
When running resolver benchmark pipeline, a crash occurred:
https://gitlab.isc.org/isc-projects/bind9-shotgun-ci/-/pipelines/163946
In the code we are doing a lookup, it fails (meaning there is no node
with lookup name), we create the node and insert it and it fails.
But dns_qp_insert can only return ISC_R_SUCCESS or ISC_R_EXISTS.
So it must have been inserted in between. This is a race condition bug.
The first lookup only requires a write lock and if the lookup failed
the lock gets upgraded to a write lock and we insert the missing data.
To fix the race condition bug, we need to do a lookup again after we
have upgraded the lock to make sure it wasn't inserted in the mean
time.
2024-03-05 16:57:03 -08:00
..
2024-03-05 16:53:22 -08:00
2024-02-26 12:02:40 +11:00
2023-10-13 14:44:40 +02:00
2023-11-29 14:16:20 +01:00
2024-03-05 16:48:12 -08:00
2023-11-14 08:59:48 +00:00
2024-03-05 16:48:12 -08:00
2023-09-12 16:14:10 +02:00
2024-02-14 13:24:56 +01:00
2024-03-05 16:53:22 -08:00
2023-12-20 01:56:38 +11:00
2024-03-04 16:34:14 +01:00
2023-09-13 14:31:43 +10:00
2024-01-25 15:37:40 +01:00
2023-09-24 18:07:40 +02:00
2024-02-14 13:24:56 +01:00
2024-01-25 14:48:07 +01:00
2023-09-28 00:32:44 -07:00
2024-02-08 08:01:58 +01:00
2023-08-31 22:08:35 +02:00
2023-10-13 14:44:40 +02:00
2023-08-31 22:08:35 +02:00
2024-01-25 14:41:25 +01:00
2024-01-25 14:47:43 +01:00
2024-01-25 15:37:40 +01:00
2024-01-25 15:37:40 +01:00
2023-09-28 00:32:44 -07:00
2024-03-05 15:47:59 -08:00
2023-10-17 17:47:46 +02:00
2023-12-06 17:31:38 -08:00
2024-02-14 13:24:56 +01:00
2023-09-12 16:14:10 +02:00
2023-09-28 00:32:44 -07:00
2023-09-18 13:38:27 +10:00
2023-12-21 20:12:09 +11:00
2023-10-13 09:57:28 +00:00
2024-02-08 08:01:58 +01:00
2024-01-25 14:48:07 +01:00
2023-09-01 12:01:20 +10:00
2024-01-25 14:48:07 +01:00
2023-10-17 17:47:46 +02:00
2023-12-20 17:21:14 +01:00
2023-09-28 00:32:39 -07:00
2024-03-05 16:53:22 -08:00
2024-03-05 16:53:22 -08:00
2023-12-21 09:18:30 -08:00
2024-03-05 16:54:11 -08:00
2024-03-05 16:57:03 -08:00
2024-02-23 12:00:12 +01:00
2024-02-14 01:13:44 -08:00
2024-02-29 11:23:03 +01:00
2024-03-05 16:47:50 -08:00
2024-03-05 16:47:50 -08:00
2023-09-01 12:01:19 +10:00
2023-08-31 22:08:35 +02:00
2024-02-14 09:00:27 +01:00
2023-08-31 22:08:35 +02:00
2024-02-07 09:52:32 +11:00
2024-02-13 09:21:49 +11:00
2024-02-21 21:05:21 +02:00
2024-03-05 16:48:12 -08:00
2023-10-09 13:29:02 -07:00
2023-08-31 22:08:35 +02:00
2023-10-13 14:44:40 +02:00
2023-11-21 14:48:43 +11:00
2024-01-12 13:27:59 +02:00
2024-01-05 11:16:12 +01:00
2024-01-25 14:41:25 +01:00
2024-02-16 08:41:52 +00:00
2023-12-06 15:15:25 +02:00
2024-03-05 16:48:12 -08:00
2024-01-25 14:48:07 +01:00
2024-03-05 16:48:12 -08:00
2023-08-31 22:08:35 +02:00
2023-09-28 00:32:44 -07:00