Zope dies unexpectedly (segfault?)
Hello, I have a database that I am trying to update, that for various reasons, I cannot get a direct connection to. I use an external class that I have used in other situations with no problems Thus, I have a setup that looks like the following: Form -> -> script that processes the form, outputs dict -> -> script that takes dict, calls external method -> -> external method that updates db, returns num rows updated -> -> script that formats output for web -> Output display in browser I have each step here covered with try/excepts, especially the call out to the external method. Here is the text of the external method: import sys, traceback from team.database import interface def exceptional_circumstances(): return '<br>'.join(traceback.format_exception(*sys.exc_info())) def update_adapter(self, updates, key, commit=0): try: db = interface.DB() updates = db.split_update(updates) result = db.standard_update_by_key(updates, key, commit) except: return exceptional_circumstances() return result I have used this same interface before from different contexts, but when I try to use it here, Zope (apparently) segfaults. A python core file is left behind, and no trace of any exception is logged in any log that I can find. (checked /error_log, the zeo log, and the zope process log on disk) Does anybody know why this is happening? Has anybody seen something similar, or better yet, fixed something similar? Thanks, VL
Missing information: Zope 2.6.1, running through the fastcgi adapter to Apache 1.3.26 Python 2.2.2
VanL wrote at 2003-7-23 10:46 -0600:
... I have used this same interface before from different contexts, but when I try to use it here, Zope (apparently) segfaults. A python core file is left behind, and no trace of any exception is logged in any log that I can find. (checked /error_log, the zeo log, and the zope process log on disk)
Does anybody know why this is happening?
No.
Has anybody seen something similar, or better yet, fixed something similar?
A long time ago, I had to analyse a similar situation. It turned out to be a memory corruption caused by the Oracle client library. You get a "core" file? Open it in the debugger ("gdb"). When Python died from a segfault, the debugger should tell us. You should also see where Python died. This may give a valuable hint on the why. Dieter
participants (2)
-
Dieter Maurer -
VanL