After updating BYOND this morning, one of my projects began crashing immediately upon load. I have determined that the issue is MySQL-related; I use a MySQL saving system, and the character queries are crashing the game at start-up.
I believe the problem is related to my calls to Dantom.DB's GetRowData() function, though I am calling it indirectly through Alathon's SimpleMySQL library.
Calling GetRowData() on my database crashes both Seeker and Daemon, on at least two separate database tables. There is a copy of the same game, compiled yesterday, running on a Unix server right now, and it has no problem accessing the same database. If I disable GetRowData() to prevent the crash, I do not receive any errors on the query itself.
Code Snippet to Reproduce Problem:
var/DBQuery/DQ = mysql.CreateQuery()
if(istype(DQ,/DBQuery))
DQ.Execute(SQLFormat_Select(TABLENAME,"*","WHERE ownerkey = '[ownerkey]'"))
while(DQ.NextRow())
var/list/column_data = DQ.GetRowData()
else
world.log << DQ
mysql.dbcon.Connect(mysql.DBI(), mysql.DBUser(), mysql.DBPass())
world.log << mysql.dbcon.ErrorMsg()
Expected Results:
GetRowData() retrieves character information from a DBQuery object.
Actual Results:
The game crashes.
When does the problem occur?
The problem occurs any time that there is at least one row of data to retrieve. This has been replicated on another computer (Windows 7 RC1).
When does the problem NOT occur?
When I disable MySQL access.
Workarounds:
Not using MySQL.
[Edit note: I trimmed the code down to the most important elements]
1) Did this happen in version 442?
2) What version are you running on unix? If it is not 443, it would help to know if it crashes in unix 443.