We just ran into a peculiar malfunction with MySQL inserting data successfully, but the rows it was inserting were not actually saved and the inserted ID's were of rows inserted about 20 records ago (which translates to about 20 minutes at our rate).
1) Our application processes a request and inserts a bunch of records. No errors were thrown during this process. There a number of inserts going on here, 8 or 9 connected through FK's.
At the end of each request we send an email report which includes information about the request, like the inserted ID's.
2) I got one of these email reports and went to check on it by looking it up by ID. The ID was for a completely different record inserted about 20 minutes ago. I scour the database and the "real" new row doesn't appear to be there at all, or any of the related tables.
3) This happens about 8 times before I decide to take a shot in the dark and restart MySQL. The next request and everything since has been processed normally--apparently the problem has fixed itself.
So my question is what could've caused this and how do I check for evidence of a possible fault? I'd've guessed a hardware failure of some kind, but is there some way I can confirm it?
MySQL version: 5.1.62-0ubuntu0.10.04.1-log