Three Unsolved WordPress Mysteries

Published Tuesday, April 8, 2008 @ 10:07 am • 21 Responses

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

  • What’s up with the WordPress PHP Memory Error?
  • Why do certain phrases trigger “Forbidden” errors when saving or publishing posts?
  • What happened to the Plugin Pages in the WordPress Codex?

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:

  • .htaccess
  • Lynx Source

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:

  • Made it super easy to add and update plugin information
  • Required less time, less effort, and fewer resources
  • Was well-organized, well-known, and easy to use
  • Passed attention and recognition to developers
  • Delivered all traffic directly to plugin sites
  • Made it easy to shop for and compare plugins
  • Served as a more complete plugin directory
  • Ranked well among search engines (high PR)

..which contrasts with the new WordPress plugin repository:

  • Consumes waay too much time and effort
  • Complicates the process of adding/updating plugins
  • Makes it impossible to compare plugins side by side
  • Is tediously organized, convoluted, and overwrought
  • Steals attention and recognition from developers
  • Steals key traffic from plugin developer sites
  • Remains less complete than the original archive
  • Sterilizes individualism with pointless uniformity

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..


Dialogue

21 Responses Jump to comment form

1Josh Byers

April 8, 2008 at 1:59 pm

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…

2WP Diva

April 8, 2008 at 7:21 pm

+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.

3Ozh

April 8, 2008 at 11:41 pm

#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

4Ryan Williams

April 9, 2008 at 1:24 am

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.

5Steven

April 9, 2008 at 2:22 am

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. :)

6filosofo

April 9, 2008 at 7:27 am

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.

7Perishable

April 9, 2008 at 10:13 am

@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;).

8Perishable

April 9, 2008 at 10:21 am

@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!

9Perishable

April 9, 2008 at 10:31 am

@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?

10Perishable

April 9, 2008 at 10:37 am

@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! :)

11Perishable

April 9, 2008 at 10:46 am

@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!

12Perishable

April 9, 2008 at 10:58 am

@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!

13Dr. Mike Wendell

April 9, 2008 at 11:56 am

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.

14Steven

April 9, 2008 at 12:39 pm

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. ;)

15Perishable

April 9, 2008 at 12:46 pm

@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.

16Perishable

April 9, 2008 at 12:50 pm

@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..

17Ozh

April 9, 2008 at 12:58 pm

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 :)

18Perishable

April 9, 2008 at 2:34 pm

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! ;)

19Ozh

April 9, 2008 at 2:54 pm

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)

20Perishable

April 9, 2008 at 6:24 pm

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!

Subscribe to comments on this post


Share your thoughts..

TopRead official comment policy

Contact Perishable Press

  • Contact Jeff via form

Search Perishable Press

About Perishable Press

Perishable Press is the virtual playground of Jeff Starr — visionary, founder and lead developer of Monzilla Media, a small web and graphic design company in the lush desert oasis of Moses Lake, Washington. Perishable Press features articles and tutorials on many aspects of digital design..

Read more..

Perishable on Twitter

Google tells users to drop support for IE6! @ http://www.tgdaily.com/content/view/40785/140/

Perishable on Tumblr

WordPress Tip for Multiple Themes

Sunday, 4 January 2009, 5:16 pm

If your site makes available multiple themes for users to choose from, remember to include the JavaScript (or any other required code) for any statistical applications that you might be using, such as Mint, Google Analytics, and so forth. I am not sure about the various WordPress statistics plugins, but they may need to be included as well. A good way to check if your stats plugin is tracking data across all themes is to either visit a few pages that you know others aren’t hitting, or else activate each of the alternate themes and check the source code of each one for the required code.

Earlier today, I realized that only several of my most recent themes included the required JavaScript for Mint and Google Analytics. I am now in the process of editing each of the 18 themes available for users at Perishable Press. Haven’t decided on whether or not both statistics apps are needed for all themes, but I will certainly be using at least one of them to keep an eye on everything.

Insane Christmas

Monday, 22 December 2008, 9:47 pm

For as long as I can remember, Christmas has always been a relatively peaceful affair. Sure there’s the usual holiday stress — traffic, shopping, presents, relatives, and all that goes with the preparation of a traditional celebration, but when it’s all said and done, you get to relax and enjoy the peace and harmony of gathering together and basking in the reason for the season: the birth of Christ.

