This forum has been archived. Please start a new discussion on GitHub.

multiple IceStorm instances in an IceBox cannot share Freeze DB

Ice 3.3.1 / Linux (Ubuntu)

If you gracefully shut down IceBox running more than one IceStorm instance using the same Freeze DB, you're left with a corrupt database.

For this to happen, IceBox has to be configured with more than one instance of IceStorm.

With nothing else going on (no connections, everything quiescent), I kindly issue a shutdown command with iceboxadmin, the process exits, and I try to restart it.

Both IceStorm instances are using the same DB.

I tried the DbRecoverFatal option found in another post, but this doesn't fix it.

icebox --Freeze.DbEnv.IceStormEvent.DbRecoverFatal=1 --Ice.Config=./config/TTOrderServer.IceBox_localdev.config
[ 09/17/10 06:52:45.206 icebox: Berkeley DB: DbEnv "IceStormEvent": DB_LOGC->get: LSN 1/35604: invalid log record header ]
[ 09/17/10 06:52:45.206 icebox: Berkeley DB: DbEnv "IceStormEvent": Log file corrupt at LSN: [1][35690] ]
[ 09/17/10 06:52:45.206 icebox: Berkeley DB: DbEnv "IceStormEvent": PANIC: Invalid argument ]
09/17/10 06:52:45.207 icebox: error: exception while starting IceStorm service IceStormEvent:
SharedDbEnv.cpp:550: Freeze::DatabaseException:
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery


  • mes
    mes California
    Hi John,

    Welcome to the forum.

    Two (or more) instances of IceStorm cannot share the same database environment, so the errors you're seeing are not surprising.

    Please note that we only provide free support here on the forum for the most recent Ice release.