This happens to me that my computer forces qt to exit because my disk is running out of memory

Should we skip syncing or check and show warning beforehand  when disk size available is enough for syncing all blocks?

Also wondering how large free disks should I prepare for syncing all the blocks?
connOptions.m_i2p_accept_incoming = args.GetBoolArg("-i2pacceptincoming", true);
    if (!node.connman->Start(*node.scheduler, connOptions)) {
        return false;
    }
     ********************************************************* Step 13: finished
     At this point, the RPC is "started", but still in warmup, which means it
     cannot yet be called. Before we make it callable, we need to make sure
     that the RPC's view of the best block is valid and consistent with
     ChainstateManager's active tip.
    
     If we do not do this, RPC's view of the best block will be height=0 and
     hash=0x0. This will lead to erroroneous responses for things like
     waitforblockheight.
    RPCNotifyBlockChange(WITH_LOCK(chainman.GetMutex(), return chainman.ActiveTip()));
    SetRPCWarmupFinished();
    uiInterface.InitMessage(_("Done loading").translated);
    for (const auto& client : node.chain_clients) {
        client->start(*node.scheduler);
    }
    BanMan* banman = node.banman.get();
    node.scheduler->scheduleEvery([banman]{
        banman->DumpBanlist();
    }, DUMP_BANS_INTERVAL);
    if (node.peerman) node.peerman->StartScheduledTasks(*node.scheduler);
#if HAVE_SYSTEM
    StartupNotify(args);
#endif
    return true;
}