0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-05 14:06:27 -05:00

Merge bitcoin/bitcoin#28545: test: Avoid test failure on Linux root without cap-add LINUX_IMMUTABLE

fa40b3ee22 test: Avoid test failure on Linux root without cap-add LINUX_IMMUTABLE (MarcoFalke)

Pull request description:

  This turns a test failure on Linux when running the test as `root`, but without the `LINUX_IMMUTABLE` capability, into an early return, with a suggestion to turn on `LINUX_IMMUTABLE` next time (if possible).

ACKs for top commit:
  pinheadmz:
    utACK fa40b3ee22
  jonatack:
    ACK fa40b3ee22

Tree-SHA512: d986ff8aeae5f8267c21a23d5be16f7c5a4d4d3be045a6999d8b39c7b8672cfe915dedde762cc9965cdc4970940bffc4b0d1412833d8036d4425450eb6181f67
This commit is contained in:
fanquake 2023-10-02 11:00:49 +02:00
commit f66af92f1a
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1

View file

@ -6,6 +6,7 @@
- Start a node, generate blocks, then restart with -reindex after setting blk files to read-only - Start a node, generate blocks, then restart with -reindex after setting blk files to read-only
""" """
import os
import platform import platform
import stat import stat
import subprocess import subprocess
@ -45,6 +46,11 @@ class BlockstoreReindexTest(BitcoinTestFramework):
self.log.warning(f"stdout: {e.stdout}") self.log.warning(f"stdout: {e.stdout}")
if e.stderr: if e.stderr:
self.log.warning(f"stderr: {e.stderr}") self.log.warning(f"stderr: {e.stderr}")
if os.getuid() == 0:
self.log.warning("Return early on Linux under root, because chattr failed.")
self.log.warning("This should only happen due to missing capabilities in a container.")
self.log.warning("Make sure to --cap-add LINUX_IMMUTABLE if you want to run this test.")
return
self.log.debug("Attempt to restart and reindex the node with the unwritable block file") self.log.debug("Attempt to restart and reindex the node with the unwritable block file")
with self.nodes[0].assert_debug_log(expected_msgs=['FlushStateToDisk', 'failed to open file'], unexpected_msgs=[]): with self.nodes[0].assert_debug_log(expected_msgs=['FlushStateToDisk', 'failed to open file'], unexpected_msgs=[]):