[support] Error Retrieving Form From Cache

Steve Edwards killshot91 at gmail.com
Tue Aug 23 19:43:54 UTC 2011


No, memcache is not being used.

On Aug 23, 2011, at 12:29 PM, Carl Wiedemann wrote:

> Are you using memcache on the production server? I've run into problems where cache_form is cleared out when cron runs. If cron runs after a form is first loaded in the browser and before the form is submitted, the cache_form entry is lost because memcache doesn't respect the cache_form lifetime for some reason. Try excluding cache_form from the memcache bins, if possible. 
> 
> There may be an issue for this but I didn't check since at the time we didn't need memcache after all.
> 
> Carl Wiedemann
> Website design and development consulting
> carl.wiedemann at gmail.com | skype: c4rlww
> 
> 
> 
> On Tue, Aug 23, 2011 at 12:23 PM, Steve Edwards <killshot91 at gmail.com> wrote:
> I have been struggling for a few days with an issue with core form caching that is seen in filefield_sources (D6).  When I attempt to add an image using the Reference Existing option, I get the error "An unrecoverable error occurred. This form was missing from the server cache. Try reloading the page and submitting again." Other people have had the same error (see http://drupal.org/node/500646 and http://drupal.org/node/795004 for examples.).
> 
> The main thing I'm not understanding is why the data is not being returned from the cache table.  First, here is the code from filefield module (the filefield_js() function) that throws the error:
> 
>  // Build the new form.
>  $form_state = array('submitted' => FALSE);
>  $form_build_id = $_POST['form_build_id'];
>  $form = form_get_cache($form_build_id, $form_state);
> 
>  if (!$form) {
>    // Invalid form_build_id.
>    drupal_set_message(t('An unrecoverable error occurred. This form was missing from the server cache. Try reloading the page and submitting again.'), 'error');
>    print drupal_to_js(array('data' => theme('status_messages')));
>    exit;
>  }
> 
> As quicksketch points out in one of the issues, when the form is initially displayed, it should be cached in cache_form, and this error indicates that the form was not cached, and therefore is not retrieved from cache_form (he also points out this is not a filefield issue, but rather a core caching issue).  However, in watching the db, I can see that the form is saved in the cache (and I verified it using the form id displayed in the HTML against the cid value in cache_form), so it is there for to be retrieved by form_get_cache().  The only other option I can see is that $_POST['form_build_id'] is not available for some reason.
> 
> What makes this more difficult is that I can't duplicate this on my local machine or our dev server.  This only happens on the production server at the hosting company.  Varnish is being used, but since this functionality is only used for logged in users, that should be an issue as far as I can tell.
> 
> Can anyone offer any suggestions on how to fix this?
> 
> Thanks.
> 
> Steve
> --
> [ Drupal support list | http://lists.drupal.org/ ]
> 
> -- 
> [ Drupal support list | http://lists.drupal.org/ ]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20110823/8ffe8403/attachment.html 


More information about the support mailing list