To follow up on the gdb session, I attempted to get a stack trace from there by calling the C function PyRun_SimpleString. At first, this resulted in a STOP signal being sent. Then, by setting the unwindonsignal option, it was finally possible to obtain a stack trace:
(gdb) set unwindonsignal on
(gdb) call PyRun_SimpleString("import sys, traceback; sys.stderr=open('/tmp/trace.log','w',0); traceback.print_stack()")
$1 = 0
In the output, there is unfortunately not much more information than has already been gathered. It basically shows that Python is blocked on the UPDATE query made to the PostgreSQL database:
...
File "/srv/trunk.certification.canonical.com/certify-storm/storm/database.py", line 284, in raw_execute
self._check_disconnect(raw_cursor.execute, *args)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/database.py", line 325, in _check_disconnect
return function(*args, **kwargs)
File "<string>", line 1, in <module>
To follow up on the gdb session, I attempted to get a stack trace from there by calling the C function PyRun_SimpleString. At first, this resulted in a STOP signal being sent. Then, by setting the unwindonsignal option, it was finally possible to obtain a stack trace:
(gdb) set unwindonsignal on ing("import sys, traceback; sys.stderr= open('/ tmp/trace. log','w' ,0); traceback. print_stack( )")
(gdb) call PyRun_SimpleStr
$1 = 0
In the output, there is unfortunately not much more information than has already been gathered. It basically shows that Python is blocked on the UPDATE query made to the PostgreSQL database:
... certification. canonical. com/certify- storm/storm/ database. py", line 284, in raw_execute _check_ disconnect( raw_cursor. execute, *args) certification. canonical. com/certify- storm/storm/ database. py", line 325, in _check_disconnect
File "/srv/trunk.
self.
File "/srv/trunk.
return function(*args, **kwargs)
File "<string>", line 1, in <module>