Archived

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

Evictor error: DB_PAGE_NOTFOUND

when i use evictor, sometimes i can catch this:
error: Saving thread killed by exception: MapI.cpp:998: Freeze::DatabaseException:
Db::put: DB_PAGE_NOTFOUND: Requested page not found

and my application is core, why?

Comments

  • bernard
    bernard Jupiter, FL
    This error indicates a problem in the Freeze evictor saving thread, while writing to the database. This kind of error should never happen, and that's why Freeze aborts your process.

    Could you post a test-case that reproduces this crash?
    Also, please include your Ice version, Berkeley DB version, platform etc.

    Thanks,
    Bernard
  • i can't reproduces a crash, i don‘t known when a crash happened, it’s seem to be random
    ice version is 3.1.1
    berkley db version is db-4.3.29.NC
  • in evictorI.cpp,
    function registerFatalErrorCallback is seem to be a bug

    Freeze::FatalErrorCallback
    Freeze::registerFatalErrorCallback(Freeze::FatalErrorCallback cb)
    {
    IceUtil::StaticMutex::Lock lock(fatalErrorCallbackMutex);
    FatalErrorCallback result = fatalErrorCallback;
    return result;
    }


    static Freeze::FatalErrorCallback fatalErrorCallback = 0;


    fatalErrorCallback never be change by cb。。。

    maybe should like this:

    Freeze::FatalErrorCallback
    Freeze::registerFatalErrorCallback(Freeze::FatalErrorCallback cb)
    {
    IceUtil::StaticMutex::Lock lock(fatalErrorCallbackMutex);
    FatalErrorCallback result = fatalErrorCallback;
    fatalErrorCallback = cb;
    return result;
    }
  • bernard
    bernard Jupiter, FL
    Please upgrade to the latest version of Ice. It should be easy, since you're just experimenting with Ice.

    Cheers,
    Bernard