ultramysql
ultramysql copied to clipboard
umysql can hang forever
I've found the frequently when starting a large number of simultaneous jobs that all hit a MySQL server at once, sometimes umysql will hang indefinitely when trying to connect. Stacktrace is:
(gdb) bt
#0 0x00007f64612d14cc in recv () from /lib/x86_64-linux-gnu/libpthread.so.0
#1 0x00000000004fb139 in ?? ()
#2 0x0000000000510b4b in ?? ()
#3 0x00000000004cbb0a in PyObject_CallMethodObjArgs ()
#4 0x00007f645e2ee69c in API_recvSocket (sock=0x4f03d00, buffer=0x7f644774b010 "", cbBuffer=cbBuffer@entry=65536) at ./python/io_cpython.c:229
#5 0x00007f645e2ef1c0 in Connection::readSocket (this=this@entry=0x5301720) at ./lib/Connection.cpp:153
#6 0x00007f645e2ef264 in Connection::recvPacket (this=this@entry=0x5301720) at ./lib/Connection.cpp:354
#7 0x00007f645e2efd84 in Connection::connect (this=0x5301720, _host=
_password=<optimized out>, _database=<optimized out>, _autoCommit=0x0, _charset=MCS_utf8_general_ci) at ./lib/Connection.cpp:487
#8 0x00007f645e2ee8aa in UMConnection_Connect (conn=
_password=<optimized out>, _database=<optimized out>, _autoCommit=0x0, _charset=33) at ./lib/capi.cpp:84
#9 0x00007f645e2ed74e in Connection_connect (self=0x510fcd8, args=
Interesting, have you been able to figure out a repro for this?
Happens basically every time I fire up a ton of jobs at once, but I don't have a small test case that reproduces
Do you have a repro with any other driver for MySQL? Being stuck in the recv syscall would indicate that you've just sent your query and are expecting result data from the server which for some reason is never received.
What does the SQL server say about what these jobs are doing?
I haven't tried with the standard python driver. I filed the bug a while ago, so unfortunately I'm not using the exact setup I had back then. (I'm not complaining about response time, just saying that my setup has changed a bit).
My real concern was that there should be some kind of timeout somewhere in that call stack where umysql throws an exception if it hasn't heard anything back at all in X minutes.
On Tue, Oct 21, 2014 at 2:19 AM, Jonas Tärnström [email protected] wrote:
Do you have a repro with any other driver for MySQL? Being stuck in the recv syscall would indicate that you've just sent your query and are expecting result data from the server which for some reason is never received.
What does the SQL server say about what these jobs are doing?
— Reply to this email directly or view it on GitHub https://github.com/esnme/ultramysql/issues/53#issuecomment-59888463.