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