[Zope] server dies

Dieter Maurer dieter@handshake.de
Wed, 2 Aug 2000 20:03:07 +0200 (CEST)


Leichtman, David J writes:
 > I was wondering if anyone else had experienced this problem: Ever since we
 > installed the ZPoPy database adapter, the server has been occasionally
 > crashing, and it gets worse and worse over time. Has anyone else experienced
 > this problem? We're running Zope through Apache, on a Solaris box, with
 > PostgreSQL. I'm really curious as to what could be causing this behavior. I
 > know that that adapter is still in development, but it seems like that would
 > be non-desirable behavior :) If there is some way that our setup is causing
 > this, any input would be appreciated. We are also still running the last
 > stable release of Zope (2.1.6, I think) with plans to upgrade next week.

We have a similar problem with Zope 2.1.6 under Solaris 2.7
using ZOracleDA to connect to Oracle 8.1.6, no other C-level
extensions.

Something in the system writes uncontrolled into memory.
Main target is the memory management leading to SIGSEGV
in the function "t_splay" or (occasionally) infinite
loops.

"purify" reports "Write After Free" problems during
release of Oracle database connections and
"Uninitialized Memory Reads" in calls to "wrap_odesc".
Both inside the Oracle 8 Client libraries.

In one test run, purify detected an uncontrolled
write into the heap from inside the "localtime_u"
C library function. The function "tzcpy" was called
writing "GMT" to an indeterminate destination.
"tzcpy", normally, is called just once during
initialization of the "time" module.
I see only one plausible explanation: the data area
of the C library has already been overwritten
(undetected by "purify", which only control writes
into the heap), the resulting heap corruption
was a side effect.

The main problem may be in the Oracle 8 client libraries.
The old Oracle 7 interface used by DCOracle seems to
be no longer documented (i.e. depracated) and maybe
no longer maintained.

But, maybe, the problem is elsewhere: in Zope/Python
the Solaris Thread Library, the C-compiler.

I will keep the list informed.


Dieter