• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.2 Site Crash - Help!

#1
Well, my day has just been made. I just recently moved to a new webhost (MDDHosting) about half a month ago. My forum has run flawlessly up until about an hour ago when it simply stopped rendering. I got the following from my webhost after about an hour. The site is back up but showing posts from half a month ago. I am deeply despondent as I was thrilled with my new host and how fast everything was running. Can anybody clue me in as to what if anything I can do or even what happened? I had made no changes whatsoever to my site in weeks. Thanks! (running XF 1.2.4)

I was able to restore an older backup of the database but, that said, I'm unable to restore a newer copy due to this error:
ERROR 1005 (HY000) at line 539: Can't create table 'domain_name.xf_admin_template_modification_log' (errno: -1)

My research indicates that this is due to a column name in the table matching the name of an internal InnoDB column:
====
1005 (ER_CANT_CREATE_TABLE)

Cannot create table. If the error message refers to error 150, table creation failed because a foreign key constraint was not correctly formed. If the error message refers to error –1, table creation probably failed because the table includes a column name that matched the name of an internal InnoDB table.
====
http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html

I have placed the 'domain_name.sql' file within your home directory - you will need to get with your script developer for assistance with restoring this file as you will likely need to conduct database modifications and the software will likely need modified as well.
 

Mike

XenForo developer
Staff member
#2
That error message is misleading because it's not going to be an internal column. From http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html:
You cannot create a table with a column name that matches the name of an internal InnoDB column (including DB_ROW_ID, DB_TRX_ID, DB_ROLL_PTR, and DB_MIX_ID). In versions of MySQL before 5.1.10 this would cause a crash, since 5.1.10 the server will report error 1005 and refers to error –1 in the error message. This restriction applies only to use of the names in uppercase.
None of those are in the table and this isn't something we've ever had reported before.

Unfortunately, it's clear your host has run into data corruption and has attempted to recover from it. It sounds as if there are still remnants of the old data there. You can see references to that in these cases:

http://stackoverflow.com/questions/15152857/mysql-error-code-1005-errno-1
http://stackoverflow.com/questions/...e-with-underscore-in-table-name-mysql-v5-5-14

The latter indicates that there may be more information in the actual MySQL error log. The former refers to creating a new database to get away from the old one (possibly for the same reasons as mentioned in the other question). Regardless, these are very likely options that your host would need to take.
 
#4
You were spot on, Mike. My host has had silent file corruption issues on my server. When I gave them your response (above), they came back stating that today's issue is in fact due to SSD caching problems (which - just my luck - render all recent backups duds, too). My forum is up and running again but I've lost a week of data. My own last backup is a day older than the one my host was able to restore (from the 24th). I'm really disappointed in this host. They started off so well and in just 3 weeks they managed to have two hardware issues and lose over a week of my data. I know I'm responsible for my own data but still.

My worry now is whether my current database could be corrupt or not. Is it possible to have a functioning but still corrupted database/forum? Should I roll back to my original dataset from 3 weeks ago (when I first came on board with MDDHosting) to avoid any lingering/continuing corruption, or am I safe to go on with my current dataset? Thanks for your help!