[ZODB-Dev] URGENT: ZODB down - Important Software Application at CERN
Jim Fulton
jim at zope.com
Mon May 25 15:03:43 EDT 2009
On May 25, 2009, at 9:23 AM, Pedro Ferreira wrote:
> 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).
What is in the ZEO server log when this happens?
...
> 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
What was in the ZEO server log when this happened?
Also, how many objects are in your database?
> 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?
Yes, if you open the file-storage read-only (in your ZEO conf, use
"read-only true" in the filestorage section), an index file won't be
written. An in memory index will still be created. I suspect the
problem is occurring when writing the index to disk.
Jim
--
Jim Fulton
Zope Corporation
More information about the ZODB-Dev
mailing list