Skip to content

Accounts stuck in weird state after debug_setHead #26154

@antazoey

Description

@antazoey

System information

Geth version: 1.10.26-stable
CL client & version: e.g. lighthouse/nimbus/[email protected] ?
OS & Version: macOS Ventura 13.0
Commit hash : (if develop)

Expected behaviour

Note: I am using a private PoA chain for testing purposes.

I am trying to have isolation in my tests via debug_setHead and using block numbers as the snapshot IDs.

Actual behaviour

No nonce is good enough for accounts after debug_setHead. If I use the value from the eth_transactionCount, it says that the nonce is too low. If I try bumping it manually, the transaction won't get picked up.

Steps to reproduce the behaviour

Here is what my genesis looks like:

        genesis_data: Dict = {
            "overwrite": True,
            "coinbase": "0x0000000000000000000000000000000000000000",
            "difficulty": "0x0",
            "extraData": f"0x{'0' * 64}{sealer}{'0' * 130}",
            "config": {
                "chainId": chain_id,
                "gasLimit": 0,
                "homesteadBlock": 0,
                "difficulty": "0x0",
                "eip150Block": 0,
                "eip155Block": 0,
                "eip158Block": 0,
                "byzantiumBlock": 0,
                "constantinopleBlock": 0,
                "petersburgBlock": 0,
                "istanbulBlock": 0,
                "berlinBlock": 0,
                "londonBlock": 0,
                "clique": {"period": 0, "epoch": 30000},
            },
            "alloc": {a.address: {"balance": str(initial_balance)} for a in accounts},
        }

Geth command:

geth \
    --http \
    --http.addr 127.0.0.1 \
    --http.port 5550 \
    --http.api admin,clique,debug,eth,miner,net,personal,shh,txpool,web3,ws \
    --datadir /private/var/folders/hg/17b1zhsn1n3d8b4rgh6ntt_w0000gn/T/tmpp_5odh88/ethereum/local/dev \
    --maxpeers 0 \
    --networkid 1337 \
    --port 30303 \
    --ipcpath /private/var/folders/hg/17b1zhsn1n3d8b4rgh6ntt_w0000gn/T/tmpp_5odh88/ethereum/local/dev/geth.ipc \
    --verbosity 5 \
    --unlock 0 \
    --password <my-home-dir>/default_blockchain_password \
    --nodiscover \
    --mine --miner.threads 1 \
    --allow-insecure-unlock account list

Backtrace

Method: eth_sendRawTransaction, Response: {'jsonrpc': '2.0', 'id': 176, 'error': {'code': -32000, 'message': 'nonce too low'}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions