go-ethereum/p2p/discover
Felix Lange 706cf1c779
p2p/discover: fix crash when revalidated node is removed (#29864)
In #29572, I assumed the revalidation list that the node is contained in could only ever
be changed by the outcome of a revalidation request. But turns out that's not true: if the
node gets removed due to FINDNODE failure, it will also be removed from the list it is in.
This causes a crash.

The invariant is: while node is in table, it is always in exactly one of the two lists. So
it seems best to store a pointer to the current list within the node itself.
2024-06-11 14:07:20 +05:30
..
v4wire Merge tag 'v1.13.5' of https://github.com/ethereum/go-ethereum into shivam/upstream-geth-1.13.5 2023-12-15 13:55:57 +05:30
v5wire merge geth v1.12.2 into develop 2023-08-18 14:05:34 +05:30
common.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
lookup.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
metrics.go p2p, p2p/discover: add dial metrics (#27621) 2023-07-06 16:20:31 +02:00
node.go p2p/discover: fix crash when revalidated node is removed (#29864) 2024-06-11 14:07:20 +05:30
ntp.go merge geth v1.12.2 into develop 2023-08-18 14:05:34 +05:30
table.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
table_reval.go p2p/discover: fix crash when revalidated node is removed (#29864) 2024-06-11 14:07:20 +05:30
table_reval_test.go p2p/discover: fix crash when revalidated node is removed (#29864) 2024-06-11 14:07:20 +05:30
table_test.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
table_util_test.go p2p/discover: fix crash when revalidated node is removed (#29864) 2024-06-11 14:07:20 +05:30
v4_lookup_test.go Merge tag 'v1.13.6' into upstream_merge 2024-03-28 16:28:51 -07:00
v4_udp.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
v4_udp_test.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
v5_talk.go p2p/discover: concurrent TALKREQ handling (#27112) 2023-04-28 11:03:43 +02:00
v5_udp.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30
v5_udp_test.go p2p/discover: improved node revalidation (#29572) 2024-06-11 13:53:35 +05:30