[ZODB-Dev] [Errno 27] File too large

Jim Fulton jim@zope.com
Tue, 25 Sep 2001 19:01:46 -0400


Jeremy Hylton wrote:
> 
> >>>>> "JF" == Jim Fulton <jim@zope.com> writes:
> 
>   >> I assume that a pack removes this data.  If it doesn't, then
>   >> that's a shocking oversight.
> 
>   JF> It does, but it throws away any subsequent transactions. The
>   JF> same thing happens on startup.  This is pretty
>   JF> serious. Fortunately, this kind of failure should be extremely
>   JF> rare.
> 
> Why does it throw away subsequent transactions?  The truncate occurs
> during the tpc_abort() when it's operating on the most recent
> transaction.  There shouldn't be any transaction data in the file
> after the current transaction.

The abort itself should throw it away. Pack and startup
code assumes that if it encounters a transaction marked with a 't', 
then the application died after it *started to* vote yes and before it
could finish the commit.  The transaction might be incomplete.
In any case, only a serious failure should leave a transaction with 
the 't' status. 

Jim

--
Jim Fulton           mailto:jim@zope.com       Python Powered!        
CTO                  (888) 344-4332            http://www.python.org  
Zope Corporation     http://www.zope.com       http://www.zope.org