Support » Plugin: W3 Total Cache » Random Blank Pages – w3 total cache

  • Steve

    (@skrause)


    Version 0.9.2.8

    My issue is very random and hard to repro and… I don’t have a repro case yet.

    The problem I run into is since I enabled Disk Cache for Pages, Database and Objects, random pages are coming up blank and the only way to resolve is to clear cache. That that point, the page paints just fine.

    Like I said, once I clear the cache, the problem goes away however I don’t have a good way of triggering it and only know about it when a user notifies me… 😉

    site — groovypost.com

    Thanks,

    -S

    http://wordpress.org/extend/plugins/w3-total-cache/

Viewing 15 replies - 1 through 15 (of 102 total)
  • Thread Starter Steve

    (@skrause)

    More information.

    Looking through the file structure with my FTP client. The pages which show up blank look exactly the same at a file level however when you download the cached page via FTP — it’s empty.

    I delete the blank cache file then refresh the browser window and the page will always refresh without issue for me.

    So again, I have blank pages being created but I don’t see a repro step yet on this.

    -S

    Thread Starter Steve

    (@skrause)

    Did more research and found root cause — at least the reason this is happening….

    For whatever reason, if you try to open a page without a trailing slash / the blank page will be cached and then displayed to the visitor.

    I can repro this over and over….

    I still need to see if I can repro this on other sites as it might be a conflict between W3 Total Cache and another plugin I’m using…???

    For now, I’m using an .htaccess command to just add a trailing slash to everything.

    # Add trailing slash
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]

    Would be curious if you have any thoughts on this.

    -S

    z4reg

    (@z4reg)

    Having similar issues with 0.9.2.8 and wp 3.5.1

    * Site working but no output thru minify (No Css / No Js)

    * Blank Admin Pages
    (To Get back admin rename object-cache.php , db.php and advanced-cache.php)

    z4reg

    (@z4reg)

    After renaming /wp-content/w3tc-config/master.php and folloing instruction mentioned in http://wordpress.org/support/topic/w3tc-0928-killed-my-backend?replies=15

    1. Comment out line 127 in /wp-content/plugins/w3-total-cache/inc/functions/activation.php
    2. Your dashboard comes back – deactivate W3TC
    3. Remove the comments for line 127 so it is active again
    4. Activate W3TC and you are back in business

    Things working. You will have to configure W3TC again.

    Thread Starter Steve

    (@skrause)

    @z4reg — not sure why you posted this information in this thread. Does not seem to be related to the specific issue I had listed in this thread.

    @skrause – I think we’re having the exact same issue. It’s been going on for about a month and we’re tearing our hair out of here. Any traction yet?

    I was just about to try a manual uninstall of W3 and then a fresh install. Have you tried this yet? It seems W3 requires a clean install to eradicate some pesky issues similar to this. I’ve been doing some research but only your description hits the nail on the head. I saw similar issues – but not exact – around the time of the last release with folks who upgraded automagically.

    Thread Starter Steve

    (@skrause)

    What exact issue did you run into?

    @joeldauteuil — when you ran into this, did a full uninstall of W3 and re-install resolve the issue?

    “random pages are coming up blank and the only way to resolve is to clear cache”

    We see the same thing and a simultaneous CPU spike.

    @skrause: I have not done the full uninstall yet. Other things keep getting in the way.

    Thread Starter Steve

    (@skrause)

    Sounds like a very similar issue then.

    Same issue here. Getting blank pages randomly. Like @skrause suggested here, clearing cache temporarily fixes the issue. Thanks to this post, I was able to trigger a blank page when trailing slash is missing.

    Moreover, I’m randomly getting “bad cached pages”, where the header area of the served cached page is messed up (the full page content is there in this scenario). Similar to the blank page issue, to fix I clear the page cache. What’s puzzling is that for this one I have no explanation or a way to repro. No idea what’s causing it or if it’s related to the blank page issue at all.

    Just curious, what environments is your WordPress running on, mind sharing some details?

    My site is running in Windows Azure, IIS, mysql, WP 3.5.1, in a multi-server env (distributed to two servers to be exact). Right now the W3TC plugin is creating cache in two locations. I wonder if this could be related to the issues I’m experiencing.

    I was able to resolve the cached blank page issue by adding a rewrite rule (I’m on IIS, otherwise this would be done in htaccess if you’re running on apache, see @skrause’s reply above for htaccess code).

    Still curious to know why it’s creating a blank page when trailing slash is missing, if anyone figures that out.

    For anyone looking, this is what my IIS rewrite rule looks like in web.config (make sure this comes before any wordpress rewrite rules):

    <rule name="Add trailing slash" stopProcessing="true">
      <match url="(.*[^/])$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_FILENAME}" pattern="(.*?)\.html$" negate="true" />
        <add input="{REQUEST_FILENAME}" pattern="(.*?)\.aspx$" negate="true" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="{R:1}/" />
    </rule>

    My other issue related to incorrectly formatted cached pages is related to another issue with the Ubermenu plugin and W3 Total Cache.

    We ran into this as well. It’s a bug in W3 Total Cache. I’m hoping the authors read this, else I’ll try to get to them more directly.

    We had this occurring on our brand-new wordpress install too. Turns out that W3TC caches HEAD and GET and serves them equally. So if a HEAD request for a URL is sent, it will be cached, and the next time a GET for that same resource is received it will return the cached HEAD response, which means you’ll get a “Content-Length: 2” and a \r\n for your content, nothing else.

    Here’s a patch that will simply not cache HEAD at all:

    diff --git wp-content/plugins/w3-total-cache/lib/W3/PgCache.php wp-content/plugins/w3-total-cache/lib/W3/PgCache.php
    index aec6e61..44d0f61 100644
    --- wp-content/plugins/w3-total-cache/lib/W3/PgCache.php
    +++ wp-content/plugins/w3-total-cache/lib/W3/PgCache.php
    @@ -493,20 +493,26 @@ class W3_PgCache {
    
             /**
              * Skip if posting
              */
             if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                 $this->cache_reject_reason = 'Requested method is POST';
    
                 return false;
             }
    
    +        if ($_SERVER['REQUEST_METHOD'] == 'HEAD') {
    +            $this->cache_reject_reason = 'Requested method is HEAD';
    +
    +            return false;
    +        }
    +
             /**
              * Skip if there is query in the request uri
              */
             if (!$this->_config->get_boolean('pgcache.cache.query') && strstr($this->_request_uri, '?') !== false) {
                 $this->cache_reject_reason = 'Requested URI contains query';
    
                 return false;
             }
    
             /**

    This is a large hammer that simply prevents any HEAD requests from being generated, so you never cache that ‘blank’ page. It does mean that you essentially have a heavy response generated each time for HEADs, so if caching is critical for your server load this is vulnerable to potential DoS.

    A better solution when a HEAD request is made would be to generate the page as if a GET were requested and cache both the HEAD and GET responses independently and serve the appropriate one. I have not investigated the W3 Total Cache code enough to implement this.

    I hope my change above, or the improved one I described, can make it into a updated version of the plugin. Please ping me if there are any questions.

    Here’s how to reproduce this:

    • You’ll see just headers, as appropriate
    • You’ll see just headers, which is wrong for a GET.

    Managed to find this topic even though it was improperly tagged. This issue is fixed in the next release. Thank you.

    I’ve tried everything and anything suggested above and still got blank pages every so often, so it’s definitely a bug of some sort in W3.

    When is the fix coming out?

Viewing 15 replies - 1 through 15 (of 102 total)
  • The topic ‘Random Blank Pages – w3 total cache’ is closed to new replies.