-
Notifications
You must be signed in to change notification settings - Fork 20.3k
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
Runtime: out of memory: cannot allocate 4194304-byte block (1491501056 in use) fatal error: out of memory #25709
Comments
crash
|
This happens here, and for i := len(newChain) - 1; i >= 1; i-- {
// Collect reborn logs due to chain reorg
logs := bc.collectLogs(newChain[i].Hash(), false) // <-- this line
if len(logs) > 0 {
rebirthLogs = append(rebirthLogs, logs)
}
} |
This case was somewhat improved by #24616, but apparently it can still be problematic |
Hah: https://github.com/ethereum/go-ethereum/pull/24616/files#r839537977 I pointed that out already back then, but we didn't do anything about it |
I wonder if its really necessary to copy each log within collectLogs? L1966 |
Oh, here's another reason why this happened:
It's a 32-bit system, with only 2Gb memory |
Maybe you downloaded the wrong binary? EDIT: after re-reading your issue description, I finally noticed that you had also seen and mentioned this thing. Note to self to read more properly from the beginning :) |
You have most definitely downloaded the wrong version. But I think the one you have is: |
Closing this. Feel free to reopen if the issue persists or anything is unclear |
@holiman Maybe add a better error message for this? So it is clear this is the issue and can be fixed easily? Would make this more fool proof. ;) But thanks anyway, this was the fix! I'll have to read better... |
System information
CPU: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz 3.30 GHz
RAM: 16 GB
System: 64-bit
Free space C-drive (Windows): ~5 GB
Free space D-drive (Execution client): ~275 GB
Free space E-drive (Consensus client): ~800 GB
Geth version: v1.10.23
OS & Version: Windows 10 Pro
Commit hash : no developer - only running ETH validator
Expected behaviour
After updating to Geth v1.10.23 I want to run the execution client. I first deleted the old v1.10.21 geth.exe files, and then reïnstalled the v1.10.23. Running this should work and sync to the existing database (that is on the D-drive) when using this command: "geth.exe --datadir "D:\Execution". This seems not to be the case...
Actual behaviour
So if we try to use the command you can see above, we get a fews blocks in, but within the minute we get the error: "runtime: out of memory: cannot allocate 4194304-byte block (1491501056 in use) fatal error: out of memory"
There is nothing running in the background except a timesync app, all the rest is closed. Execution node uses 5-6GB RAM of the 16 GB available. No other parameters go into abnormal zones.
Steps to reproduce the behaviour
The issue persists even after restarting device or execution node and running the command: "geth.exe --datadir "D:\Execution"
Backtrace
I discussed this with the Prysm Team, and here we got something strange out of the log. This makes us think that geth is making my machine as 32-bit and not 64-bit. It feels like you aren't accounting for windows machines correctly
WARN [09-07|11:17:55.010] Lowering memory allowance on 32bit arch available=16351 addressable=2048
Log from execution client (full log in attachment):
log.txt
The text was updated successfully, but these errors were encountered: