server closed the connection unexpectedly

Hallo,

ich bekomme bei einer meiner abfragen manchmal die folgende Fehlermeldung:

OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

hab jetzt mal eine test methode geschrieben:

def test():
    connection = psycopg2.connect(db.login_lending_string)
    cur = connection.cursor()
    cur.execute("SELECT * FROM udf_get_dependencytree('aib.nbp.cas','cards','4.3.6.1',Null)")
    result_set = cur.fetchall()

    cur.close()
    connection.commit()
    connection.close()
    
    #print result_set[0]

Diese function rufe ich jetzt testweise 100 mal hintereinander auf, machmal klappt das alles und machmal (ca. in 50% der fälle) bekomme ich die oben genannt fehlermeldung.
Also meine frage ist letztlich wann sieht sich die DB gezwungen die Connection zu schließen? Wenn zu viele connections offen sind? aber das kann doch eigentlich hier nicht der fall sein, schließt doch die connection doch immer wieder.
Bin für jede hilfe dankbar.

Das deutet eher darauf hin, das der Server (bzw. der aktuelle Prozess) abgestürzt ist.

Was steht denn konkret im Fehlerlog der Datenbank?

also ich hab jetzt in der log file folgenden eintrag gefunden (nachdem ich den fehler nochmal verursacht habe):

2008-08-17 21:36:12 BST LOG: loaded library “$libdir/plugins/plugin_debugger.dll”
2008-08-17 21:36:12 BST LOG: loaded library “$libdir/plugins/plugin_debugger.dll”
FATAL: could not reattach to shared memory (key=400, addr=02800000): 487

Sieht ja schonmal schlecht aus…

Hast du vielleicht eine Idee was da falsch läuft?

Irgendetwas spielt da verrückt.

Der Debugger vielleicht? Hast du sonst noch irgendwelche Module geladen?

hi,

wie bekomme ich das denn raus ob der debugger schuld ist?
Bitte nicht schlagen, bin neu in Postgres, aber was meinst du jetzt mit module?

Na offensichtlich wird dort ein Plugin für den Debugger geladen. Gibt es noch weitere Module/Plugins, die geladen werden?

also von den modulen verwende ich nur xml2, aber eigentlich nicht in der aufgerufenen function.
Also im allgemeinen fummel ich noch mit PL/Python rum, aber auch das betrifft nicht die angesprochen Function.

Wenn ich mir so die logfile anschau werden, ausser dem debugger nix anders geladen.

Frag mal Google, IMHO gab es da mal Probleme unter Win.

Welche Version, welches OS hast Du?

Andreas

Also OS is Vista (Sorry, :smiley: ) und pg version 8.3.1

Bei google finde ich zwar eine ähnlichen error (FATAL: could not reattach to shared memory Invalid argument
), oder was mit could not write logfiles.

Aber halt nicht meinen mit 487 am Ende. Also ich muss das nochmal ausprobieren, aber ich meine auf der Arbeit läuft alles. Da hab ich halt ne XP maschine stehen mit der geleichen pg Version. Der fehler tritt da net auf, glaube ich zumindest.

Dann schmeiss doch mal den Debugger heraus und schau, ob es damit funktioniert.

Hallo!

Keine Ahnung ob das was hilft, aber welche Version von psycopg2 benutzt du denn? Die Version 2.0.6 hat bei mir jede Menge Ärger gemacht. Oder hast du auch mit anderen Adaptern/SW Probleme? Unter Vista kenn ich mich allerdings auch nicht aus.

Gruß Uwe

hi,

auf meiner maschine auf der arbeit tritt der fehler nicht auf. Kann jetzt zwei ursachen haben, ersten er liegt an Vista (hier habe ich XP) oder wie Gisman sagt liegts an pycopg2 --> auf der Arbeit verwende ich vesion 2.07 und daheim glaube ich 2.06 (ganz sicher bin ich jetzt net).

hi,

also daheim habe ich auch psycopg2 version 2.0.7, daran lags wohl net.
Zu der sache mit dem debugger, wie schmeisse ich den denn raus? einfach aus dem plugin verzeichnis nehmen klappt wohl ehr nicht.

Hum, gute Frage, nächste Frage. Was passiert, wenn du die Datei aus dem Verzeichnis nimmst und die Datenbank neu startest?

uhhhi wenn ich plugin_debugger.dll aus dem plugin verzeichnis rausnehme geht nix mehr. Die DB kommt nach dem nachstart garnicht mehr hoch…

Also hab jetzt auf Python 2.5.2 aufgerüstet. (von 2.5.1) jetzt ist der fehler nur noch einmal aufgetreten. hab jetzt 4000 testabfragen abgefeuert und der Fehler ist halt nur noch einmal aufgeteten (von vorher bei allen 4 abfragen).
Also optimal ist es nicht, aber es läuft, das reicht mir :smiley:

Hmmm.

Steht irgendwas im Log der Datenbank, wenn sie nicht starten will?

also nachdem ich die debugger.dll rausgenommen hab, habe ich folgenden eintrag in der log gefunden:

2008-08-18 20:52:04 BST FATAL: could not access file “$libdir/plugins/plugin_debugger.dll”: No such file or directory

Hmm, es gibt Funktionen, die diese Library benötigen. Ev. müsstest du diese Funktionen (oder das gesamte Paket) auch deinstallieren/löschen.