Dear Andreas, Marius,

> This means that you're using ZEO, right?  Have you tried to use strace
> to see what it's doing?  Is it using any CPU time?
>
>   
Yes, we're using ZEO.
It's doing a lot of lseek() and read() calls, i.e.:

read(6, "eq\7cdatetime\ndatetime\nq\10(U\n\7\326\t\r\f"..., 4096) = 4096
lseek(6, 3156590592, SEEK_SET)          = 3156590592
lseek(6, 3156590592, SEEK_SET)          = 3156590592
lseek(6, 3156590592, SEEK_SET)          = 3156590592
lseek(6, 3156590592, SEEK_SET)          = 3156590592
read(6, "\n_authorGenq9(U\10\0\0\0\0\3\v\375\367q:h\5tQU\t"..., 4096) = 4096
lseek(6, 3156594688, SEEK_SET)          = 3156594688
lseek(6, 3156594688, SEEK_SET)          = 3156594688
lseek(6, 3156594688, SEEK_SET)          = 3156594688
lseek(6, 3156594688, SEEK_SET)          = 3156594688
lseek(6, 3156594688, SEEK_SET)          = 3156594688
lseek(6, 3156594688, SEEK_SET)          = 3156594688

And the allocated memory grows up to ~200 MB, data.fs.index.index_tmp is
created, and then the process seems to die and restart (different PID).
It seems to go up to 100% for a significant time (~20 min), then slowly
goes down (moment in which some data seems to be written to index_tmp),
and then comes back to 100% again, repeating it maybe a couple of times
before dying and starting all over again.
>> We tried to restart the database, but the
>> script seems to hang, while trying to create the index:
>>
>> -rw-r--r--   1 root  root  6396734704 May 25 13:21 dataout.fs
>> -rw-r--r--   1 root  root         173 May 25 12:21 dataout.fs.index
>> -rw-r--r--   1 root  root   229755165 May 25 13:22
>> dataout.fs.index.index_tmp
>> -rw-r--r--   1 root  root           7 May 25 12:21 dataout.fs.lock
>> -rw-r--r--   1 root  root    70956364 May 25 13:21 dataout.fs.tmp
>>
>> We tried to do fsrecovery, but it says "0 bytes removed during
>> recovery", and the result ends up being the same. We tried it in
>> different machines, with no success. In one of them, after a while
>> trying to create the index, a Python exception was thrown, saying
>> "maximum recursion depth exceeded".
>>     
>
> I'm not intimately familiar with the internals of ZODB.  If it's doing
> object graph traversals recursively, and if your object graph is very
> deep, you may mitigate this by calling, e.g.
>
>   sys.setrecursionlimit(2 * sys.getrecursionlimit())
>   
OK, we'll give it  a try. Thanks a lot!

We noticed there was a problem when a pack failed (yesterday, around
12:00 CET):

Traceback (most recent call last):
  File "/opt/python24/lib/python2.4/site-packages/MaKaC/tools/packDB.py", line 
24, in ?
    DBMgr.getInstance().pack(days=1)
  File "/opt/python24/lib/python2.4/site-packages/MaKaC/common/db.py", line 
135, in pack
    self._storage.pack(days=days)
  File "/opt/python24/lib/python2.4/site-packages/ZEO/ClientStorage.py", line 
865, in pack
    return self._server.pack(t, wait)
  File "/opt/python24/lib/python2.4/site-packages/ZEO/ServerStub.py", line 161, 
in pack
    self.rpc.call('pack', t, wait)
  File "/opt/python24/lib/python2.4/site-packages/ZEO/zrpc/connection.py", line 
536, in call
    raise inst # error raised by server
RuntimeError: maximum recursion depth exceeded

We were packing a 15GB (which normally results in a 6-7 GB) database.
So, we'll try increasing the recursion depth limit (maybe the process is
dying because it reaches the limit?).

Silly question: is there any way to access (read-only) the data without
generating the index?

Thanks, once again,
We really appreciate your help.

Regards,

Pedro
> ------------------------------------------------------------------------
>
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
>
> ZODB-Dev mailing list  -  ZODB-Dev@zope.org
> http://mail.zope.org/mailman/listinfo/zodb-dev
>   


-- 

José Pedro Ferreira
(Software Developer, Indico Project)

IT-UDS-AVC
CERN
Geneva, Switzerland

Office 513-R-042
Tel. +41 22 76 77159





_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to