Three Unsolved WordPress Mysteries

Post #527 categorized as WordPress, last updated on Apr 13, 2008
Tagged with errors, htaccess, http, log, php, plugins, WordPress

After several years of using WordPress, I have at least three unanswered questions:

Let’s have a look at each one of these baffling mysteries..

Unsolved Mystery #1: What’s up with the WordPress PHP Memory Error?

Every single day, WordPress generates hundreds of these errors:

[20-Feb-2008 19:49:42] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6316713 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:50:51] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6304873 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:52:20] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6337545 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:52:34] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6269893 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:53:03] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6328897 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:55:26] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6342189 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:56:54] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6328897 bytes) in /home/.../press/wp-includes/cache.php on line 330
[20-Feb-2008 19:57:29] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 6330933 bytes) in /home/.../press/wp-includes/cache.php on line 330
.
.
.
[ + plus hundreds more every day.. (see file link below) ]

To really get a glimpse of the seriousness and frequency of this error, check out this excerpt from a daily PHP error log.

I have addressed this error before, both posing the question and providing a solution, however, the solution is merely a workaround until the underlying issue is resolved. Further, the temporary fix is limited in that it only works on certain server setups. For example, the fix is ineffective and the cache error remains here on A Small Orange servers.

So, I ask the question again, yet with more emphasis and urgency this time: “What’s up with this relentless WordPress PHP cache error?” Surely, somebody out there has some insights, ideas, or inspiration concerning this very problematic issue. Full article treatment to anyone who discovers a solution that works for everyone.

Unsolved Mystery #2: Why do certain phrases trigger “403? — Forbidden” errors when saving or publishing posts?

In a recent article on the WordPress Autosave feature, I mentioned a scenario in which certain words and phrases trigger 403 errors when saving or publishing posts. For apparently no reason whatsoever, inclusion of specific phrases, words, and/or character strings in post content results in the swift return of a 403 - Forbidden error as soon as the “Save” or “Publish” button is activated. Apart from being quite annoying, these unexpected errors somehow trip up the autosave process, causing the autosave function to fail and countless hours of work to be lost completely. Two examples of these mysterious, unutterable phrases are:

To include these phrases in this post, I had to split them up with <code> elements and insert &nbsp; in between the two words in the second example. Not that I need to use these specific phrases in every post, but as my readers know, I tend to cover htaccess quite a bit. Although these workarounds are simple enough, it would be good to finally resolve this long-standing issue. Further, in my experience, there are other character strings that trigger the 403 errors, but I have not yet had the time (or patience) to isolate and identify them. If nothing else, perhaps this information will help WordPress users diagnose unexpected post-publishing errors of their own. What is causing this issue? Have you experienced anything similar? Any ideas..?

Unsolved Mystery #3: What happened to the Plugin Pages in the WordPress Codex?

