Intermittent issue in feature_assumeutxo.py", line 629, in run_test assert not self.has_blockfile(n1, “00002”), “too many blockfiles” #33635

issue maflcko openend this issue on October 15, 2025
  1. maflcko commented at 7:15 pm on October 15, 2025: member

    Seen locally in https://drahtbot.space/temp_scratch/feature_assumeutxo_265.tar.zstd:

    commit should be roughly 40e7d4cd0d7f1d922b92b0c640d3d89eef059411 and the command was RUN_UNIT_TESTS=false MAKEJOBS="-j8" FILE_ENV="./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh" ./ci/test_run_all.sh

     0 node1 2025-10-15T18:56:48.763939Z [shutoff] [txdb.cpp:151] [virtual bool CCoinsViewDB::BatchWrite(CoinsViewCacheCursor &, const uint256 &)] [coindb] Writing final batch of 0.00 MiB 
     1 node1 2025-10-15T18:56:48.763948Z [shutoff] [txdb.cpp:153] [virtual bool CCoinsViewDB::BatchWrite(CoinsViewCacheCursor &, const uint256 &)] [coindb] Committed 0 changed transaction outputs (out of 0) to coin database... 
     2 node1 2025-10-15T18:56:48.763958Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write coins cache to disk (0 coins, 256KiB) completed (0.02ms) 
     3 node1 2025-10-15T18:56:48.763966Z [shutoff] [validationinterface.cpp:246] [void ValidationSignals::ChainStateFlushed(ChainstateRole, const CBlockLocator &)] [validation] Enqueuing ChainStateFlushed: block hash=5d3144f90878dbabd3a42352be3294df923c93198e1399b93d07292c9cd1e1ce 
     4 node1 2025-10-15T18:56:48.763997Z [shutoff] [validation.cpp:2837] [bool Chainstate::FlushStateToDisk(BlockValidationState &, FlushStateMode, int)] [coindb] Writing chainstate to disk: flush mode=ALWAYS, prune=0, large=0, critical=0, periodic=0 
     5 node1 2025-10-15T18:56:48.764007Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write block and undo data to disk started 
     6 node1 2025-10-15T18:56:48.764041Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write block and undo data to disk completed (0.03ms) 
     7 node1 2025-10-15T18:56:48.764050Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write block index to disk started 
     8 node1 2025-10-15T18:56:48.764061Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write block index to disk completed (0.01ms) 
     9 node1 2025-10-15T18:56:48.764067Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write coins cache to disk (0 coins, 256KiB) started 
    10 node1 2025-10-15T18:56:48.764076Z [shutoff] [txdb.cpp:151] [virtual bool CCoinsViewDB::BatchWrite(CoinsViewCacheCursor &, const uint256 &)] [coindb] Writing final batch of 0.00 MiB 
    11 node1 2025-10-15T18:56:48.764083Z [shutoff] [txdb.cpp:153] [virtual bool CCoinsViewDB::BatchWrite(CoinsViewCacheCursor &, const uint256 &)] [coindb] Committed 0 changed transaction outputs (out of 0) to coin database... 
    12 node1 2025-10-15T18:56:48.764092Z [shutoff] [logging/timer.h:58] [void BCLog::Timer<std::chrono::duration<long long, std::ratio<1, 1000>>>::Log(const std::string &) [TimeType = std::chrono::duration<long long, std::ratio<1, 1000>>]] [bench] FlushStateToDisk: write coins cache to disk (0 coins, 256KiB) completed (0.02ms) 
    13 node1 2025-10-15T18:56:48.764100Z [shutoff] [validationinterface.cpp:246] [void ValidationSignals::ChainStateFlushed(ChainstateRole, const CBlockLocator &)] [validation] Enqueuing ChainStateFlushed: block hash=6d9186a0db6df121d2006c40c7827c447afe6329b705666bca1744b72c71f0ad 
    14 node1 2025-10-15T18:56:48.767027Z [shutoff] [init.cpp:410] [void Shutdown(NodeContext &)] Shutdown done 
    15 test  2025-10-15T18:56:48.791717Z TestFramework.node1 (DEBUG): Node stopped 
    16 test  2025-10-15T18:56:48.791816Z TestFramework (INFO): Checking that blocks are segmented on disk 
    17 test  2025-10-15T18:56:48.791990Z TestFramework (ERROR): Unexpected exception 
    18                                   Traceback (most recent call last):
    19                                     File "/ci_container_base/test/functional/test_framework/test_framework.py", line 198, in main
    20                                       self.run_test()
    21                                     File "/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/test/functional/feature_assumeutxo.py", line 629, in run_test
    22                                       assert not self.has_blockfile(n1, "00002"), "too many blockfiles"
    23                                   AssertionError: too many blockfiles
    
  2. maflcko added the label CI failed on Oct 15, 2025
  3. b-l-u-e commented at 2:30 pm on January 26, 2026: contributor

    Seen locally in https://drahtbot.space/temp_scratch/feature_assumeutxo_265.tar.zstd:

    i tried studying from the report shared above realized that maybe the assertion assert not self.has_blockfile(n1, "00002") was too strict perhaps maybe we can condition it because segmentation works as expected

    coz with -fastprune it does 64KB blockfiles… coz node1 runs two chainstates concurrently NORMAL and ASSUMED…so this segmentation keeps their blocks separate

    so when NORMAL syncs enough blocks to fill blk00000.dat it creates blk00002.dat

    from node1/regtest/debug.log

    0[assumed] initializing blockfile cursor to BlockfileCursor(file_num=1)
    1...
    2Leaving block file 0: CBlockFileInfo(blocks=242, size=65331, heights=0...240) (onto 2) (height 241)
    

    i think or rather maybe test should verify segmentation works blk00001.dat exists for ASSUMED blocks not just limit to 2 files

  4. maflcko commented at 6:23 pm on January 27, 2026: member
    I think this is -stopatheight not working?
  5. maflcko commented at 6:26 pm on January 27, 2026: member

    Hmmm, maybe not, because this diff is passing:

     0diff --git a/test/functional/feature_assumeutxo.py b/test/functional/feature_assumeutxo.py
     1index 20ebd823d1..959b3bbd9a 100755
     2--- a/test/functional/feature_assumeutxo.py
     3+++ b/test/functional/feature_assumeutxo.py
     4@@ -606,7 +606,7 @@ class AssumeutxoTest(BitcoinTestFramework):
     5         assert signed_txid in n1.getrawmempool()
     6         assert not n1.gettxout(prev_tx['txid'], 0)
     7 
     8-        PAUSE_HEIGHT = FINAL_HEIGHT - 40
     9+        PAUSE_HEIGHT = FINAL_HEIGHT 
    10 
    11         self.log.info("Restarting node to stop at height %d", PAUSE_HEIGHT)
    12         self.restart_node(1, extra_args=[
    

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-01-28 09:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me