This year, however, the stress factor has been kicked up a few notches, making for a rather insane Christmas if I do say so myself. In addition to the usual holiday chaos, we are currently purchasing a brand new home, and quickly realizing the incredible amount of work involved in the process. If you’ve ever bought a newly built home, you know exactly what I am talking about here.

Plus, as if all the paperwork, inspections, insurance, costs, and anxious anticipation weren’t enough to confound the usual holiday stress, we are also packing up everything, dealing with kids, working full-time jobs, and — beginning on Christmas Eve — moving into our new house.

It certainly is all a great joy and blessing to have such amazing things going on, but combined with the work that I do on the Web — blogging, designing, projects, helping people, and so on — it really becomes all too much rather quickly. We are doing are best to get through everything with our sanity intact, but I have to admit that this is the most insane Christmas I have ever experienced.

New (4G) Blacklist Now in Beta

Monday, 22 December 2008, 9:27 pm

Just a quick note to anyone interested in securing their websites against malicious activity, spam, and other nonsense. Several months after releasing my 3G Blacklist, I have finally begun work on the next incarnation of the blacklist: the 4G Firewall!

The first part of the blacklist is now ready for testing, and I plan on setting it up on Perishable Press within the next few days. While testing on my own site, I thought it would beneficial to also invite a few “beta” testers to run the code on their own site(s) as well.

So, if you have a site that receives its share of malicious attacks, and cracker exploits, drop me a line via the contact form at Perishable Press and I will send you the initial block of HTAccess directives. This version of the Blacklist is looking better than ever, and I look forward to releasing the complete version to the public early in 2009.

Thanks for the Free Traffic and Link Juice

Sunday, 7 December 2008, 1:26 pm

Just wanted to thank the fine folks at fafich.ufmg.br for all the free traffic and link juice. Thanks to their misapplication of my comprehensive canonicalization code, every non-canonical version of their 21,700 indexed pages points directly to my site, Perishable Press. This means that every one of their permalink URLs that is mistyped, lacks the “www” prefix, or contains the superfluous “index.php” file name is directed via permanent redirect directly to the home page of my site.

I have tried contacting the site owner(s) about this situation, but it has been over a week and I have yet to hear anything back. Hopefully, they will take notice soon and correct the issue by properly configuring their htaccess file, but in the meantime, I certainly don’t mind the extra link juice and free traffic! :)

No Plugin Needed for Feed Delay

Monday, 24 November 2008, 10:01 am

I recently saw a WordPress plugin that was designed to delay the publication of your WordPress feed by any specified time interval. While it is a good idea to carefully proofread your content before posting it, a plugin certainly is not required to do so.

As savvy WordPress users already know, WordPress has a built-in post-preview feature that enables authors to view their unpublished content as a published post. This enables authors to do any amount of proofreading and browser checking until they are satisfied with the results.

To do this, simply write your post as usual, and then click on the “Preview this post” button on the right-hand side of the screen. In older versions of WordPress (less than 2.5, I think), you actually need to save (without publishing!) the post first and then re-open it as if to continue editing. You will then see a “Preview »” link sort of hidden (due to poor CSS design) in the upper-right corner near the edit post field. Right-click on that link to open in new tab and you are good to go.

No extra plugin needed! :)

Read more on Tumblr..

Subscribe to Comments Recent Dialogue

  • Harry Roberts: Yeah, as above, removing the outline is a pretty bad idea in terms of accessibility. Maybe removing it from large image/navigational ...
  • Mark: There we go! That's the way to do it! Thanks, Jeff!...
  • Jeff Starr: Well said, Mark! Here is some news that I find ...
  • Jeff Starr: Thank you all for the great feedback! I wrote this article as a way to purge some of my thoughts on Twitter, but now see that some of...
  • Jeff Starr: Thank you so much for the thoughtful feedback, Adrian. It has been a good year indeed, and I certainly hope that 2009 brings many ble...
  • Jeff Starr: Hi heywho, glad to hear you are doing well! ;) I wish I could join in the festivities.. it has been so long that I almost have forgot...
  • Rob Barrett: Thanks for posting about the Stealth Publish plugin -- just what I needed for my site. Works perfectly!...
  • Jeff Starr: Hi Chiwan, I got your email and have sent some information that may help you with this. Cheers, Jeff...
  • Chiwan: Hi. This is cool. So I can I replace the clock that comes with your Apathy theme with this clock? If that's not possible, how do ...
  • Brass Engraved: Thankyou very much for this, worked like a dream!...

Read more recent comments..

Attention: Do NOT follow this link!