[Zope] cannot pack ZODB

Chris McDonough chrism@zope.com
31 Jul 2003 09:44:01 -0400


Are you starting your Zope as the root user?  If so, Zope 2.6 doesn't
deal with this very well, as it opens a bunch of files as root, incuding
the database, then switches users during startup to another user.  As
long as the files are kept open everything works ok, but as soon as one
of them is closed and you try to reopen it, it blows up.

You can fix this in one of two ways:

- start Zope as the root user but provide the -u switch to switch
  to the "right" user (zope in your case).

- start Zope as a nonroot user and change file/directory permissions
  as necessary (recommended).

FWIW, Zope 2.7 fixes this issue by not writing any files until it has
setuid'ed.


On Thu, 2003-07-31 at 09:31, duchier@ps.uni-sb.de wrote:
> I am still a newbie and today I tried to pack my ZODB, but that's not
> working.  Turning debugging on doesn't help much:
> 
> 2003-07-31T15:18:36 ERROR(200) ZODB packing
> Traceback (innermost last):
>   File /usr/share/zope/zope-2.6.1/lib/python/ZODB/DB.py, line 499, in pack
>   File /usr/share/zope/zope-2.6.1/lib/python/ZODB/FileStorage.py, line 1496, in pack
>     (Object: /var/lib/zope/zope-2_6_1/var/Data.fs)
> IOError: [Errno 13] Permission denied: '/var/lib/zope/zope-2_6_1/var/Data.fs'
> 
> How is it possible that I can edit my ZODB just fine (through plone),
> but I cannot pack it?  Apparently, it fails on attempting to open
> Data.fs for reading (i.e. file=open(name, 'rb')).  The file is owned
> by user zope and group zope-2_6_1, with rw permissions for both.
> 
> Any ideas? I am stumped!
-- 
Chris McDonough <chrism@zope.com>
Zope Corporation