Dittmar, Daniel wrote:
sometimes (when many clients are working intensively at the same time)
I get the following error to the console of the server:

ERR -11608 COMMUNIC sql03_request: wrong connection state, state is 'requested'


Please add some traces to vin77.c:requestReceive
 #else
     rc = i28requestForPython (session, NULL);
     /* printf("<session %p>\n", session); */
+    printf("request: communication id: %d; threadid: %x; rc: %d\n",
+        session->reference, pthread_self (), rc);
     if (rc == cin01_db_ok) {
         Py_BEGIN_ALLOW_THREADS
         rc = i28receiveForPython (session, NULL);
+        printf("receive: communication id: %d; threadid: %x; rc: %d\n",
+            session->reference, pthread_self (), rc);
         /* printf("</session %p>\n", session); */
         Py_END_ALLOW_THREADS
     }

You need to include pthread.h somewhere in the file.

It could also be helpful to printf something in connect_sql:
printf ("Python object: %p\n", newObj) is hopefully the same hexid that
you get when printing a session object in python.
printf ("communication id: %d", newObj->nself->reference) would be the
same id that you output above.

Together, this might give some indication about which sessions are
having problems.



Hello, Daniel


This is not the Problem......


I did some more analyzing...... The Database sometimes seems to kick one thread with an error -8888. Then my thread notifies the client and gets kicked. Before it gets kicked the thread tries to disconnect the database:

try:    self._connection.rollback()
except: pass
try:
        _lock.acquire()
        try:    self._connection.release()
        except: pass
finally:
        _lock.release()
        del self._connection


The complete thing gets killed by a segmentation fault. It happens only in combination with the 8888 error.

I suspect that something in the destructor doesnt notice the
damaged connection and produces the seg-fault.


Thank you very much in advance for your help, greetings, Andre'









By the way: What does the Garbagecollector with unclosed connections?


Sessions are closed when the last reference is dropped. This will send a
last ROLLBACK command to the kernel. So if a session gets released while
a command is pending, the error message above could happen. But unless
I've fouled up reference counting again, the session object should keep
at least one reference while in the execute call.

Daniel Dittmar



--
__________________________________________________________________________

Als Technologieunternehmen konzipieren und entwickeln wir maÃgeschneiderte 
Feedback- und
Monitoring-Systeme - wie beispielsweise LÃsungen fÃr Beschwerde- und 
Ideenmanagement.
Mit dem Inquery Survey Server bieten wir eine der leistungsfÃhigsten 
StandardlÃsungen fÃr
Online-Umfragen mit dem Schwerpunkt auf der Messung von Kundenzufriedenheit an.
__________________________________________________________________________


Inworks GmbH Andre Reitz, Leiter Entwicklung HÃrvelsinger Weg 39, 89081 Ulm, Germany Tel +49 (0) 731 / 93807-21 Fax +49(0)731/93807-18 Internet: http://www.inworks.de



--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to