Results 1 to 3 of 3

Thread: Why does Evictor throw the following exception?

  1. #1
    kent is offline Registered User
    Name: quhao
    Organization: OPI
    Project: Testing
    Join Date
    Jul 2005
    Posts
    24

    Why does Evictor throw the following exception?

    Hi,
    I am using Ice-3.0.0 's Evictor to hold my servant objects whose size is a little big than 4K, when fetching it from Evictor, the following exception is often throwed:

    icebox: warning: dispatch exception: ObjectStore.cpp:353: Freeze: atabaseException:
    Db::get: Dbt not large enough for available data: Cannot allocate memory

    What's the problem?When I use Ice-2.1.2 a few days ago, I have never got this problem even though the servant object is a little big too. Why?
    Best Regards,

    Hao.Qu
    Information Science & Engineering
    LiaoNing Institute of Technology
    http://www.lnit.edu.cn/inter/index.asp

    Middle Service for Web Site

  2. #2
    xdm's Avatar
    xdm
    xdm is online now ZeroC Staff
    Name: Jose Gutierrez de la Concha
    Organization: ZeroC, Inc.
    Project: Ice Developer
    Join Date
    Sep 2003
    Location
    La Coruņa, Spain
    Posts
    588

    I Observe the same problem

    I Observing the same problem with Ice-3.0.0 Freeze

    Code:
    FileService-Files: warning: dispatch exception: ObjectStore.cpp:353: Freeze::DatabaseException:
    Db::get: Dbt not large enough for available data: Cannot allocate memory
    identity: FileServer/029C23C2-9B5D-4BC2-BB57-5671EBBD96E6
    facet:
    operation: ice_isA
    with the previous Ice version this not happen

    Any ideas about this problem?


    Thanks

  3. #3
    bernard's Avatar
    bernard is offline ZeroC Staff
    Name: Bernard Normier
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Palm Beach Gardens, FL
    Posts
    1,294
    Thanks for the bug report.

    I've just posted a patch here:
    http://www.zeroc.com/vbulletin/showthread.php?p=8635

    The problem did not occur with Ice 2.1.x because it was using Berkeley DB 4.2.x.

    It's really a bug in Berkeley DB/C++: Berkeley DB 4.3 introduced a new error code, DB_BUFFER_SMALL, to distinguish between expected memory issues (when the buffer provided by Freeze is not big enough) and real out-of-memory error conditions (ENOMEM). Unfortunately the C++ interface of Berkeley DB in 4.3 and 4.4 does not handle well DB_BUFFER_SMALL ... I've reported the bug to Sleepycat. Until it's fixed, Freeze won't distinguish between DB_BUFFER_SMALL and ENOMEM.

    Best regards,
    Bernard
    Bernard Normier
    ZeroC, Inc.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 2
    Last Post: 03-04-2009, 12:28 PM
  2. Replies: 2
    Last Post: 11-18-2008, 09:06 PM
  3. Ice.Current.hashCode() can throw a NPE on null enum
    By joshmoore in forum Bug Reports
    Replies: 1
    Last Post: 08-20-2007, 03:46 AM
  4. what can Monitor::wait() throw?
    By andhow in forum Help Center
    Replies: 4
    Last Post: 02-21-2005, 08:26 AM
  5. Replies: 2
    Last Post: 10-09-2004, 09:18 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •