Commit graph

1300 commits

Author SHA1 Message Date
Byron Hambly
b843409fbf
Merge 0655e9dd92 into merged_master (Bitcoin PR bitcoin/bitcoin#27071) 2025-08-07 13:42:28 +02:00
Byron Hambly
69492d27da
Merge 08ea835220 into merged_master (Bitcoin PR bitcoin/bitcoin#28583) 2025-08-07 10:05:15 +02:00
Byron Hambly
e9d955b25a
Merge 38f4b0d9d1 into merged_master (Bitcoin PR bitcoin/bitcoin#28562) 2025-08-06 15:55:32 +02:00
Byron Hambly
189ca0ae5a
Merge 52c6904c78 into merged_master (Bitcoin PR bitcoin/bitcoin#28558) 2025-08-06 15:28:22 +02:00
Byron Hambly
70ba481063
Merge 6f882e6f86 into merged_master (Bitcoin PR bitcoin/bitcoin#28331) 2025-08-06 15:02:59 +02:00
Byron Hambly
7fc909ab98
Merge e7b0004b37 into merged_master (Bitcoin PR bitcoin/bitcoin#27596)
ELEMENTS TODO assumeutxo for liquidv1
2025-08-06 14:33:15 +02:00
Byron Hambly
411883229d
Merge 5c7cdda992 into merged_master (Bitcoin PR bitcoin/bitcoin#28473) 2025-08-01 11:36:44 +02:00
Byron Hambly
236ccf7924 Merge 8e0d9796da into merged_master (Bitcoin PR bitcoin/bitcoin#25284) 2025-07-18 15:00:47 +02:00
glozow
c577f5afb4 Merge bitcoin/bitcoin#30394: net: fix race condition in self-connect detection
ELEMENTS: cherry-picked before ElementsProject/elements#1472 for ease of
merge

16bd283b3a Reapply "test: p2p: check that connecting to ourself leads to disconnect" (Sebastian Falbesoner)
0dbcd4c148 net: prevent sending messages in `NetEventsInterface::InitializeNode` (Sebastian Falbesoner)
66673f1c13 net: fix race condition in self-connect detection (Sebastian Falbesoner)

Pull request description:

  This PR fixes a recently discovered race condition in the self-connect detection (see #30362 and #30368).

  Initiating an outbound network connection currently involves the following steps after the socket connection is established (see [`CConnman::OpenNetworkConnection`](bd5d1688b4/src/net.cpp (L2923-L2930)) method):
  1. set up node state
  2. queue VERSION message (both steps 1 and 2 happen in [`InitializeNode`](bd5d1688b4/src/net_processing.cpp (L1662-L1683)))
  3. add new node to vector `m_nodes`

  If we connect to ourself, it can happen that the sent VERSION message (step 2) is received and processed locally *before* the node object is added to the connection manager's `m_nodes` vector (step 3). In this case, the self-connect remains undiscovered, as the detection doesn't find the outbound peer in `m_nodes` yet (see `CConnman::CheckIncomingNonce`).

  Fix this by swapping the order of 2. and 3., by taking the `PushNodeVersion` call out of `InitializeNode` and doing that in the `SendMessages` method instead, which is only called for `CNode` instances in `m_nodes`.

  The temporarily reverted test introduced in #30362 is readded. Fixes #30368.

  Thanks go to vasild, mzumsande and dergoegge for suggestions on how to fix this (see https://github.com/bitcoin/bitcoin/issues/30368#issuecomment-2200625017 ff. and https://github.com/bitcoin/bitcoin/pull/30394#discussion_r1668290789).

ACKs for top commit:
  naiyoma:
    tested ACK [https://github.com/bitcoin/bitcoin/pull/30394/commits/16bd283b3ad05daa41259a062aee0fc05b463fa6](https://github.com/bitcoin/bitcoin/pull/30394/commits/16bd283b3ad05daa41259a062aee0fc05b463fa6),  built and tested locally,  test passes successfully.
  mzumsande:
    ACK 16bd283b3a
  tdb3:
    ACK 16bd283b3a
  glozow:
    ACK 16bd283b3a
  dergoegge:
    ACK 16bd283b3a

Tree-SHA512: 5b8aced6cda8deb38d4cd3fe4980b8af505d37ffa0925afaa734c5d81efe9d490dc48a42e1d0d45dd2961c0e1172a3d5b6582ae9a2d642f2592a17fbdc184445
(cherry picked from commit 35dddbccf1)
2025-07-18 11:20:21 +02:00
Byron Hambly
2376883a9e Merge 5666966dff into merged_master (Bitcoin PR bitcoin/bitcoin#28364) 2025-07-05 18:25:36 +02:00
Byron Hambly
f95cdcb6d6 Merge 723f1c669f into merged_master (Bitcoin PR bitcoin/bitcoin#28218) 2025-07-04 21:40:54 +02:00
Byron Hambly
27a302a296 Merge a62f5ee86c into merged_master (Bitcoin PR bitcoin/bitcoin#27675) 2025-07-04 09:56:00 +02:00
Byron Hambly
5ee80641fe Merge b565485c24 into merged_master (Bitcoin PR bitcoin/bitcoin#28186) 2025-07-03 20:58:01 +02:00
Byron Hambly
81083d47bf Merge 624333455a into merged_master (Bitcoin PR bitcoin/bitcoin#26296) 2025-07-03 20:38:42 +02:00
Byron Hambly
8bc9cd62fb Merge be44332803 into merged_master (Bitcoin PR bitcoin/bitcoin#28191) 2025-07-03 15:53:03 +02:00
Byron Hambly
39e785144d Merge b7138252ac into merged_master (Bitcoin PR bitcoin/bitcoin#27213) 2025-07-03 15:36:25 +02:00
Byron Hambly
aacc36f977 Merge c97270d722 into merged_master (Bitcoin PR bitcoin/bitcoin#27499) 2025-07-03 09:45:27 +02:00
Byron Hambly
28b1c140f1 Merge 296735f763 into merged_master (Bitcoin PR bitcoin/bitcoin#27947) 2025-06-28 09:21:06 +02:00
Byron Hambly
55dfcae0bb Merge 50a664aceb into merged_master (Bitcoin PR bitcoin/bitcoin#26969) 2025-06-28 09:20:55 +02:00
Byron Hambly
6e867b1804 Merge fbe48f97df into merged_master (Bitcoin PR bitcoin/bitcoin#27625) 2025-06-27 13:36:08 +02:00
Byron Hambly
625c697a2e Merge 83c7269965 into merged_master (Bitcoin PR bitcoin/bitcoin#27800) 2025-06-27 11:25:20 +02:00
Byron Hambly
af19ee63d4 Merge 8b59231641 into merged_master (Bitcoin PR bitcoin/bitcoin#27761) 2025-06-24 14:49:10 +02:00
Byron Hambly
07576cee5b Merge e43432086a into merged_master (Bitcoin PR bitcoin/bitcoin#27743) 2025-06-23 14:45:12 +02:00
Byron Hambly
d064ad5cf3 Merge 51c050787f into merged_master (Bitcoin PR bitcoin/bitcoin#27626) 2025-06-23 11:56:40 +02:00
Byron Hambly
974c4bd0b9 Merge 137a98c5a2 into merged_master (Bitcoin PR bitcoin/bitcoin#27610) 2025-06-20 10:57:34 +02:00
Byron Hambly
b1d470027d Merge c2f2abd0a4 into merged_master (Bitcoin PR bitcoin/bitcoin#27125) 2025-06-20 10:46:05 +02:00
Byron Hambly
824dd11fb9 Merge dbfc748d3d into merged_master (Bitcoin PR bitcoin/bitcoin#27608) 2025-06-20 08:57:14 +02:00
Byron Hambly
5a1eabf055 Merge 8f5da89625 into merged_master (Bitcoin PR bitcoin/bitcoin#27559) 2025-05-15 13:12:53 +02:00
Byron Hambly
5ac82e15a9 Merge 669af32632 into merged_master (Bitcoin PR bitcoin/bitcoin#27419) 2025-05-09 11:47:45 +02:00
Byron Hambly
60599d974e Merge 4c40837a45 into merged_master (Bitcoin PR bitcoin/bitcoin#27412) 2025-05-08 16:45:53 +02:00
Byron Hambly
979170fd2c
ci: asan fixes 2025-04-29 13:49:44 +02:00
Byron Hambly
1a682aba9e Merge 53eb4b7a21 into merged_master (Bitcoin PR bitcoin/bitcoin#27270) 2025-04-12 13:31:16 +02:00
Byron Hambly
62e97f1051 Merge 8e9e2b4cb3 into merged_master (Bitcoin PR bitcoin/bitcoin#27379) 2025-04-12 11:57:04 +02:00
Byron Hambly
3c2668404a Merge d4833e9c49 into merged_master (Bitcoin PR bitcoin/bitcoin#26140) 2025-04-12 11:06:18 +02:00
Byron Hambly
d45c7cba9b Merge 5241b8bdff into merged_master (Bitcoin PR bitcoin/bitcoin#27368) 2025-04-12 10:25:04 +02:00
Byron Hambly
32f56a1e5b Merge d254f942a5 into merged_master (Bitcoin PR bitcoin/bitcoin#27324) 2025-04-11 23:01:24 +02:00
Byron Hambly
230bfb058b Merge 2305643646 into merged_master (Bitcoin PR bitcoin/bitcoin#27257) 2025-04-11 22:04:13 +02:00
Thomas Trevethan
860731d44d Merge 664500fc71 into merged_master (Bitcoin PR bitcoin/bitcoin#27278) 2025-04-11 14:58:52 +01:00
Byron Hambly
c312a23624 Merge 35fbc97208 into merged_master (Bitcoin PR bitcoin/bitcoin#25619) 2025-04-07 08:19:49 +02:00
Tom Trevethan
e8e7aea876 Merge 37fea41bbf into merged_master (Bitcoin PR bitcoin/bitcoin#26982) 2025-04-04 14:42:54 +00:00
Tom Trevethan
5b2b315520 Merge 9a288430df into merged_master (Bitcoin PR bitcoin/bitcoin#26900) 2025-04-04 14:21:48 +00:00
Tom Trevethan
1200d73ab4 Merge 835212cd1d into merged_master (Bitcoin PR bitcoin/bitcoin#25880) 2025-04-04 14:12:28 +00:00
Tom Trevethan
1435fb334b Merge 79e007d1d6 into merged_master (Bitcoin PR bitcoin/bitcoin#25296) 2025-04-04 13:36:08 +00:00
Byron Hambly
0534256d39 Merge 77a36033b5 into merged_master (Bitcoin PR bitcoin/bitcoin#26551) 2025-04-04 11:47:53 +02:00
Byron Hambly
b4405ba453 Merge e9262ea32a into merged_master (Bitcoin PR bitcoin/bitcoin#26750) 2025-03-31 16:37:52 +02:00
Tom Trevethan
98fc0af965 Merge 6061eb6564 into merged_master (Bitcoin PR bitcoin/bitcoin#26199) 2025-03-26 15:42:23 +00:00
Tom Trevethan
1b33a06134 Merge 5126e625cb into merged_master (Bitcoin PR bitcoin/bitcoin#26378) 2025-03-25 19:43:38 +00:00
Tom Trevethan
387af571cd Merge 1ff79292e3 into merged_master (Bitcoin PR bitcoin/bitcoin#26609) 2025-03-24 23:33:59 +00:00
Byron Hambly
028fd5fcbb Merge 5b3f05b7eb into merged_master (Bitcoin PR bitcoin/bitcoin#24226) 2025-03-04 13:22:16 +02:00
Byron Hambly
1c748cbfe2 Merge 8b796866b4 into merged_master (Bitcoin PR bitcoin/bitcoin#26624) 2025-03-04 13:22:12 +02:00