Whoever decided to remove the original WordPress plugin pages (previously located at: http://codex.wordpress.org/Plugins/) should be slapped upside the head. Those pages were well-known, well-linked, and frequently used by the WordPress community. Users enjoyed access to a “complete” collection of plugin functionality, while plugin developers — who freely contribute time, effort, and resources to the WordPress community — enjoyed the sheer simplicity of posting and updating their projects quickly and easily. Now that the pages have been suddenly and quietly deleted, the link equity that once flowed to developer plugin pages has vanished. What a nice way to say “thanks” to all the folks who have helped to make WordPress the great piece of software it is today.

As an alternative to the orignal plugin archive, we now have an official plugin repository. Unfortunately, the process of adding, updating, and/or editing your plugins consumes a great deal of time, especially if you are unfamiliar with the convoluted protocol required for participation. Further, assuming you are patient and forgiving (or desperate) enough to endure the routine of including and updating your plugins, the new policy requires that you permit WordPress.org to distribute your plugins directly from their domain. Yes, you may provide a link to the plugin home page, but even so, many visitors will simply grab the plugin directly from the Codex and completely ignore your site (unless, of course, they need help figuring something out). In this way, the new plugin repository system removes a powerful incentive for future plugin developers: traffic, exposure, and recognition for their work is now funneled directly to WordPress.org.

So, to sum up, the classic WordPress plugin directory:

..which contrasts with the new WordPress plugin repository:

Unfortunately, my voice is far too small to resurrect the original plugin pages, but it sure feels good to open up and actually “vent” about something. Admittedly, venting as such is something that I generally try to avoid like the plague, but in this case I just couldn’t help myself. Hopefully, now that I have finished voicing my concerns, the issue has been addressed and I may move ahead with the business at hand..

Subscribe to Perishable Press


22 Responses

TopLeave a comment

[ Gravatar Icon ]

#1Josh Byers

I couldn’t agree more about the plugin rant. I am a beginner plugin developer and it would be great to have those old pages back.

I have tried in vain on both a mac and win system to get subversion running to add my plugin to the database - but I guess I’m not smart enough. It someone could point me to a comprehensive rundown on how this works, that would be great…

[ Gravatar Icon ]

#2WP Diva

+1 to all of the above — plus mystery #4 (if you’re so inclined): what happened to the Codex Theme list? With the official theme viewer languishing as it is, it didn’t seem reasonable to remove the only area where theme creators could keep their users up to date on the status of themes.

[ Gravatar Icon ]

#3Ozh

#1: I’d say this is gone with WP 2.5, or isn’t it ?
#2: are you using mod_security on this server?
#3: answer is here

[ Gravatar Icon ]

#4Ryan Williams

Similarly to Ozh, mod_security is the first thing that jumped to mind when you described your problem. One of the main things it does is filter data sent via POST, which of course includes anything you submit via WordPress. Various hosts use different configurations which catch more or less false positives than others, but the general point is to prevent XSS exploits, etc.

mod_security isn’t the only server software that does this kind of thing though, so an absence of mod_security doesn’t mean much. Also check that your host doesn’t use SUHOSIN, and there’re some others out there too.

I had a problem with phpBB myself where the server would just return an error when I tried to modify my gigantic phpBB CSS file through the admin area. Eventually I realised that it wasn’t mod_security/SUHOSIN’S filtering after all, but instead a character limit SUHOSIN applies to POST submissions. Getting my host to double the limit solved it.

In short, I’m willing to confidently say it’s your server software. Security software like this is good, but can bring out all sorts of unexpected and obscure application issues.

[ Gravatar Icon ]

#5Steven

As others have said, it sounds like something in your specific hosting config: I’ve never seen these errors.

Btw, if you’re still looking for alternative hosting, I no longer recommend MediaTemple (the grid has been appalling recently). After trialling lots of other hosts, I settled on MediaLayer, who offer hosting specifically tuned for php/MySQL applications. It is blazing fast and the support is amazing. :)

[ Gravatar Icon ]

#6filosofo

I came here to write the exact answers as Ozh. Spooky.

You seem to be using WordPress 2.3.3, so I think once you upgrade to 2.5, #1 will disappear.

[ Gravatar Icon ]

#7Perishable

@Ozh: Not sure (yet) about the effect of WordPress 2.5 in regards to the memory issue. Will report later after finding time for the upgrade. In the meantime, I did manage to implement running PHP 5 along with PHP 4 on my server, and that seems to have a positive effect, but more testing is required before I can confirm anything. As for mod_security — yes, it is enabled, and I will be investigating further to see if that is indeed the culprit (it does make sense). And, for your answer to mystery #3: no comment (but thanks for pointing it out;).

[ Gravatar Icon ]

#8Perishable

@Ryan: Yes, I seem to agree that mod_security (or some other server software) is probably responsible for the blocked character strings. Now I want to see the filtering rules that are used to determine “forbidden” phrases (would make for a great post)! Also, thanks for the heads up on SUHOSIN character limits. It’s not running on this server, but your descriptions make me wonder about a similar issue on a different server. Great info, again, thanks!

[ Gravatar Icon ]

#9Perishable

@Steven: Yes, I am always on the lookout for better hosting. I have yet to find a host that isn’t lacking in at least one department. I have tried Media Temple, WiredTree, and a host (no pun intended) of others. I am currently back on shared hosting plan at A Small Orange and have to admit that customer support (one of their primary selling points) has been less than stellar as of late. Plus, lots of downtime, frustration, etc. In short, I would love to find that “perfect” host and switch immediately. Your recommendation of MediaLayer looks very good. Did you go for dedicated or application hosting, btw?

[ Gravatar Icon ]

#10Perishable

@filosofo: Looks like I have no choice and will be upgrading to WP 2.5 after all! Btw, it is great to see you here, filosofo — thanks for dropping by! :)

[ Gravatar Icon ]

#11Perishable

@Josh: Once I find time to jump through the hoops and get my plugins listed (assuming they’ll still have me!), I will write an in-depth article that explains the entire process of adding/editing plugins at the new database (assuming I am able to figure it out). In the meantime, this article seems fairly comprhensive, and may provide the info you need to get started. Good luck!

