I found a couple of games which had disappearing units again, I fixed those and checked through the code and found no problems (the code has worked fine for almost a year, and only certain records were affected, so it wasn't likely to be the problem)
The SQL which inserts the record does join three types of table, MyISAM, InnoDB and memory, which shouldn't cause problems but I changed the memory table to be InnoDB as a precaution
Also I noticed some users were running the gamemaster.php themselves, so I've reenabled the gamemaster password. The database should lock people out of causing problems by running multiple gamemaster.php, but with the database acting up this is an extra measure
Theres also a check that moves get inserted, so if the problems continue at least it'll realize and roll back the process before things are saved, and I'll have some data from the crash logs on why it happens
After running the process script (on the dev server, then here) it didn't find any new moveless games and didn't bring up any errors. Maybe the table type change had an effect, maybe it's just a really rare problem and it'll occur again. Either way there shouldn't be any problems, so hopefully no more messed up games
Sorry for the delays, hopefully there'll be no more surprises before 0.83 comes out, which will have more checks to make sure the database isn't messing up