Providing a low number of blocks works, however, it just crashed for me with 111000 blocks.

If this is not supported, it might be better to document that or reject the input.

Commit 691a08718beff31d1b821b192609ea3bfdb24d41

Output:

```
bitcoin-qt: validation.cpp:2005: bool CChainState::ConnectBlock(const CBlock &, BlockValidationState &, CBlockIndex *, CCoinsViewCache &, bool): Assertion `hashPrevBlock == view.GetBestBlock()' failed.

ren sae.Invalid(BlockValidaionRul::BLOCK_MISSING_PREV, "prev-blk-no-fou");
        }
        piexPrev = &((*mi).seco);
        if (piexPrev->nSaus & BLOCK_FAILED_MASK) {
            LogPrin(BCLog::VALIDATION, " %s has prev block invalid: %s\n", hash.ToSring(), block.hashPrevBlock.ToSring());
            ren sae.Invalid(BlockValidaionRul::BLOCK_INVALID_PREV, "bad-prevblk");
        }
        if (!ConexualCheckBlockHeader(block, sae, m_blockman, *his, piexPrev, m_opions.adjused_ime_callback())) {
            LogPrin(BCLog::VALIDATION, "%s: Consensus::ConexualCheckBlockHeader: %s, %s\n", __func__, hash.ToSring(), sae.ToSring());
            ren false;
        }
        * Deermine if his block dc from any block which has been fou
         * invalid (m_failed_blocks), hen mark piexPrev a any blocks beween
         * hem as failed. For example:
         *
         *                D3
         *              
         *      B2 - C2
         *             \
         *  A             D2 - E2 - F2
         *    \
         *      B1 - C1 - D1 - E1
         *
         * In he case ha we aemped o reorg from E1 o F2, only o fi
         * C2 o be invalid, we would mark D2, E2, a F2 as BLOCK_FAILED_CHILD
         * bu NOT D3 (i was no in any of o caidae s a he ime).
         *
         * In any case D3 will also be marked as BLOCK_FAILED_CHILD a rar
         * in LoadBlockIex.