status-im / nimbus-eth2

Nim implementation of the Ethereum Beacon Chain
https://nimbus.guide
Other
526 stars 227 forks source link

Can no longer use systemd's MemoryDenyWriteExecute on nimbus-beacon-node 24.6.0 #6393

Closed dagonharett closed 3 months ago

dagonharett commented 3 months ago

Up until v24.5.1 (inclusive) is was able to run nimbus-beacon-node on systemd with MemoryDenyWriteExecute=true. MemoryDenyWriteExecute is a systemd hardening feature that prohibits attempts to create memory mappings that are writable and executable at the same time. Now, on v24.6.0, nimbus-beacon-node crashes with Failure in taskpool initialization when MemoryDenyWriteExecute is enabled. There are a few good reasons why you may need write and execute. Still, I am letting you know in case it was accidental.

Here's the full crash output:

INF 2024-06-28 16:52:49.123+00:00 Launching beacon node                      topics="beacnde" version=v24.6.0-7d0078-stateofus bls_backend=BLST const_preset=mainnet cmdParams=[...]
/home/user/nimbus-eth2/vendor/nim-testutils/testutils/moduletests.nim(21) moduletests
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2430) _ZN18nimbus_beacon_node4mainE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2353) _ZN18nimbus_beacon_node16handleStartUpCmdE3varIN4conf14BeaconNodeConfEE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2241) _ZN18nimbus_beacon_node15doRunBeaconNodeE3varIN4conf14BeaconNodeConfEE3refIN12bearssl_rand15HmacDrbgContextEE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(552) _ZN4init4initE8typeDescI3refIN11beacon_node26BeaconNodecolonObjectType_EEE3refIN12bearssl_rand15HmacDrbgContextEEN4conf14BeaconNodeConfEN16network_metadata19Eth2NetworkMetadataE
/home/user/nimbus-eth2/vendor/nim-chronos/chronos/internal/asyncfutures.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(568) _ZN4init4initE3refIN7futures26FutureBasecolonObjectType_EE
/home/user/nimbus-eth2/vendor/nimbus-build-system/vendor/Nim/lib/system/excpt.nim(329) _ZN6system18rawWriteStackTraceE3varI3seqIN6system15StackTraceEntryEEE
/home/user/nimbus-eth2/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE
[[reraised from:
/home/user/nimbus-eth2/vendor/nim-testutils/testutils/moduletests.nim(21) moduletests
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2430) _ZN18nimbus_beacon_node4mainE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2353) _ZN18nimbus_beacon_node16handleStartUpCmdE3varIN4conf14BeaconNodeConfEE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2241) _ZN18nimbus_beacon_node15doRunBeaconNodeE3varIN4conf14BeaconNodeConfEE3refIN12bearssl_rand15HmacDrbgContextEE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(552) _ZN4init4initE8typeDescI3refIN11beacon_node26BeaconNodecolonObjectType_EEE3refIN12bearssl_rand15HmacDrbgContextEEN4conf14BeaconNodeConfEN16network_metadata19Eth2NetworkMetadataE
/home/user/nimbus-eth2/vendor/nim-chronos/chronos/internal/asyncfutures.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(896) _ZN4init4initE3refIN7futures26FutureBasecolonObjectType_EE
/home/user/nimbus-eth2/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE
]]
[[reraised from:
/home/user/nimbus-eth2/vendor/nim-testutils/testutils/moduletests.nim(21) moduletests
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2430) _ZN18nimbus_beacon_node4mainE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2353) _ZN18nimbus_beacon_node16handleStartUpCmdE3varIN4conf14BeaconNodeConfEE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(2241) _ZN18nimbus_beacon_node15doRunBeaconNodeE3varIN4conf14BeaconNodeConfEE3refIN12bearssl_rand15HmacDrbgContextEE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(552) _ZN4init4initE8typeDescI3refIN11beacon_node26BeaconNodecolonObjectType_EEE3refIN12bearssl_rand15HmacDrbgContextEEN4conf14BeaconNodeConfEN16network_metadata19Eth2NetworkMetadataE
/home/user/nimbus-eth2/vendor/nim-chronos/chronos/internal/asyncfutures.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE
/home/user/nimbus-eth2/beacon_chain/nimbus_beacon_node.nim(896) _ZN4init4initE3refIN7futures26FutureBasecolonObjectType_EE
/home/user/nimbus-eth2/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE
]]
Error: unhandled exception: Failure in taskpool initialization. [Defect]
nimbus_beacon_node.service: Main process exited, code=exited, status=1/FAILURE

Platform details (OS, architecture): Debian 12, amd64 nimbus installed from the https://apt.status.im/nimbus Debian repo.

tersec commented 3 months ago

Unintentional, triggered by https://github.com/status-im/nimbus-eth2/pull/6292

tersec commented 3 months ago

Fixed by https://github.com/status-im/nimbus-eth2/commit/68eabc098b6ff5a3dd9033c6c5f24743a5731096