Swarm/rpc v2#2066
Closed
zelig wants to merge 40 commits intoethereum:masterfrom
Closed
Conversation
Whisper's expire and broadcast loops happen in two separate go routines. Whenever an envelope is being expired it's removed from the set of envelopes and it looses all information about the envelope, including the "known hash". After the envelope has been removed it can be re-accepted by a broadcasting peer putting back the envelope in the set of envelopes. Since the envelope broadcast loop is separate of the expire loop expired messages may be broadcast to other peer, resulting in messages **never** being dropped. This PR includes an expire check before adding new messages to the set of envelopes.
whisper: fixed broadcast race
cmd, crypto: updated web3
jrse: fix #1082, fail if setTimeout/setInterval lack callback
Makefile: add support for iOS cross compilation
Customizable protocol stacks
common: fix #2008, wrong hex prefix check
Makefile: enable iOS experimental builds (fix prev omission)
console: fix instance name printed incorrect on start
Created alternate versions of Trie and SecureTrie functions that can return a MissingNodeError (used by ODR services)
eth package creates new event mux
Also remove some duplication around address/index parsing.
cmd/utils: restore starting geth without any accounts and etherbase
Trie error handling
Makefile: build ARM v5/v6/v7, drop high API mobile clients
accounts: increase re-lock timeout to account for slow CI servers
|
❗ Pull request against
Updated: Mon Dec 14 06:18:10 UTC 2015 |
thanks to Felix Lange (fjl) for help with design & impl
Contributor
Author
|
against master by mistake |
sduchesneau
pushed a commit
to streamingfast/go-ethereum
that referenced
this pull request
Dec 19, 2023
draft release v1.3.6
sduchesneau
pushed a commit
to streamingfast/go-ethereum
that referenced
this pull request
Mar 23, 2026
* Enable rebroadcast by default (ethereum#2028) * chore: bump version * consensus/misc/eip4844: small update to fix simulatev1 crash (ethereum#2054) * core, internal, params: lisovoPro HF and version bump (ethereum#2055) * core, internal, params: lisovoPro HF and version bump * core: add lisovoPro instructionset * core: lisovo-lisovoPro instructionset test * consensus/bor: fix goroutine leak in runMilestoneFetcher when Heimdall is unreachable (ethereum#2056) FetchMilestone was called with context.Background(), which has no deadline. When Heimdall becomes unreachable, FetchWithRetry enters an infinite retry loop that never returns. Since the ticker fires every second, a new blocked goroutine accumulates each tick — leading to OOM within minutes. Add a 30s context timeout to bound each call, matching the existing pattern in retryHeimdallHandler (eth/backend.go). This caps in-flight goroutines at ~30 instead of growing unboundedly. * consensus, crypto, p2p: fix issues 44, 47, 48, 49 * bump go * ci: update workflows * consensus/bor: better naming on heimdallgrpc client context for ss txs * consensus/bor: lower global timeout for ss txs * fix(shutdown): cancel in-flight Heimdall queries on engine shutdown (ethereum#2058) * fix(shutdown): cancel in-flight Heimdall queries on engine shutdown * chore: nit * consensus/bor: fix sub-second late block detection producing empty blocks (ethereum#2060) The late-block adjustment in Prepare() uses an integer-second comparison (header.Time < now.Unix()) to detect when a block is behind schedule and needs additional build time. Because header.Time is an integer (seconds) while the actual target time can have sub-second precision, a block can be up to 999ms late without triggering the adjustment. Example: with period=1s and parent.Time=T: header.Time = T + 1 (integer seconds) now = T + 1.820 (parent block is 820ms late) now.Unix() = T + 1 (truncated to seconds) header.Time < now.Unix() → false (adjustment skipped!) This affects both the default path (blockTime=0, where GetActualTime() falls back to time.Unix(header.Time, 0)) and the custom blockTime path (where ActualTime has sub-second precision from the parent cache chain). With no adjustment, GetActualTime() returns a time already in the past. The interrupt timer in commitWork() expires immediately, which sets the interruptBlockBuilding flag before fillTransactions() runs. The txpool's Pending() checks this flag on every address iteration and returns an empty map, producing a block with 0 transactions even when the pool has pending transactions. Fix by replacing the integer comparison with a direct time comparison against the block's actual target time: if now.After(header.GetActualTime()) { GetActualTime() returns header.ActualTime when set (custom blockTime with Rio, sub-second precision), or time.Unix(header.Time, 0) as fallback (default path). This correctly detects lateness in both cases without over-triggering for on-time blocks, since on-time blocks have their target time in the future. * fix(core): cap verifyPendingHeaders to prevent OOM from unbounded header reads (ethereum#2057) * exp: disable verifyPendingHeaders * fix: cap verify pending headers at default span length + 1 * fix: add reorg metrics in verify pending headers * chore: add tests * refactor: use milestone fetcher and milestone's end block as the start block * fix: tests * cmd: bump go * builder, internal, params: pip-82 and lisovo HF in mainnet (ethereum#2064) * builder, internal, params: implement new burnContract in lisovo / define lisovo height for mainnet / bump version * fix lint * fix: tests --------- Signed-off-by: jsvisa <delweng@gmail.com> Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com> Signed-off-by: findfluctuate <findfluctuate@outlook.com> Signed-off-by: liuyueyangxmu <liuyueyangxmu@outlook.com> Co-authored-by: Jerry <jerrycgh@gmail.com> Co-authored-by: marcello33 <marcelloardizzone@hotmail.it> Co-authored-by: Pratik Patil <pratikspatil024@gmail.com> Co-authored-by: Lewis <lewis.kim@kaia.io> Co-authored-by: Delweng <delweng@gmail.com> Co-authored-by: Gary Rong <garyrong0905@gmail.com> Co-authored-by: cui <cuiweixie@gmail.com> Co-authored-by: Felix Lange <fjl@twurst.com> Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> Co-authored-by: Csaba Kiraly <csaba.kiraly@gmail.com> Co-authored-by: Felföldi Zsolt <zsfelfoldi@gmail.com> Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com> Co-authored-by: Csaba Kiraly <cskiraly@users.noreply.github.com> Co-authored-by: mishraa-G <divyansh.mishra.mec23@itbhu.ac.in> Co-authored-by: Galoretka <galoretochka@gmail.com> Co-authored-by: hero5512 <lvshuaino@gmail.com> Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com> Co-authored-by: aodhgan <36907214+aodhgan@users.noreply.github.com> Co-authored-by: aodhgan <gawnieg@gmail.com> Co-authored-by: Youssef Azzaoui <y@azzaoui.fr> Co-authored-by: ucwong <ucwong@126.com> Co-authored-by: CertiK <138698582+CertiK-Geth@users.noreply.github.com> Co-authored-by: Bosul Mun <bsbs8645@snu.ac.kr> Co-authored-by: maskpp <maskpp266@gmail.com> Co-authored-by: jwasinger <j-wasinger@hotmail.com> Co-authored-by: Kyrin <kyrincode@gmail.com> Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com> Co-authored-by: lightclient <lightclient@protonmail.com> Co-authored-by: Rizky Ikwan <rizzikwann@gmail.com> Co-authored-by: anim001k <140460766+anim001k@users.noreply.github.com> Co-authored-by: Austin Larson <78000745+alarso16@users.noreply.github.com> Co-authored-by: Coder <161350311+MamunC0der@users.noreply.github.com> Co-authored-by: wit liu <wit765765346@gmail.com> Co-authored-by: maradini77 <140460067+maradini77@users.noreply.github.com> Co-authored-by: findfluctuate <findfluctuate@outlook.com> Co-authored-by: liuyueyangxmu <liuyueyangxmu@outlook.com> Co-authored-by: Lucca Martins <lucca_martins30@yahoo.com.br> Co-authored-by: Angel Valkov <avalkov@polygon.technology> Co-authored-by: Raneet Debnath <35629432+Raneet10@users.noreply.github.com> Co-authored-by: Manav Darji <manavdarji.india@gmail.com> Co-authored-by: Raneet Debnath <raneetdebnath10@gmail.com> Co-authored-by: ChanHongMing <91173675+ChanHongMing@users.noreply.github.com> Co-authored-by: Adam Dossa <adossa@polygon.technology> Co-authored-by: Adam Dossa <adam.dossa@gmail.com> Co-authored-by: Léo Vincent <28714795+leovct@users.noreply.github.com> Co-authored-by: Sanket Saagar Karan <ssaagar@polygon.technology>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
integrate #2035
fixes #2041