-
Notifications
You must be signed in to change notification settings - Fork 20.9k
eth/fetcher fails nilness static analysis check #23738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Comments
After some hacking around with the nilness analyzer, I've identified that this is the line that causes issue (L280). go-ethereum/eth/fetcher/tx_fetcher.go Lines 278 to 280 in 08e782c
|
I suppose it's line go-ethereum/eth/fetcher/tx_fetcher.go Line 292 in 08e782c
|
holiman
added a commit
to holiman/go-ethereum
that referenced
this issue
Oct 18, 2021
holiman
pushed a commit
that referenced
this issue
Oct 18, 2021
sidhujag
pushed a commit
to syscoin/go-ethereum
that referenced
this issue
Oct 20, 2021
* eth/fetcher: fix nilness check ethereum#23738 * eth/fetcher: Use errors.Is. PR feedback from @holiman.
DNK90
pushed a commit
to axieinfinity/ronin
that referenced
this issue
Dec 12, 2021
* eth/fetcher: fix nilness check ethereum/go-ethereum#23738 * eth/fetcher: Use errors.Is. PR feedback from @holiman.
DNK90
pushed a commit
to axieinfinity/ronin
that referenced
this issue
Dec 13, 2021
* eth/fetcher: fix nilness check ethereum/go-ethereum#23738 * eth/fetcher: Use errors.Is. PR feedback from @holiman.
DNK90
added a commit
to axieinfinity/ronin
that referenced
this issue
Jan 19, 2022
* consensus/clique: implement getSigner API method (#22987) * clique: implement getSignerForBlock * consensus/clique: use blockNrOrHash in getSignerForBlock * consensus/clique: implement getSigner * consensus/clique: fixed rlp decoding * consensus/clique: use Author instead of getSigner * consensus/clique: nit nit nit * consensus/clique: nit nit nit * internal/web3ext: remove unused console APIs (#23208) * node: fix stopping websocket rpc.Server (#23211) * eth/tracers: fix typo in test name (#23218) * les: fix eth_sendTransaction API (#23215) * core: fix pre-check for account balance under EIP-1559 (#23244) When processing a transaction with London fork rules, EIP-1559 mandates checking that the sender must have sufficient balance to cover gas * gasFeeCap. In the EIP's pseudocode, this check happens after the value transferred by the transaction has already been deducted. However, in go-ethereum, the balance has not yet been updated when the check happens, and therefore needs to be added explicitly. Co-authored-by: Martin Holst Swende <[email protected]> * core/types: revert removal of legacy receipt support (#23247) * Revert "core/types: go generate (#23177)" This reverts commit 00b922fc5dcfb1f0a5dbd5614725424a2221da83. * Revert "core/types: remove LogForStorage type (#23173)" This reverts commit 7522642393a24dca53061e3f7c9d9a5c3eac4bc2. * Revert "core/types: remove support for legacy receipt/log storage encoding (#22852)" This reverts commit 643fd0efc6ebc8397311d1ca68fc71d8da247643. * Use `hexutil.Uint` for `blockCount` parameter in `feeHistory` method (#23239) * internal/ethapi/api: use hexutil.uint for blockCount parameter instead of int for feeHistory * return hex value for oldestBlock instead of number * return uint64 from oracle.resolveBlockRange * eth/gasprice: fixed test Co-authored-by: Zsolt Felfoldi <[email protected]> * cmd/geth: update vulnerability testdata (#23252) * accounts/abi/bind: parse ABI only once, create metadata struct (#22583) * accounts/abi/bind: set Context in TransactOpts (#23188) * internal/ethapi: fix panic in accesslist creation (#23225) * internal/ethapi: revert + fix properly in al tracer * internal/ethapi: use toMessage instead of creating new message * internal/ethapi: remove ineffassign * core: fix invalid unmarshalling, fix test Co-authored-by: Martin Holst Swende <[email protected]> * consensus/ethash: less allocation during mining (#23199) * README: fix default sync mode (#23282) * all: change blacklist terms * accounts/external, internal/ethapi: fixes for London tx signing (#23274) Ticket #23273 found a flaw where we were unable to sign legacy-transactions using the external signer, even if we're still on non-london network. That's fixed in this PR. Additionally, I found that even when supplying all parameters, it was impossible to sign a london-transaction on an unsynched node. It's a pretty common usecase that someone wants to sign a transaction using an unsynced 'vanilla' node, providing all necessary data. Our setDefaults, however, insisted on checking the current block against the config. This PR therefore adds a case, so that if both MaxPriorityFeePerGas and MaxFeePerGas are provided, we accept them as given. OBS This PR fixes a regression -- on current master, we are unable to sign a london-transaction unless the node is synched, which may break scenarios where geth (or clef) is used as a cold wallet. Fixes #23273 * tests: update tests/testdata to v9.0.4 (london) (#23279) * go.mod: upgrade to goupnp v1.0.2 (#23197) * go.mod: bump golang.org/x/text to v0.3.6 (#23291) * p2p/simulations: fix unlikely crash in probabilistic connect (#23200) When the nodeCount is less than 10, it will panic with the out of bound error. How about we just skip this round, when rand1 and rand2 are equal? * signer/core: move API JSON types to separate package (#23275) This PR moves (some) account types into a standalone package, to avoid depending on signer/core from accounts/external. * all: remove term "whitelist" in comments and log messages (#23294) * p2p: remove term "whitelist" (#23295) Co-authored-by: Felix Lange <[email protected]> * tests: remove whitelist feature (#23297) * node, cmd/clef: remove term "whitelist" (#23296) * node: remove term "whitelist" * include cmd/clef * cre/state: fix outdated statedb Prepare comment (#23320) * cmd/devp2p: fix ping/pong race in discv4 tests (#23306) This PR modifies the post-PING-send expectations to both be laxer and stricter: it doesn't care what order the packets arrive, but also verifies that exactly one PING and one PONG is returned. * core: get header from block cache (#23299) * internal/ethapi: fix trace log marshalling (#23292) * core/state: add trie prefetcher tests (#23216) * core/state: add trie prefetcher tests * core/state: add missing license * core/rawdb: fix logs to print block number, not address (#23328) * core: check if sender is EOA (#23303) This adds a check to verify that a sender-account does not have code, which means that the codehash is either `emptyCodeHash` _OR_ not present. The latter occurs IFF the sender did not previously exist, a situation which can only occur with zero cost gasprices. * cmd/evm: implement input txs via rlp in t8n tool (#23138) In many cases, it's desireable to use already-signed transactions as input to the state transition, instead of having the evm sign them internally (for example to use malformed or not-yet-valid transactions). This PR adds support + docs for that feature. * core/rawdb: close database in test to avoid goroutine leak (#23287) * add db close to avoid goroutine leak * core/rawdb: move close to defer Co-authored-by: Martin Holst Swende <[email protected]> * core: fix london-check to avoid duplication (#23333) Co-authored-by: lxex <[email protected]> * internal/ethapi: accept both hex and decimal for blockCount (#23363) * core/state/pruner: fix state bloom sync permission in Windows * cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) * mobile: remove deprecated code (#23357) * core/state/snapshot: fix typo in comment (#23219) * core/state/snapshot: clarify comment about snapshot repair (#23305) Co-authored-by: Tyler Chambers <[email protected]> Co-authored-by: Felix Lange <[email protected]> * internal/ethapi: return maxFeePerGas for gasPrice for EIP-1559 txs (#23345) * internal/ethapi, accounts/abi/bind: cap highest gas limit by account balance for 1559 fee parameters (#23309) * internal/ethapi/api: cap highest gas limit by account balance for 1559 fee parameters * accounts/abi/bind: port gas limit cap for 1559 parameters to simulated backend * accounts/abi/bind: add test for 1559 gas estimates for the simulated backend * internal/ethapi/api: fix comment * accounts/abi/bind/backends, internal/ethapi: unify naming style Co-authored-by: Péter Szilágyi <[email protected]> * core/state/snapshot: gofmt * travis: transition from docker auto builds to manual pushes * build: fix docker tag to include `v` prefix in version string * internal/ethapi: add back missing check for maxfee < maxPriorityFee * params: update CHTs for the 1.10.7 release * core/rawdb: implement sequential reads in freezer_table (#23117) * core/rawdb: implement sequential reads in freezer_table * core/rawdb, ethdb: add sequential reader to db interface * core/rawdb: lint nitpicks * core/rawdb: fix some nitpicks * core/rawdb: fix flaw with deferred reads not being performed * core/rawdb: better documentation * eth: drop eth/65, the last non-reqid protocol version * accounts/external: handle 0 chainid as not-set for the Clef API (#23394) * accounts/external: handle 0 chainid as not-set for the Clef API * accounts/external: document SignTx Co-authored-by: Felix Lange <[email protected]> * tests: update, enable legacy tests, remove vm tests (#23350) * tests: update, enable legacy tests, remove vm tests * tests: minor fixes * cmd, metrics: add support for influxdb-v2 (cherry-picking from italoacasas' changes), leave existing support for v1 to maintain backwards-compatibility. (#23194) This PR adds flag to enable InfluxDB v2 (--metrics.influxdbv2), flags for v2-specific features (--metrics.influxdb.token, --metrics.influxdb.bucket), also carries over addition of support for specifying organization (--metrics.influxdb.organization), but still retains backwards compatibility with InfluxDB v1. * cmd, core: remove calaveras testnet (#23366) Removes references to the short-lived Calaveras testnet * cmd/utils: add --nousb to the list of deprecated flags (#23388) Adds --nousb as a deprecated flag when someone runs the geth show-deprecated-flags command. * eth, internal/ethapi: make RPC block miner field show block sealer correctly (#23312) Makes the RPC block return the POA sealer for clique blocks on the 'miner' field (was previously zeroes) * eth/downloader: fix typo in comment (#23413) * Revert "eth: drop eth/65, the last non-reqid protocol version" (#23426) * core: only check sendernoeoa in non fake mode (#23424) * signer/core/apitypes: remove dependency on internal/ethapi (#23362) * go.mod: upgrade golang.org/x/sys for go1.17 support (#23406) * eth/gasprice: feeHistory improvements (#23422) * eth/gasprice: cache feeHistory results * eth/gasprice: changed feeHistory block count limitation * eth/gasprice: do not use embedded struct in blockFees * eth/gasprice: fee processing logic cleanup * eth/gasprice: purge feeHistory cache at chain reorgs * core/vm: faster code analysis (#23381) * core/vm: more detailed benchmark for jumpdest analysis * core/vm: make jd analysis benchmark alloc free * core/vm: improve jumpdest analysis * core/vm: improve worst-case * core/vm: further improvements in analysis * core/vm: improve jumpdest analysis >PUSH15 * core/vm: make jd analysis ref by value * core/vm: fix misspell * core/vm: improve set8 and set16 a bit * core/vm: reduce amount of code * core/vm: optimize byte copying * trie, les: add missing calls to Ticker.Stop (#23415) * p2p, p2p/enode: fix data races (#23434) In p2p/dial.go, conn.flags was accessed without using sync/atomic. This race is fixed by removing the access. In p2p/enode/iter_test.go, a similar race is resolved by writing the field atomically. Co-authored-by: Felix Lange <[email protected]> * core/bloombits: avoid crash when storing errors of different type (#23437) This fixes a rare crash which could occur when two different errors happened in the same bloombits.MatcherSession. * tests/testdata: make submodule shallow (#23412) Before: 316M .git/modules/tests/ After: 171M .git/modules/tests/ * core/vm: fix typo in comment (#23450) * core/types: add benchmarks for rlp encoding/decoding (#23190) Co-authored-by: Felix Lange <[email protected]> Co-authored-by: Sina Mahmoodi <[email protected]> * node: add comment about --nousb being deprecated (#23439) Co-authored-by: Felix Lange <[email protected]> * tests/fuzzers: fix go vet warning about ReadByte (#23380) * core: make txpool reject too sudden changes (#23095) * core: make txpool reject too sudden changes * core: add some metrics to txpool * Revert "Revert "eth: drop eth/65, the last non-reqid protocol version" (#23426)" (#23456) This reverts commit c368f728c19e7fd7a9613513edda68ffcb503af0. * cmd/utils: fix typo in variable name (#23451) * metrics: fix compilation for GOOS=js (#23449) * core, light, tests, trie: add state metrics (#23433) * go.mod: update goleveldb (#23417) * les: fix data races in tests (#23457) * build: upgrade to golangci-lint v1.42.0 (#23461) The new linter version is built with go 1.17 and thus includes the go vet check for mismatched +build and go:build lines. Fortunately, no new warnings are reported with this update. * build, .travis.yml: upgrade to Go 1.17 (#23464) * cmd/evm: add difficulty calculation to t8n tool (#23353) This PR adds functionality to the evm t8n to calculate ethash difficulty. If the caller does not provide a currentDifficulty, but instead provides the parentTimestamp (well, semi-optional, will default to 0 if not given), and parentDifficulty, we can calculate it for him. The caller can also provide a parentUncleHash. In most, but not all cases, the parent uncle hash also affects the formula. If no such hash is provided (or, if the empty all-zero hash is provided), it's assumed that there were no uncles. * tests: avoid performance tests during CI runs (#23304) * Dockerfile: upgrade to Go 1.17 (#23465) * crypto/cloudflare/bn256: fix in-place addition and unmarshalling (#23419) * all: add go:build lines (#23468) Generated by go1.17 fmt ./... * rlp: minor optimizations for slice/array encoding (#23467) As per benchmark results below, these changes speed up encoding/decoding of consensus objects a bit. name old time/op new time/op delta EncodeRLP/legacy-header-8 384ns ± 1% 331ns ± 3% -13.83% (p=0.000 n=7+8) EncodeRLP/london-header-8 411ns ± 1% 359ns ± 2% -12.53% (p=0.000 n=8+8) EncodeRLP/receipt-for-storage-8 251ns ± 0% 239ns ± 0% -4.97% (p=0.000 n=8+8) EncodeRLP/receipt-full-8 319ns ± 0% 300ns ± 0% -5.89% (p=0.000 n=8+7) EncodeRLP/legacy-transaction-8 389ns ± 1% 387ns ± 1% ~ (p=0.099 n=8+8) EncodeRLP/access-transaction-8 607ns ± 0% 581ns ± 0% -4.26% (p=0.000 n=8+8) EncodeRLP/1559-transaction-8 627ns ± 0% 606ns ± 1% -3.44% (p=0.000 n=8+8) DecodeRLP/legacy-header-8 831ns ± 1% 813ns ± 1% -2.20% (p=0.000 n=8+8) DecodeRLP/london-header-8 824ns ± 0% 804ns ± 1% -2.44% (p=0.000 n=8+7) * rlp: pass length to byteArrayBytes This makes it possible to inline byteArrayBytes. For arrays, the length is known at encoder construction time, so the call to v.Len() can be avoided. * rlp: avoid IsNil for pointer encoding It's actually cheaper to use Elem first, because it performs less checks on the value. If the pointer was nil, the result of Elem is 'invalid'. * rlp: minor optimizations for slice/array encoding For empty slices/arrays, we can avoid storing a list header entry in the encoder buffer. Also avoid doing the tail check at encoding time because it is already known at encoder construction time. * cmd/devp2p/internal/ethtest: remove WriteTo method (#23379) WriteTo is unused, and go vet warns about it because it doesn't match the usual signature of the io.WriterTo method. * rpc: add BlockNumber.MarshalText (#23324) Currently rpc.BlockNumber is marshalled to JSON as a numeric value, which is wrong because BlockNumber.UnmarshalJSON() wants it to either be hex-encoded or string "earliest"/"latest"/"pending". As a result, the call chain rpc.BlockNumberOrHashWithNumber(123) -> json.Marshal() -> json.Unmarshal() fails with error "cannot unmarshal object into Go value of type string". * build: stop publishing deb packages for Ubuntu 20.10 Groovy Gorilla (#23470) Support for this Ubuntu release has ended on July 22 2021 and Launchpad no longer accepts uploads for it. * node: remove dependency on wallet backend packages (#23019) * accounts: new AddBackends method in manager * node,cmd/geth: mv accman backend init to cmd/geth * node,cmd/geth: mv scrypt config downstreawm from node * accounts: use static buffer size for accman sub chan minor fix * accounts,cmd/geth: update accman backends through its event loop * accounts,node: add comments * accounts: un-export newBackendEvent * accounts: use chan instead of wg in newBlockEvent * node: rename isKeyDirEphem * accounts,cmd: AddBackends->AddBackend * accounts: fix potential blocking when adding backend * Revert "eth, internal/ethapi: make RPC block miner field show block sealer correctly (#23312)" (#23466) This reverts commit 57feabea663496109e59df669238398239438fb1. * internal/ethapi: support both input and data for personal_sendTransaction (#23476) Currently, setDefaults overwrites the transaction input value if only input is provided. This causes personal_sendTransaction to estimate the gas based on a transaction with empty data. eth_estimateGas never calls setDefaults so it was unaffected by this. * core/vm: rework jumpdest analysis benchmarks (#23499) * core/vm: rework jumpdest analysis benchmarks For BenchmarkJumpdestOpAnalysis use fixed code size of ~1.2MB and classic benchmark loop. * core/vm: clear bitvec in jumpdest analysis benchmark * docs: add links to more audits in SECURITY.md (#23482) * core: fix typo in iterator.go (#23502) strorage -> storage * common: fixes format verb (#23495) * core: fix race conditions in txpool (#23474) * core: fix race conditions in txpool * core: fixed races in the txpool * core: rebased on master * core: move reheap mutex * core: renamed mutex * core: revert Reheap changes * cmd/evm: add tests for evm t8n (#23507) * trie: add missing copyright header (#23530) * Add missing copyright header * Update stacktrie_test.go Co-authored-by: Péter Szilágyi <[email protected]> * docs: add post-mortem (#23518) * docs: add post-mortem * Update docs/postmortems/2021-08-22-split-postmortem.md Co-authored-by: Sina Mahmoodi <[email protected]> * Update docs/postmortems/2021-08-22-split-postmortem.md Co-authored-by: Sina Mahmoodi <[email protected]> * Update docs/postmortems/2021-08-22-split-postmortem.md Co-authored-by: Sina Mahmoodi <[email protected]> * Update docs/postmortems/2021-08-22-split-postmortem.md * Update 2021-08-22-split-postmortem.md * Update docs/postmortems/2021-08-22-split-postmortem.md Co-authored-by: Sina Mahmoodi <[email protected]> Co-authored-by: Sina Mahmoodi <[email protected]> * internal/debug: remove deprecated flags (#23368) * internal/debug: remove deprecated flags The removed flags are removed in the main portion of geth, this removes it internally too. * internal/debug: remove legacy --debug and legacy --backtrace flag * Update flags.go Co-authored-by: Martin Holst Swende <[email protected]> * cmd/geth, cmd/utils: remove legacy rpc flags (#23358) * remove rpc flags * remove legacy rpc flags * remove legacy rpc flags * remove legacy rpc commands * (hopefully) fix most of the build errors * fix build errors https://app.travis-ci.com/github/ethereum/go-ethereum/jobs/530318686 * cmd/utils: fix syntax error * empty commit to unbreak travis ci * fix syntax error * syntax fixes * syntax fixes * fix fixes "cmd/geth/usage.go:234:7: expected '(', found init (typecheck)" * fix * various fixes in usage.go * various fixes in flags.go * adds extra space reverts the spacing to how it was before I resolved the merge conflict * more fixes in usage.go * fix fix for cmd/geth/usage.go:243:17: expected operand, found ':=' (typecheck) in travis * Update cmd/utils/flags.go Co-authored-by: Martin Holst Swende <[email protected]> * fix error fixes these errors: cmd/utils/flags_legacy.go:21:2: "strings" imported but not used (typecheck) "strings" ^ cmd/utils/flags_legacy.go:24:2: "github.com/ethereum/go-ethereum/node" imported but not used (typecheck) "github.com/ethereum/go-ethereum/node" ^ * goimports Co-authored-by: Martin Holst Swende <[email protected]> * core/rawdb: freezer batch write (#23462) This change is a rewrite of the freezer code. When writing ancient chain data to the freezer, the previous version first encoded each individual item to a temporary buffer, then wrote the buffer. For small item sizes (for example, in the block hash freezer table), this strategy causes a lot of system calls for writing tiny chunks of data. It also allocated a lot of temporary []byte buffers. In the new version, we instead encode multiple items into a re-useable batch buffer, which is then written to the file all at once. This avoids performing a system call for every inserted item. To make the internal batching work, the ancient database API had to be changed. While integrating this new API in BlockChain.InsertReceiptChain, additional optimizations were also added there. Co-authored-by: Felix Lange <[email protected]> * p2p/enode: use unix timestamp as base ENR sequence number (#19903) This PR ensures that wiping all data associated with a node (apart from its nodekey) will not generate already used sequence number for the ENRs, since all remote nodes would reject them until they out-number the previously published largest one. The big complication with this scheme is that every local update to the ENR can potentially bump the sequence number by one. In order to ensure that local updates do not outrun the clock, the sequence number is a millisecond-precision timestamp, and updates are throttled to occur at most once per millisecond. Co-authored-by: Felix Lange <[email protected]> * core: make txPricedList.stales the first field for 64bit alignment (#23542) This fixes crashes on 32bit builds. * core: 64bit alignment of testBlockChain.gasLimit (#23543) This fixes crashes in txpool tests on 32bit platforms. * appveyor.yml: add linux/amd64 build job (#23548) * les: duplicate downloader and fetcher to allow progressive refactoring * README: add londonBlock to example genesis config (#23565) Updated example genesis.json configuration section, added londonBlock within config. * cmd/evm: transaction validation tool (#23494) * cmd/evm: transaction validation tool * cmd/evm: add hash to t9n tool * cmd/evm: lint nits * cmd/evm: nitpicks * core, rpc: disable memory output by default in traces (#23558) * core: cmd: invert disableMemory * core: fix missed inversion * cmd/evm: preserve Flags but change default value * Apply suggestions from code review Co-authored-by: Martin Holst Swende <[email protected]> Co-authored-by: Martin Holst Swende <[email protected]> * cmd/devp2p/internal/ethtest: only use eth66 if eth66 is negotiated (#23568) * cmd/devp2p/internal/ethtest: only use eth66 if eth66 is negotiated * cmd/devp2p/internal/ethtest: switch on concrete type not pointer * cmd/devp2p/internal/ethtest: switch on concrete type not pointer * eth/tracers: abort evm execution when trace is aborted (#23580) * core,eth: call frame tracing (#23087) This change introduces 2 new optional methods; `enter()` and `exit()` for js tracers, and makes `step()` optiona. The two new methods are invoked when entering and exiting a call frame (but not invoked for the outermost scope, which has it's own methods). Currently these are the data fields passed to each of them: enter: type (opcode), from, to, input, gas, value exit: output, gasUsed, error The PR also comes with a re-write of the callTracer. As a backup we keep the previous tracing script under the name `callTracerLegacy`. Behaviour of both tracers are equivalent for the most part, although there are some small differences (improvements), where the new tracer is more correct / has more information. * ethclient, accounts/keystore: fix flaky tests (#23599) * ethclient/gethclient: fix flaky test (due to map key ordering) * accounts/keystore: fix test failing due to rand collision due to low time resolution on windows * docs: fix spelling on 2021-08-22 postmortem (#23595) Spelling update * internal: support optional filter expression for debug.stacks (#23605) * internal: support optional filter expression for debug.stacks * internal/debug: fix string regexp * internal/debug: support searching for line numbers too * internal/debug: make gosimple linter happy * go.mod: fix module file to prevent go from updating it during build * console: add note about typing exit to exit (#23602) * add explicit note about typing exit in console * Add note about typing exit as alternative * consensus/clique: prevent 0 len extradata from panicing (#23538) Closes #23522 Co-authored-by: Martin Holst Swende <[email protected]> * rpc: set scheme for ws and ipc conns to the server (#23615) * rpc: set scheme for ws and ipc conns to the server * rpc: review fixes * rpc: bugfix * rpc: empty default scheme * accounts/abi: fix resolving single struct argument (#23573) * rpc: set pong read deadline (#23556) This PR adds a 30s timeout for the remote part to answer a ping message, thus detecting (silent) disconnnects * cmd/puppeth: remove shh from Dockerfile (#23634) * eth/tracers: re-write of 4byte tracer using enter/exit (#23622) * eth/tracers: add re-write of 4byte tracer using enter/exit * eth/tracers: fix 4byte indent * core/state: move state account to core/types + abstracted "write account to trie" (#23567) * core/state: abstracted "write account to trie" method * fix appveyor build * Apply suggestions from code review Co-authored-by: Martin Holst Swende <[email protected]> * review feedback * core/state/accounts: move Account to core/types * core/types: rename Account -> StateAccount * core/state: restore EncodeRLP for stateObject * core/types: add the missing file * more review feedback * more review feedback Co-authored-by: Martin Holst Swende <[email protected]> Co-authored-by: Felix Lange <[email protected]> * eth/tracers: implement debug.intermediateRoots (#23594) This PR implements a new debug method, which I've talked briefly about to some other client developers. It allows the caller to obtain the intermediate state roots for a block (which might be either a canon block or a 'bad' block). * core/rawdb: avoid unnecessary receipt processing for log filtering (#23147) * core/types: rm extranous check in test * core/rawdb: add lightweight types for block logs * core/rawdb,eth: use lightweight accessor for log filtering * core/rawdb: add bench for decoding into rlpLogs * accounts/abi/bind: check event signature before parsing (#23230) * accounts/abi/bind: check event signature before parsing * remove redundant break line * eth/tracers: avoid unsyncronized mutations on trie database (#23632) This PR fixes an issue in traceChain, where the statedb Commit operation was performed asynchronously with dereference-operations agains the underlying trie.Database instance. Due to how the reference counting works within the trie database (where parent count is recursively updated when new parents are added), doing dereferencing in the middle of Commit can cause the refcount to become wrong, leading to an inconsistent state. This was fixed by doing Commit/Deref from the same routine. * eth/protocols/eth: simplify peer known block/txs caches (#23649) * Simplify peer known block/txns cache * Address minor changes * Add more minor comments * Minor changes from review * graphql: add storage slots to access list (#23650) Fixes #23640 * eth/protocols/snap, trie: better error-handling (#23657) * core: fix typo in comment (#23658) * internal/ethapi: support retrieving header RLPs too * eth/tracers: fix callTracer fault handling (#23667) * eth/tracers: fix calltracer fault handling * eth/tracers: fix calltracer indentation * internal/ethapi: make header/block rlp retrieval canonical * core/state: fix typo in comment (#23665) * eth/filters: fix TestPendingLogsSubscription (#23619) The test did not synchronize with per-case goroutines, and thus didn't notice that some tests were just hanging. This change adds missing synchronization and fixes the broken tests. * eth/protocols/eth: replace array with counter in txn broadcaster (#23656) * eth/api: add rpc method to obtain which states are accessible (#23646) This PR adds a method to the debug namespace, to iterate over the blocks and check where we have the roots on disk. * go.mod: upgrade github.com/karalable/usb (#23684) This update includes fixes for the *BSD build and go module vendoring. * core/types: copy tx recipient address (#23376) This resolves a long-standing TODO. The point of copying the address is to ensure that all data referenced by types.Transaction is independent of the data passed into the constructor. Co-authored-by: Felix Lange <[email protected]> * core: improve shutdown synchronization in BlockChain (#22853) This change removes misuses of sync.WaitGroup in BlockChain. Before this change, block insertion modified the WaitGroup counter in order to ensure that Stop would wait for pending operations to complete. This was racy and could even lead to crashes if Stop was called at an unfortunate time. The issue is resolved by adding a specialized 'closable' mutex, which prevents chain modifications after stopping while also synchronizing writers with each other. Co-authored-by: Felix Lange <[email protected]> * internal/ethapi: use correct signer when serving old blocks (#23683) Fixes #23681 After the fix I get the address 0x6d6d02e83c4ced98204e20126acf27e9d87b8af2 for the tx mentioned in the ticket, which agrees with etherscan. * cmd/geth: fix typo in error message (#23697) * build: upgrade -dlgo version to 1.17.2 (#23698) Go 1.17.2 fixes some miscompilation issues on amd64 and a runtime issue with timers. While the upgrade is not strictly necessary for go-ethereum right now, it is still good to be up-to-date. * eth: close miner on exit (instead of just stopping) (#21992) This ensures that all miner goroutines have exited before stopping the blockchain. Co-authored-by: Felix Lange <[email protected]> * miner: fix data race during shutdown (#23435) This fixes a data race on worker.current by moving the call to StopPrefetcher into the main loop. The commit also contains fixes for two other races in unit tests of unrelated packages. * miner/stress: initialize account backends explicitly (#23699) node.Node no longer registers any account manager backends by default, they need to be registered explicitly. For ethash-based tests, we actually don't need any accounts in the miner keystore. Just set the etherbase instead to make mining work. For clique, the signer account must be in the keystore. The change also adds interrupt handling in stress tests. * internal/jsre: handle null and undefined to prevent crash (#23701) This prevents the console from crashing when auto-completing on a variable or property that is null or undefined. Fixes #23693 * core/state: fix typos in comments (#23702) * eth/gasprice: avoid modifying TestChainConfig (#23204) Co-authored-by: Felix Lange <[email protected]> * cmd/puppeth: add txpool to explorer Dockerfile (#23652) * cmd/evm: stricter transaction validation (#23694) * cmd/evm: t9n: validate transaction intrinsic gas * cmd/evm: t9n: stricter tx validation * build: increase C thread stack size on linux (#23676) * build: increase thread stack size when running alpine linux * review feedback: force a stack size of 8M on all linux distribs * fix missing extldflags * params: changed CatalystBlock to TerminalTotalDifficulty (#23700) * params: changed CatalystBlock to TerminalTotalDifficulty * eth/catalyst: comment out unused code * les/vflux/server: fix metrics (#22946) * les/vflux/server: fix metrics * les/vflux/server: fix metrics * core: tests for forked blocks retrievable by hash (#23695) * Update tests to showcase that forked blocks can still be looked up by their hash * ci: enable race tests as cron job on travis (#23480) * consensus/clique, core: API cleanup (#23100) This removes some code: - The clique engine calculated the snapshot twice when verifying headers/blocks. - The method GetBlockHashesFromHash in Header/Block/Lightchain was only used by tests. It is now removed from the API. - The method GetTdByHash internally looked up the number before calling GetTd(hash, num). In many cases, callers already had the number, and used this method just because it has a shorter name. I have removed the method to make the API surface smaller. * fixed broken web3 methods link in README.md (#23703) * eth,rpc: allow for flag configured timeouts for eth_call (#23645) * eth,rpc: allow for flag configured timeouts for eth_call * lint: account for package-local import order * cr: rename `rpc.calltimeout` to `rpc.evmtimeout` * go.mod: upgrade goja (#23721) This update adds support for some more ES6 functionality, notably arrow functions. * core/types: add MarshalBinary, UnmarshalBinary for Receipt (#22806) * all: fix some go-critic linter warnings (#23709) This doesn't fix all go-critic warnings, just the most serious ones. Co-authored-by: Felix Lange <[email protected]> Co-authored-by: Martin Holst Swende <[email protected]> * accounts/abi/bind: refactor transact method (#23719) This fixes a bug where gas-related fields of the TransactOpts passed to transaction methods would be modified, skipping gas estimation for subsequent transactions. Co-authored-by: Yondon Fu <[email protected]> Co-authored-by: Felix Lange <[email protected]> * core: remove unused error from TxPool.Pending (#23720) * accounts/abi: add basic support for error types (#23161) This is the initial step for support of Solidity errors in contract bindings. As of this change, errors can be decoded, but are not supported in bindings yet. Closes #23157 * core/state/snapshot: fix data race in layer flattening (#23628) * core/state/snapshot: fix data race in layer flattening * core/state/snapshot: fix typo * core: refactored blockchain.go (#23735) * cmd/geth: support string (non-hex) keys in db get/put/delete (#23744) Adds suppor for passing regular strings to db `put`/`get`/`delete`, to avoid having to hex-encode when operating on fixed-key items like `SnapshotSyncStatus`, `SnapshotRecovery` etc. Signed-off-by: Maxim Zhiburt <[email protected]> Co-authored-by: Martin Holst Swende <[email protected]> * cmd/rlpdump: add support for text to rlp (#23745) This PR adds support for the rlpdump tool to go from text format to RLP. * internal/ethapi: fix recover sender of pending transaction (#23765) * internal/ethapi: fix recover sender of pending transaction * internal/ethapi: check if current exists * trie: fix typos (#23768) * cmd/puppeth: use geth's prompt to read input (#23718) * cmd/puppeth: use geth's prompt to read input * remove wizard.in * cmd/puppeth: fix compilation errors * reset prompt (don't exit) on receiving ctrl-c * make promptInput spin until the user enters a value or interrupts (ctrl-d) * make promptInput use parameter Co-authored-by: Martin Holst Swende <[email protected]> * eth/fetcher: remove superfluous nilness-check (#23739) * eth/fetcher: fix nilness check https://github.com/ethereum/go-ethereum/issues/23738 * eth/fetcher: Use errors.Is. PR feedback from @holiman. * cmd/utils: update gpo.maxprice flag description (#23758) * cmd/utils: update flag description * Update cmd/utils/flags.go Co-authored-by: unkonwn-coder <[email protected]> Co-authored-by: Martin Holst Swende <[email protected]> * cmd/evm: add 256-bit field validations on transactions (t9n) (#23743) * cmd/evm: add 256-bit field validations on transactions (t9n) * cmd/evm: validate gas*gasPrice, return intrinsic gas usage * cmd/evm: address review comment * all: fix warning flagging the use of DeepEqual on error (#23624) * core: fix warning flagging the use of DeepEqual on error * apply the same change everywhere possible * revert change that was committed by mistake * fix build error * Update config.go * revert changes to ConfigCompatError * review feedback Co-authored-by: Felix Lange <[email protected]> * core/state/snapshot: fix BAD BLOCK error when snapshot is generating (#23635) * core/state/snapshot: fix BAD BLOCK error when snapshot is generating * core/state/snapshot: alternative fix for the snapshot generator * add comments and minor update Co-authored-by: Martin Holst Swende <[email protected]> * ethclient: fix typo (#23778) * accounts/abi/bind: fix error handling in baseFee query (#23781) This fixes a panic that occurs when HeaderByNumber() returns an error. * common/hexutil: improve performance of EncodeBig (#23780) - use Text instead of fmt.Sprintf - reduced allocs from 6 to 2 - improved speed * core/rawdb, ethdb: introduce batched/atomic reads from ancients (#23566) This PR adds a new accessor method to the freezer database. This new view offers a consistent interface, guaranteeing that all individual tables (headers, bodies etc) are all on the same number, and that this number is not changes (added/truncated) while the operation is performing. * build: remove xgo cross-builds (#23800) xgo is not maintained at this time, so none of these builds work. Closes #23784 * core: use block difficulty for genesis (#23793) * core: write test showing that TD is not stored properly at genesis The ToBlock method applies a default value for an empty difficulty value. This default is not carried over through the Commit method because the TotalDifficulty database write writes the original difficulty value (nil) instead of the defaulty value present on the genesis Block. Date: 2021-10-22 08:25:32-07:00 Signed-off-by: meows <[email protected]> * core: write TD value from Block, not original genesis value This an issue where a default TD value was not written to the database, resulting in a 0 value TD at genesis. A test for this issue was provided at 90e3ffd393 Date: 2021-10-22 08:28:00-07:00 Signed-off-by: meows <[email protected]> * core: fix tests by adding GenesisDifficulty to expected result See prior two commits. Date: 2021-10-22 09:16:01-07:00 Signed-off-by: meows <[email protected]> * les: fix test with genesis change Co-authored-by: Martin Holst Swende <[email protected]> * ethdb: more accurate batch size calculation (#23790) This PR also counts the size of the key when calculating the size of a db batch * core/state/snapshot: fix benchmarks (#23804) * core: fix benchmark tests (#23803) Fixes crashes in various benchmarks in the core package * cmd/evm: handle rlp errors in t9n (#23771) * cmd/evm: handle rlp errors in t9n * cmd/evm/testdata: fix readme * core: fixed stale comment in txlist (#23825) * cmd/geth, cmd/evm, params: implement Arrow Glacier (EIP 4345) (#23810) This PR adds support for ArrowGlacier, as defined by https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md https://eips.ethereum.org/EIPS/eip-4345 > Starting with FORK_BLOCK_NUMBER the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 10,700,000 blocks later than the actual block number. This also adds support for evm t8n to return the calculated difficulty, so it can be used to construct test. * eth/filters, p2p/simulations: fix benchmarks (#23806) Some benchmarks in eth/filters were not good: they weren't reproducible, relying on geth chaindata to be present. Another one was rejected because the receipt was lacking a backing transcation. The p2p simulation benchmark had a lot of the warnings below, due to the framework calling both Stop() and Close(). Apparently, the simulated adapter is the only implementation which has a Close(), and there is no need to call both Stop and Close on it. * optimize the judge of invalide notification.number (#22658) Don't bother fetching genesis Co-authored-by: wuff1996 <[email protected]> * accounts/abi/bin/backends: return basefee in suggestGasPrice (#23838) Co-authored-by: mrx <[email protected]> * miner: fix receipt deep copy in worker (#23835) * rpc: avoid crashing on clique getSigner during sync (#23832) * rpc/client: fix typo (#23834) * accounts/abi/bind/backends: make suggestGasPrice compatible with non-1559 chains (#23840) * core: fix snapshot missing when recovery from crash (#23496) It is because write known block only checks block and state without snapshot, which could lead to gap between newest snapshot and newest block state. However, new blocks which would cause snapshot to become fixed were ignored, since state was already known. Co-authored-by: Gary Rong <[email protected]> Co-authored-by: Martin Holst Swende <[email protected]> * eth/tracers: invoke enter/exit on 0-value calls to inex accounts (#23828) * cmd/geth: implement data import and export (#22931) This PR offers two more database sub commands for exporting and importing data. Two exporters are implemented: preimage and snapshot data respectively. The import command is generic, it can take any data export and import into leveldb. The data format has a 'magic' for disambiguation, and a version field for future compatibility. * consensus/ethash: avoid runtime errors due to OOD on mmap writes (#23799) When we map a file for generating the DAG, we do a simple truncate to e.g. 1Gb. This is fine, even if we have nowhere near 1Gb disk available, as the actual file doesn't take up the full 1Gb, merely a few bytes. When we start generating into it, however, it eventually crashes with a unexpected fault address . This change fixes it (on linux systems) by using the Fallocate syscall, which preallocates suffcient space on disk to avoid that situation. Co-authored-by: Felix Lange <[email protected]> * cmd/puppeth: make it possible to have pw-protected keyfiles (#22148) * core: more efficient nonce-update in txpool (#22231) * Adjust pending nonce update operation Benchmark the speed of transaction insertion under multiple accounts core: fix rebase issues + docstring core: make benchmark test use sync:ed method * core: address review comments * core: add memreport to benchmark Co-authored-by: WeiLoy <[email protected]> * rpc: linear time batch response matching (#23856) This avoids quadratic time complexity in the lookup of the batch element corresponding to an RPC response. Unfortunately, the new approach requires additional memory for the mapping from ID to index. Fixes #22805 * eth: make traceChain avoid OOM on long-running tracing (#23736) This PR changes long-running chain tracing, so that it at some points releases the memory trie db, and switch over to a fresh disk-backed trie. * eth/tracers: support for golang tracers + add golang callTracer (#23708) * eth/tracers: add basic native loader * eth/tracers: add GetResult to tracer interface * eth/tracers: add native call tracer * eth/tracers: fix call tracer json result * eth/tracers: minor fix * eth/tracers: fix * eth/tracers: fix benchTracer * eth/tracers: test native call tracer * eth/tracers: fix * eth/tracers: rm extra make Co-authored-by: Martin Holst Swende <[email protected]> * eth/tracers: rm extra make * eth/tracers: make callFrame private * eth/tracers: clean-up and comments * eth/tracers: add license * eth/tracers: rework the model a bit * eth/tracers: move tracecall tests to subpackage * cmd/geth: load native tracers * eth/tracers: minor fix * eth/tracers: impl stop * eth/tracers: add native noop tracer * renamings Co-authored-by: Martin Holst Swende <[email protected]> * eth/tracers: more renamings * eth/tracers: make jstracer non-exported, avoid cast * eth/tracers, core/vm: rename vm.Tracer to vm.EVMLogger for clarity * eth/tracers: minor comment fix * eth/tracers/testing: lint nitpicks * core,eth: cancel evm on nativecalltracer stop * Revert "core,eth: cancel evm on nativecalltracer stop" This reverts commit 01bb908790a369c1bb9d3937df9325c6857bf855. * eth/tracers: linter nits * eth/tracers: fix output on err Co-authored-by: Martin Holst Swende <[email protected]> * miner, consensus/clique: avoid memory leak during block stasis (#23861) This PR fixes a problem which arises on clique networks when there is a network stall. Previously, the worker packages were tracked, even if the sealing engine decided not to seal the block (due to clique rules about recent signing). These tracked-but-not-sealed blocks kept building up in memory. This PR changes the situation so the sealing engine instead returns an error, and the worker can thus un-track the package. * les/vflux: fixed panic and data races (#23865) * les/vflux/server: fix BalanceOperation * les/vflux/client: fixed data races * cmd/geth: add support for sepolia testnet (#23730) * cmd/geth: add support for sepolia testnet * core: last details on sepolia genesis * params: fix sepolia hash + reduce testing code * Update params/bootnodes.go * cmd/geth: fix attach path for sepolia * params: update bootnodes * params: fix * core: fix docstring * params: add sepolia CHT * params: update CHTs for the 1.10.12 release * params: update Ropsten CHT too * eth/tracers: make native calltracer default (#23867) * core: check effective tip in txpool pricelimit validation (#23855) The price limit is supposed to exclude transactions with too low fee amount. Before EIP-1559, it was sufficient to check the limit against the gas price of the transaction. After 1559, it is more complicated because the concept of 'transaction gas price' does not really exist. When mining, the price limit is used to exclude transactions below a certain effective fee amount. This change makes it apply the same check earlier, in tx validation. Transactions below the specified fee amount cannot enter the pool. Fixes #23837 * eth/tracers: package restructuring (#23857) * eth/tracers: restructure tracer package * core/vm/runtime: load js tracers * eth/tracers: mv bigint js code to own file * eth/tracers: add method docs for native tracers * eth/tracers: minor doc fix * core,eth: cancel evm on nativecalltracer stop * core/vm: fix failing test Co-authored-by: Sina Mahmoodi <[email protected]> * cmd/devp2p/internal/ethtest: clarify protocol version in tests (#23872) Debugging recent geth failures in hive, it took a while to realize that it's because geth doesn't support eth/65 any longer. This PR makes such failures a bit more easy to figure out. * p2p: fix typo in v4wire.go Neigbors -> Neighbors * core/vm: implement EIP-2681: Limit account nonce to 2^64-1 (#23853) This retroactively implements requirements or EIP-2681 for the account nonce upper limit. * core/rawdb: add slow path for getting legacy logs (#23879) * eth/tracers: add slow path for getting legacy logs * core/rawdb: fix test * cmd/devp2p: update TTL max for Cloudflare (#23885) This was apparently recently changed by Cloudflare, and began returning an error: 'TTL must be between 60 and 86400 seconds, or 1 for Automatic' Date: 2021-11-10 15:25:20-08:00 Signed-off-by: meows <[email protected]> * eth/tracers: add golang 4byte tracer (#23882) * native 4byte tracer * Update eth/tracers/native/4byte.go Co-authored-by: Martin Holst Swende <[email protected]> * Update eth/tracers/native/4byte.go Co-authored-by: Martin Holst Swende <[email protected]> * goimports * eth/tracers: make 4byte tracer not care about create Co-authored-by: Martin Holst Swende <[email protected]> * accounts/abi/bind/backends: fix race condition in simulated backend (#23898) Now that `SimulatedBackend.SuggestGasPrice` inspects member values, a lock needs to be added to prevent a race condition. * cmd/evm: add `gasUsed` to t8n `result` (#23919) * cmd/evm: add gas used accumulator to t8n result * cmd/evm: update t8n tests to include gas used field * eth/tracers: make native 4byte default, remove js version (#23916) * core/rawdb: better error message in freezer (#23901) * core/rawdb: better error message in freezer * Apply suggestions from code review * cmd/geth: add flag --dev.gaslimit for dev mode (#23686) * cmd, core: add flag --dev.gaslimit to allow configuring initial block gas limit in dev mode * core: use provided gaslimit Co-authored-by: Martin Holst Swende <[email protected]> * cmd/evm: rename t8n result to match types.Header (ReceiptRoot->ReceiptsRoot) (#23924) * ethclient: fix tx sender cache miss detection (#23877) This fixes a bug in TransactionSender where it would return the zero address for transactions where the sender address wasn't cached already. Co-authored-by: Felix Lange <[email protected]> * eth/gasprice: sanitize max header and block history (#23886) Fixes #23452 * cmd/evm: make t9n intrinsicGas output hex, fixes #23883 (#23889) * eth: fix typo in comment (#23941) * cmd/geth: add ancient flag to db inspect (#23946) * trie: more tests for stacktrie (#23936) * cmd/evm: add b11r tool (#23843) evm block-builder (a.k.a b11r) is a utility to help assemble blocks, for use during the test-creation process. * core, eth/downloader: fix resetting below freezer threshold * cmd/evm: add support for signing transactions in the unprotected format (#23937) * cmd/evm: add support for signing transactions in the unprotected format * cmd/evm: simplify signing of unprotected txs * core/vm: don't use iota for opcode definitions * core/rawdb: use AncientRange when initializing leveldb from freezer (#23612) * core/rawdb: utilize AncientRange when initiating from freezer * core/rawdb: remove debug sanity check * p2p/enode: store local port number as uint16 (#23926) * trie: reject deletions when verifying range proofs * cmd/evm: rename t8n args to improve clarity when tracing (#23934) * cmd/evm: rename t8n args to improve clarity when tracing * cmd/evm: add back removed tracing flags and note that they are deprecated * cmd/evm: add warning when using deprecated flag * Update go.sum * Prepare v2.2.3 life cycle * Add recents signers into consortium's snapshot to prevent 1 signer can sign more than 1 continuous blocks (#46) * Add recents signers into consortium's snapshot to prevent 1 signer can sign more than 1 continuous blocks * Remove checking recently when applying block in snapshot and verifySeal * Add RONIN_PARAMS to params in all networkID * Fix conflict error with Odyseus fork Co-authored-by: Marius van der Wijden <[email protected]> Co-authored-by: gary rong <[email protected]> Co-authored-by: Evolution404 <[email protected]> Co-authored-by: aaronbuchwald <[email protected]> Co-authored-by: Martin Holst Swende <[email protected]> Co-authored-by: lightclient <[email protected]> Co-authored-by: Zsolt Felfoldi <[email protected]> Co-authored-by: @edgararout <[email protected]> Co-authored-by: ligi <[email protected]> Co-authored-by: baptiste-b-pegasys <[email protected]> Co-authored-by: ucwong <[email protected]> Co-authored-by: Sina Mahmoodi <[email protected]> Co-authored-by: Felix Lange <[email protected]> Co-authored-by: Patrick O'Grady <[email protected]> Co-authored-by: Shihao Xia <[email protected]> Co-authored-by: shawn <[email protected]> Co-authored-by: lxex <[email protected]> Co-authored-by: Péter Szilágyi <[email protected]> Co-authored-by: Zachinquarantine <[email protected]> Co-authored-by: Ziyuan Zhong <[email protected]> Co-authored-by: Tyler Chambers <[email protected]> Co-authored-by: Tyler Chambers <[email protected]> Co-authored-by: jwasinger <[email protected]> Co-authored-by: 陈佳 <[email protected]> Co-authored-by: chuwt <[email protected]> Co-authored-by: Pedro Gomes <[email protected]> Co-authored-by: Guillaume Ballet <[email protected]> Co-authored-by: Ivan Bogatyy <[email protected]> Co-authored-by: Dmitry Zenovich <[email protected]> Co-authored-by: Paweł Bylica <[email protected]> Co-authored-by: Fredrik Svantes <[email protected]> Co-authored-by: Ikko Ashimine <[email protected]> Co-authored-by: Alexander Yastrebov <[email protected]> Co-authored-by: Jonathan Verhees <[email protected]> Co-authored-by: Pete <[email protected]> Co-authored-by: Thad Guidry <[email protected]> Co-authored-by: Jordan Krage <[email protected]> Co-authored-by: Zachinquarantine <[email protected]> Co-authored-by: Yihau Chen <[email protected]> Co-authored-by: Ferran Borreguero <[email protected]> Co-authored-by: hsyodyssey <[email protected]> Co-authored-by: Miro <[email protected]> Co-authored-by: Sean <[email protected]> Co-authored-by: Aditya Arora <[email protected]> Co-authored-by: z89 <[email protected]> Co-authored-by: noam-alchemy <[email protected]> Co-authored-by: Ian Norden <[email protected]> Co-authored-by: Iskander (Alex) Sharipov <[email protected]> Co-authored-by: Yondon Fu <[email protected]> Co-authored-by: Maxim Zhiburt <[email protected]> Co-authored-by: Ha ĐANG <[email protected]> Co-authored-by: Preston Van Loon <[email protected]> Co-authored-by: Kawashima <[email protected]> Co-authored-by: unkonwn-coder <[email protected]> Co-authored-by: Harry Dutton <[email protected]> Co-authored-by: KibGzr <[email protected]> Co-authored-by: lmittmann <[email protected]> Co-authored-by: meowsbits <[email protected]> Co-authored-by: XuDon9 Liu AKA Rapper Of CN background diablo & revelations, a man optimistic, negative, silent, active, Taoism <[email protected]> Co-authored-by: wuff1996 <[email protected]> Co-authored-by: Sparty <[email protected]> Co-authored-by: mrx <[email protected]> Co-authored-by: Lee Bousfield <[email protected]> Co-authored-by: WeiLoy <[email protected]> Co-authored-by: Sina Mahmoodi <[email protected]> Co-authored-by: Andrei Maiboroda <[email protected]> Co-authored-by: Ward Bradt <[email protected]> Co-authored-by: Joshua Colvin <[email protected]> Co-authored-by: Jesse Tane <[email protected]> Co-authored-by: courtier <[email protected]> Co-authored-by: Anatole <[email protected]> Co-authored-by: Serhat Şevki Dinçer <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
System information
Geth version: develop
OS & Version: Linux
Commit hash : 08e782c
Expected behaviour
Actual behaviour
Steps to reproduce the behaviour
Due to golang/go#31008, the nilness check results returns almost no helpful information.
I'm not sure exactly where the nilness check is failing.
The nilness check result does not return the filename, line number, or autofix.
More info on this analysis check
Backtrace
The text was updated successfully, but these errors were encountered: