As Scott has been blogging here, we recently released a new Alagad.com website built ontop of Farcry. The thing is, since we released the site we have been having intermitant problems with errors cropping up in the admin interface which simply say "corrupt table". We quickly discovered a few points about this:
- There are no corrupt tables. Or, more to the point, our data in our database was not corrupt.
- If you restart ColdFusion the errors went away.
I initially assumed this was a but with Farcry and put it on my list of things to fix. Today I spent some time actually looking into the problem and, after trying to rewrite a part of the Farcry core, I realised that Farcry has nothing to do with this. It turns out to be a bug in ColdFusion 8.
I found a discussion related to this on the Adobe forums.
It seems that the cachedWithin attribute on cfquery has a bug which will eventually produce this problem in some sites.
The problem was supposed to be addressed in the first cumlative update, but for some reason was not. It is now slated to be released in the second cumlative update. Watch this page for more information.
Comments on: "ColdFusion Error: corrupt table" (11)
We had the same problem.
There’s a temporary fix that HostMySite is using for boxes that are running CF8. They applied the patch to our box and the issues went away.
More info here: http://www.coldfusionjedi.com/index.cfm/2007/9/28/ColdFusion-8-MySQL-HostMySite-and-NPEs
Also, I tend to watch this page:
Thanks for bringing this to our attention. According to the discussion thread you linked, there is now a hotfix available (apparently an update of an older hotfix that existed for CF7)
Now, I’m trying to figure out if this fix is included in the Cumulative Hotfix 2 package.
The list of fixes includes #70332, which is the number on the JAR file described in the technote linked above.
However, the issue description on the cumulative hotfix page is totally different. (“Cfpdf issue: “Enable Usage Rights” was not working with PDF forms.”)
I guess we’ll have to try it amd see. Is the use of cachedwithin really this rare? I’m amazed Adobe isn’t treating this error like the serious bug that it seems to me to be.
The HostMySite proposed solution works 100%.
You can find some more information on my last post, here:
Um, the hostmysite thing is a solution to a different problem. The HostMySite thing is about Null Pointer Exceptions with MySQL tables; this hotfix is for “Currupt Table” errors when accessing any kind of database using the “cachedwithin” attribute. Totally separate issues.
When running a MySQL database using the new CF8 “CachedWithin” attribute and a CFQueryParam, CF outputs the following error: Corrupt Table.
Run the same script and you’ll see that part of the error detail is “Null pointer Exception.”
Oh, that’s interesting– thing is, we’ve been having the corrupt table issue on Microsoft SQL Server, so the issue isn’t unique to MySQL.
So far, no errors on the new cumulative hotfix– I’ll keep my fingers crossed.
I’m not sure if the issue only applied to MySQL, or if it also applied to other Databases, as well. Because the error is a NPE (java-specific) and rebuilding my MySQL tables made no difference, I’d wager a guess that the issue is database agnostic.
If you reboot the server, the issue should go away for a few queries. I can find out the resolution for you in detail if need be. Just post back here. It was really basic.
Also, this was the solution from Adobe. Their hotfix organization bites:
From my understanding, cumulative hotfixes don’t overwrite individual hotfixes that aren’t included in the jar library.
So you can theoretically install both. Mind you, I’m really a client-side programmer, so tread carefully.
This seems like the most comprehensive blog on this niche