[wp-trac] [WordPress Trac] #12324: Broken .htaccess File Created By WP 2.9.2
WordPress Trac
wp-trac at lists.automattic.com
Mon Feb 22 21:06:11 UTC 2010
#12324: Broken .htaccess File Created By WP 2.9.2
--------------------------+-------------------------------------------------
Reporter: magblogapi | Owner: ryan
Type: defect (bug) | Status: reopened
Priority: normal | Milestone:
Component: Permalinks | Version: 2.9.2
Severity: normal | Resolution:
Keywords: |
--------------------------+-------------------------------------------------
Comment(by kevinB):
Okay, no hard feelings. If I am overly defensive it's just because I've
put an enormous amount of time into a plugin that has thousands of users
but only one active technical advocate. Despite developing and supporting
a broad layer of features, I am perpetually vulnerable to the anonymous
and non-descript "broken" vote whenever a single feature malfunctions (or
appears to malfunction) on any WP configuration. This is the context of
my protest at the "may be doing more damage" comment. I'd like to develop
more of a team-like relationship with WP core contributors, but haven't
attained that yet.
magblogapi sent me some info on his configuration. It looks like in this
case there is another plugin which calls $wp_rewrite->flush_rules()
unconditionally at plugin init. So my theorized sequence of events, when
2 or more site accesses occur simultaneously, is:
1. other plugin triggers .htaccess update at every site access
2. Role Scoper hooks the mod_rewrite_rules filter to append its custom
rules
3. WordPress function '''insert_with_markers''' checks contents of
.htaccess midway through another pending update process. Since .htaccess
is partially written, BEGIN / END markers are not found so the content is
appended redundantly instead.
So this is not so much a multi-threading issue as a multi-access issue, as
described in #11903.
It doesn't really matter to you '''which''' plugin is calling
$wp_rewrite->flush_rules() on every site access. I've done it before, and
might make that mistake again in the future. The main point is that if
the WP API is right, simultaneous / redundant calls to
$wp_rewrite->flush_rules() should manifest as a performance hit or a
temporary 500 error, not a permanent 500 error.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/12324#comment:12>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list