3 messages in com.mysql.lists.javainfinite loop in 3.0.7
FromSent OnAttachments
Alex Burgel22 Apr 2003 09:29 
Mark Matthews22 Apr 2003 09:50 
Alex Burgel22 Apr 2003 10:07 
Subject:infinite loop in 3.0.7
From:Alex Burgel (al@dailycandy.com)
Date:04/22/2003 09:29:02 AM
List:com.mysql.lists.java

i think i found a case where an infinite loop occurs, resulting in a stack overflow.

i'm not sure what triggers it because my stack trace isn't long enough, but what basically happens is that an exception occurs in execSQL, causing it to cleanup, which executes a rollback. but to execute a rollback it has to call execSQL again, which generates another exception, and it goes on from there.

i'm not sure what the solution should be, but maybe something along the lines of just shutting down when a rollback fails, instead of trying to do a clean up.

here's the partial stack trace:

java.lang.StackOverflowError at java.lang.Exception.<init>(Exception.java:33) at java.io.IOException.<init>(IOException.java:38) at java.net.SocketOutputStream.socketWrite(Native Method) at java.net.SocketOutputStream.write(SocketOutputStream.java:91) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:67) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:125) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1478) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1405) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:879) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:945) at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:917) at com.mysql.jdbc.Connection.execSQL(Connection.java:1841) at com.mysql.jdbc.Connection.execSQL(Connection.java:1787) at com.mysql.jdbc.Connection.execSQL(Connection.java:1768) at com.mysql.jdbc.Connection.rollbackNoChecks(Connection.java:1369) at com.mysql.jdbc.Connection.rollback(Connection.java:1356) at com.mysql.jdbc.Connection.close(Connection.java:1028) at com.mysql.jdbc.Connection.cleanup(Connection.java:2050) at com.mysql.jdbc.Connection.execSQL(Connection.java:1853) at com.mysql.jdbc.Connection.execSQL(Connection.java:1787) at com.mysql.jdbc.Connection.execSQL(Connection.java:1768) at com.mysql.jdbc.Connection.rollbackNoChecks(Connection.java:1369) at com.mysql.jdbc.Connection.rollback(Connection.java:1356) at com.mysql.jdbc.Connection.close(Connection.java:1028) at com.mysql.jdbc.Connection.cleanup(Connection.java:2050) at com.mysql.jdbc.Connection.execSQL(Connection.java:1853) at com.mysql.jdbc.Connection.execSQL(Connection.java:1787) at com.mysql.jdbc.Connection.execSQL(Connection.java:1768)

it goes on and on like this for a while. i had a couple of these this morning and they ended up crashing my VM. i just upgraded to 3.0.7 last night. this didn't occur with 3.0.6 (though i hadn't been running that for too long, maybe a week or so).

--alex