[ Gravatar Icon ]

#12Perishable

@WP Diva: Certainly this has something to do with the mad rush to subversion for both plugins and themes. On the theme viewer page, they provide the following information:

Just wanted to do a quick update for those wondering when you’ll be able to add new themes or update existing ones here in the directory. We’ve been working very hard on a new Subversion-backed database for themes that will allow you to upload themes as you did before, as a plain ZIP file, and we’re transparently check it into SVN so changes can be tracked just like we do for WordPress development.

If they did remove the Codex Themes list, I am not surprised. Apparently, it’s just too simple to allow freely contributing plugin and theme developers to keep their information updated quickly and easily. There must be a better way!

[ Gravatar Icon ]

#13Dr. Mike Wendell

Re #3: Can’t believe no one bothered to look at the history of the page. No offense but that’s the first thing people should have done. It was removed by Lorelle.

[ Gravatar Icon ]

#14Steven

Perishable@9: I went for the mid-tier application hosting (shared) package to begin with; I don’t need a dedicated server. I basically read the webhostingtalk forums for a month and tried all the most commonly recommended hosts for my needs, and ML was the best.

You could try out an AppLayer for a month and see if it suits you, they don’t charge big setup fees or anything.

Btw I’m getting no kickback/affiliation deal from ML, just a very happy customer so far. ;)

[ Gravatar Icon ]

#15Perishable

@Dr. Mike Wendell: Yes, the decision to remove the plugin pages was discussed by Stephen Cronin in this article (linked to in the post above as well). Although this information is useful, it doesn’t justify the decision itself. The point that I try to make in the article is that the decision to remove the plugin pages was a bad one. Those pages were so useful, complete, easy to use, edit, and update, that it just seems pointless to replace them with a system that is far too tedious and time-consuming. In my opinion, the decision to remove the pages was thoughtless and even insulting to all of the many, many freely contributing developers out there who no longer enjoy the benefits of the dropped pages.

[ Gravatar Icon ]

#16Perishable

@Steven: I’m sold! I will definitely be giving MediaLayer a try as soon as the opportunity arises. I assume the shared hosting (AppLayer) is reasonably priced? Edit: oops! My bad — I see they have the prices listed right there alongside the packages.. seems very competitive..

[ Gravatar Icon ]

#17Ozh

Tried vpslink ?

(btw you should mention somewhere that you’re going naked CSS. I hit refresh like ten times wondering why my browser wouldnt load the CSS. Tell your readers why it’s so ugly :)

[ Gravatar Icon ]

#18Perishable

No, have you? What’s the word on vpslink? Reliable? Consistent? Support? What’s up! And what, you don’t dig the “naked” look? Nothing to be ashamed of, right? Hell, I’m naked right now! ;)

[ Gravatar Icon ]

#19Ozh

I’ve heard good feedback from folks in #wordpress (namely ioerror if I remember). Prices are very affordable. Note that I’m a strong believer of the “There is no good host” theory. The thing is just to find the least crappy one (given that “good” is always relative to the amount of money you’re willing to put in it)

[ Gravatar Icon ]

#20Perishable

So true about the “good host” theory — if only I could afford more than the average fare! In any case, I appreciate the tip and will check it out in depth during the next, ultimately inevitable round of extreme shared-hosting frustration!

[ Gravatar Icon ]

#21jidanni

I don’t get how the WordPress team is all head over heels about Subversion, when
Linus T. says Git is the way to go.
http://www.google.com/search?q=git+linus+subversion
http://codicesoftware.blogspot.com/2007/05/linus-torvalds-on-git-and-scm.html

Share your thoughts..

TopRead official comment policy

The rules are simple. Comment intelligently. Stay on-topic. Don’t spam! Suspected spam will be deleted. Use your real name or nickname, not a site name or business name. Using a site name or business name is a good way to get your link or comment removed. Certain comments are moderated; if your comment does not appear after several days, or if you wish to comment privately, contact me. Also, by posting a comment, you grant this site a perpetual license to reproduce your comment, name, and website URL. Lastly, you may use basic HTML markup, but please do not use <pre> tags. Instead, wrap your code with <code> tags. Use a new set of <code> tags for each code term or phrase, as well as for each individual line of code (i.e., multiple lines of code require multiple code tags). Please see the complete comment policy for more information.