Ava Chow
173ab0ccf2
Merge bitcoin/bitcoin#29720 : rpc: Avoid getchaintxstats invalid results
...
2342b46c45 test: Add coverage for getchaintxstats in assumeutxo context (Fabian Jahr)
faf2a6750b rpc: Reorder getchaintxstats output (MarcoFalke)
fa2dada0c9 rpc: Avoid getchaintxstats invalid results (MarcoFalke)
Pull request description:
The `getchaintxstats` RPC reply during AU background download may return non-zero, but invalid, values for `window_tx_count` and `txrate`.
For example, `txcount` may be zero for a to-be-downloaded block, but may be non-zero for an ancestor block which is already downloaded. Thus, the values returned may be negative (and cause intermediate integer sanitizer violations).
Also, `txcount` may be accurate for the snapshot base block, or a descendant of it. However it may be zero for an ancestor block that still needs to be downloaded. Thus, the values returned may be positive, but wrong.
Fix all issues by skipping the returned value if either `txcount` is unset (equal to zero).
Also, skip `txcount` in the returned value, if it is unset (equal to zero).
Fixes https://github.com/bitcoin/bitcoin/issues/29328
ACKs for top commit:
fjahr:
re-ACK 2342b46c45
achow101:
ACK 2342b46c45
mzumsande:
ACK 2342b46c45
Tree-SHA512: 931cecc40ee5dc0f96be728db7eb297155f8343076cd29c8b8c050c99fd1d568b80f54c9459a34ca7a9489c2474c729796d00eeb1934d6a9f7b4d6a53e3ec430
2024-07-02 18:02:26 -04:00
..
2024-06-12 17:12:54 -04:00
2024-06-12 17:12:54 -04:00
2024-03-01 13:13:07 -05:00
2024-06-07 13:55:23 -04:00
2024-02-27 18:28:19 +00:00
2024-05-16 17:16:08 +02:00
2024-06-13 11:20:49 +01:00
2024-06-18 18:47:51 +02:00
2024-06-27 08:58:25 +02:00
2023-11-28 12:35:50 -05:00
2024-06-26 22:47:09 +00:00
2024-06-13 13:17:57 +01:00
2023-01-31 18:48:50 +01:00
2024-06-12 14:38:39 +01:00
2024-07-02 16:43:45 -04:00
2024-07-02 12:20:12 +01:00
2024-06-12 17:12:54 -04:00
2024-06-12 17:12:54 -04:00
2024-07-02 18:02:26 -04:00
2024-06-12 17:12:54 -04:00
2024-06-25 15:01:00 +01:00
2024-02-13 20:10:44 +00:00
2024-07-02 17:49:32 -04:00
2024-04-16 16:35:12 +02:00
2024-06-27 17:35:08 -04:00
2024-07-01 12:27:43 -04:00
2024-05-20 16:48:19 +00:00
2023-10-12 11:27:19 +02:00
2023-12-15 15:20:54 +01:00
2024-05-30 11:33:59 +01:00
2024-05-01 08:33:04 +02:00
2023-09-05 10:13:25 +02:00
2023-09-12 12:14:31 -04:00
2023-10-25 22:46:55 +02:00
2024-04-10 17:01:27 +02:00
2024-05-15 15:09:56 -04:00
2024-01-15 16:19:53 -05:00
2023-11-21 17:37:25 +01:00
2023-11-21 17:37:25 +01:00
2023-05-04 20:57:51 +01:00
2023-11-02 14:09:27 -04:00
2024-05-30 08:35:18 -04:00
2024-05-16 10:16:08 -05:00
2022-12-24 23:49:50 +00:00
2024-06-05 13:18:13 +02:00
2024-05-13 12:07:47 +02:00
2023-09-10 16:11:52 -04:00
2023-09-10 16:11:52 -04:00
2024-06-13 11:20:48 +01:00
2024-06-12 17:12:54 -04:00
2024-06-12 17:12:54 -04:00
2024-05-01 08:33:04 +02:00
2024-06-12 17:12:54 -04:00
2024-06-13 11:20:49 +01:00
2024-06-19 22:56:30 +01:00
2024-06-19 22:56:30 +01:00
2024-05-16 10:16:08 -05:00
2023-08-17 18:28:15 +02:00
2022-12-24 23:49:50 +00:00
2024-03-18 11:28:40 -05:00
2024-05-16 10:16:08 -05:00
2023-05-25 19:24:05 +02:00
2023-05-10 10:39:58 +02:00
2023-05-10 10:39:58 +02:00
2024-03-04 19:53:30 -05:00
2023-10-03 10:52:17 +01:00
2024-05-16 10:16:08 -05:00
2024-05-01 08:33:04 +02:00
2024-06-10 13:46:56 +02:00
2023-11-24 14:41:58 +00:00
2023-08-14 17:38:27 -04:00
2024-06-07 13:55:23 -04:00
2023-12-11 18:22:13 +01:00
2024-05-16 10:16:08 -05:00
2024-06-07 13:55:23 -04:00
2024-03-26 16:51:46 +00:00
2023-09-12 12:07:39 +02:00
2023-09-12 12:07:39 +02:00
2023-03-15 16:42:42 +01:00
2023-03-15 16:42:42 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2024-05-16 15:03:13 -04:00
2024-03-27 14:16:37 +00:00
2023-05-20 12:08:13 +02:00
2024-03-11 13:49:37 +01:00
2023-04-03 14:41:22 +01:00
2024-01-05 17:12:38 +01:00
2023-11-16 11:36:22 +10:00
2024-02-01 13:52:05 +01:00
2022-12-12 21:06:04 +00:00
2024-06-27 17:35:08 -04:00
2024-06-26 06:47:30 +03:00
2024-06-26 06:47:30 +03:00
2024-06-26 15:28:26 -04:00
2024-06-12 16:19:50 -03:00
2024-07-02 16:43:45 -04:00
2023-12-04 15:39:15 -04:00
2024-01-16 15:29:18 +01:00
2023-08-14 17:38:27 -04:00
2024-06-03 16:59:43 +02:00
2024-06-03 16:59:43 +02:00
2024-05-16 10:16:08 -05:00
2024-05-16 10:16:08 -05:00
2024-07-02 17:49:32 -04:00
2024-03-20 16:30:04 -04:00
2022-06-23 15:33:01 +02:00
2024-04-12 14:28:34 +02:00
2024-03-04 10:02:26 +00:00
2024-05-06 11:29:14 +01:00
2022-09-13 17:15:17 +01:00
2023-11-20 15:57:50 -03:00
2023-07-19 10:26:11 +01:00
2024-06-13 11:20:48 +01:00
2024-06-18 12:24:48 +00:00
2023-01-28 15:24:13 +00:00
2023-09-13 11:37:45 +01:00
2024-04-07 14:04:45 +01:00
2023-11-28 17:49:41 +01:00
2024-05-16 10:16:08 -05:00
2024-02-28 10:05:56 -03:00
2024-07-01 14:11:52 +01:00
2024-06-20 13:28:38 -04:00
2024-05-20 16:48:19 +00:00
2024-06-14 14:23:50 +02:00
2024-05-07 10:28:58 +08:00
2024-05-16 10:16:08 -05:00
2024-05-16 10:16:08 -05:00
2024-06-21 09:43:46 +01:00
2024-06-14 14:23:50 +02:00
2023-12-06 11:22:42 -05:00
2023-12-02 22:03:08 +01:00
2023-11-20 14:02:27 +01:00
2024-03-21 16:41:16 +01:00
2024-05-03 14:20:44 -03:00
2024-05-03 14:20:44 -03:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2024-01-18 19:29:34 +01:00
2024-02-28 18:03:23 +01:00
2024-05-21 13:59:33 -04:00
2024-05-16 10:16:08 -05:00
2024-06-12 17:12:54 -04:00
2024-05-14 10:24:31 +02:00
2024-05-14 10:24:31 +02:00
2024-05-01 08:33:04 +02:00
2024-02-26 16:13:12 +00:00
2024-06-21 09:42:32 +01:00
2024-06-26 06:47:30 +03:00
2023-01-12 13:42:44 +00:00
2024-02-15 14:43:14 +01:00
2024-02-16 17:12:52 +01:00
2024-05-15 15:09:56 -04:00
2024-06-07 13:55:23 -04:00
2023-12-22 09:58:19 +01:00
2024-04-01 14:37:24 -04:00
2024-04-01 14:37:24 -04:00
2024-05-16 18:16:46 +02:00
2023-10-26 15:02:13 -04:00
2023-01-31 11:50:10 +00:00
2024-05-16 10:16:08 -05:00
2023-08-17 23:58:47 -05:00
2023-09-05 11:37:35 +01:00
2023-08-01 15:27:33 +02:00
2024-05-17 23:37:25 +02:00
2024-05-17 23:37:25 +02:00
2024-05-29 09:02:07 -07:00
2024-06-19 10:14:31 +01:00
2023-12-07 11:06:01 +01:00
2022-12-10 14:34:44 -06:00
2023-06-28 15:12:12 -04:00
2023-11-16 11:36:22 +10:00
2024-07-02 17:49:32 -04:00
2024-06-19 22:32:33 +02:00
2024-02-16 17:12:52 +01:00
2024-02-16 17:12:52 +01:00
2023-01-03 19:31:29 -06:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00