Hennadii Stepanov
d2ac748e9e
Merge bitcoin-core/gui#864 : Crash fix, disconnect numBlocksChanged() signal during shutdown
...
71656bdfaa gui: crash fix, disconnect numBlocksChanged() signal during shutdown (furszy)
Pull request description:
Aiming to fix bitcoin-core/gui#862 .
The crash stems from the order of the shutdown procedure:
We first unset the client model, then destroy the wallet controller—but we leave
the internal wallet models (`m_wallets`) untouched for a brief period. As a result,
there’s a point in time where views still have connected signals and access to
wallet models that are not connected to any wallet controller.
Now.. since the `clientModel` is only replaced with nullptr locally and not destroyed
yet, signals like `numBlocksChanged` can still emit. Thus, when wallet views receive
them, they see a non-null wallet model ptr, and proceed to call backend functions
from a model that is being torn down.
As the shutdown procedure begins by unsetting `clientModel` from all views. It’s safe
to ignore events when `clientModel` is nullptr.
ACKs for top commit:
maflcko:
lgtm ACK 71656bdfaa
pablomartin4btc:
re-ACK 71656bdfaa
hebasto:
ACK 71656bdfaa , I have reviewed the code and it looks OK.
Tree-SHA512: e6a369c40aad8a5a3da64e92daa10250006f60c53feef353a5580e1bdb17fe8e1ad102abf5419ddeff1caa703b69ab634265ef3b9cfef87e9304f97bfdd2c4aa
2025-04-26 13:45:31 +01:00
..
2025-04-25 13:11:24 +01:00
2025-04-22 13:16:54 +01:00
2024-03-01 13:13:07 -05:00
2025-03-13 11:13:13 +00:00
2024-02-27 18:28:19 +00:00
2025-03-12 19:46:54 +01:00
2025-01-09 15:17:02 +01:00
2025-02-13 12:30:15 -05:00
2025-04-14 14:39:57 -07:00
2025-04-02 21:41:16 +08:00
2025-03-21 16:46:54 +08:00
2025-03-17 15:59:05 +08:00
2025-02-21 10:43:01 +01:00
2025-03-05 15:36:56 +00:00
2025-04-22 13:16:54 +01:00
2025-03-26 18:58:02 +10:00
2024-07-08 11:12:01 +02:00
2025-04-26 13:45:31 +01:00
2025-04-18 16:44:33 -04:00
2025-04-14 16:32:01 -07:00
2024-11-04 14:59:46 -05:00
2024-12-10 21:51:48 +01:00
2025-04-24 15:10:04 -07:00
2025-03-17 13:10:10 +08:00
2025-04-23 13:35:43 +01:00
2025-04-25 13:11:24 +01:00
2025-04-22 13:16:54 +01:00
2023-12-15 15:20:54 +01:00
2024-09-14 20:33:32 +03:00
2024-10-28 12:36:19 +00:00
2024-07-30 14:06:58 -04:00
2025-03-23 21:58:39 +01:00
2024-09-20 12:55:22 -04:00
2024-11-11 12:47:53 -03:00
2024-11-11 12:47:53 -03:00
2025-01-09 10:11:46 -05:00
2025-04-07 10:45:13 -04:00
2025-01-14 19:21:37 +01:00
2025-02-12 15:10:28 -05:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2024-10-19 18:49:53 +02:00
2024-10-19 18:49:53 +02:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-03-13 11:13:13 +00:00
2024-10-28 12:36:19 +00:00
2025-04-22 13:16:54 +01:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-04-23 12:10:30 -07:00
2024-10-28 12:36:19 +00:00
2025-01-16 21:06:21 +00:00
2024-08-29 13:49:57 +02:00
2024-07-08 11:12:01 +02:00
2024-05-16 10:16:08 -05:00
2025-03-13 11:13:13 +00:00
2025-02-13 12:30:15 -05:00
2024-11-14 13:41:02 -05:00
2024-11-14 13:41:02 -05:00
2025-03-06 15:39:58 -06:00
2024-12-03 18:02:37 -05:00
2025-01-14 19:21:37 +01:00
2024-10-28 12:35:49 +00:00
2025-03-27 15:48:44 -04:00
2025-04-02 08:41:16 -05:00
2024-12-04 14:09:05 -05:00
2024-12-02 13:52:34 +01:00
2025-03-12 19:46:54 +01:00
2024-11-26 20:47:08 -05:00
2025-04-22 13:16:54 +01:00
2024-06-07 13:55:23 -04:00
2024-07-04 22:35:29 +02:00
2025-04-07 15:59:41 +02:00
2025-04-07 15:59:41 +02:00
2025-02-21 10:41:27 +01:00
2024-05-16 15:03:13 -04:00
2024-08-13 07:44:31 +02:00
2024-08-29 13:49:57 +02:00
2024-07-24 09:39:35 +02:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-03-04 14:23:18 -05:00
2024-07-08 11:12:01 +02:00
2025-04-22 13:16:54 +01:00
2025-02-13 12:30:15 -05:00
2024-11-04 17:08:21 +01:00
2025-04-22 13:16:54 +01:00
2024-06-12 16:19:50 -03:00
2025-04-01 20:18:59 +02:00
2025-01-16 21:06:21 +00:00
2024-10-27 15:38:54 +01:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2024-10-01 11:31:39 +02:00
2024-10-01 11:31:39 +02:00
2024-11-04 14:19:40 -05:00
2024-10-29 11:58:51 -04:00
2024-11-04 18:46:40 +01:00
2024-04-07 14:04:45 +01:00
2024-07-08 11:12:01 +02:00
2024-05-16 10:16:08 -05:00
2025-02-21 10:41:27 +01:00
2025-04-14 14:22:56 -07:00
2024-11-13 14:09:58 +01:00
2024-05-20 16:48:19 +00:00
2024-07-08 11:12:01 +02:00
2025-03-24 16:54:40 -04:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-04-10 12:42:34 -04:00
2025-04-01 20:18:59 +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
2025-04-22 17:11:24 +10:00
2025-01-22 11:29:05 +01:00
2024-09-11 17:41:26 +02:00
2024-10-26 23:44:15 +02:00
2024-10-26 23:44:15 +02:00
2025-03-12 19:46:54 +01:00
2025-04-17 16:31:57 -07:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-04-11 08:11:41 +02:00
2025-03-20 13:41:54 +08:00
2025-02-21 10:43:41 +01:00
2025-01-22 15:01:23 -05:00
2024-02-15 14:43:14 +01:00
2024-02-16 17:12:52 +01:00
2025-03-20 13:41:54 +08:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-04-14 12:04:06 +02:00
2025-04-14 12:04:06 +02:00
2025-02-21 10:43:01 +01:00
2024-07-08 11:12:01 +02:00
2024-07-08 11:12:01 +02:00
2025-01-15 12:16:08 +01:00
2025-04-16 19:59:52 +08:00
2024-11-14 13:41:02 -05:00
2025-04-07 15:59:41 +02:00
2025-01-15 15:44:55 +01:00
2025-04-11 10:43:56 -04:00
2025-03-31 13:07:37 -04:00
2024-12-31 00:04:20 -03:00
2024-12-31 00:04:20 -03:00
2025-02-07 13:55:57 -05:00
2025-02-07 13:55:57 -05:00
2025-01-29 18:05:16 -05:00
2025-02-12 15:10:28 -05:00
2025-04-09 15:59:59 +01:00
2025-04-09 15:59:59 +01:00
2023-11-16 11:36:22 +10:00
2025-04-23 14:09:56 -07:00
2025-04-09 20:05:36 +02:00
2024-10-08 15:25:47 +00:00
2024-07-25 11:01:22 +01:00
2024-07-08 11:12:01 +02:00