If I have the memcache module (recent version of dev branch) setup to use 3 different memcache servers (see http://drupalbin.com/16547)

What prevents a form from being cached into memcache.server1 and then when the user submits a form the cache_get() looks in memcache.server2 and cannot find the form? Several of my users have been receiving "Unrecoverable error. This form was missing from the server cache…" when using the imagefield form (and I think once or twice the node edit form itself) and I'm wondering could memcache be the culprit because I have multiple memcache servers setup?

Comments

bleen’s picture

I was tlaking with carlos8f on IRC about this and he believes that the issue has to do with me putting everything in one 'default' bin. However, I thought that this was the whole purpose of getting wildcards to work with memcache ... so you dont need many bins.

Anyway, in case this helps:
Only local images are allowed.

bleen’s picture

I have performed two different experimentsto see if I could get rid of this error... both failed:

EXPERIMENT I
- Removed extra memcache server from my settings.php ... with this setup there was one and only one memcache server:

/**
 * Memcache variables:
 */
$lgs_memcache_path        = './sites/all/modules/contrib/memcache/memcache.inc';
$lgs_memcache_servers     = array(
  'memcache1.colo.astrology.com:21219' => 'default',
  //'memcache2.colo.astrology.com:21219' => 'default',
  //'memcache3.colo.astrology.com:21219' => 'default',
);

$conf['cache_inc']                            = $lgs_memcache_path;
$conf['memcache_key_prefix']      = 'lgs_';
$conf['memcache_servers']            = $lgs_memcache_servers;

EXPERIMENT II
- For this I added back a separate bin for forms even though I am using a version of DEV that supports wildcards:

/**
 * Memcache variables:
 */
$lgs_memcache_path        = './sites/all/modules/contrib/memcache/memcache.inc';
$lgs_memcache_bins        = array(
  'cache'       => 'default', 
  'cache_form'   => 'form'
);
$lgs_memcache_servers     = array(
  'memcache1.colo.astrology.com:21219' => 'default',
  'memcache2.colo.astrology.com:21219' => 'default',
  'memcache3.colo.astrology.com:21219' => 'default',

  'memcache1.colo.astrology.com:21218' => 'form',
  'memcache2.colo.astrology.com:21218' => 'form',
  'memcache3.colo.astrology.com:21218' => 'form',
);

$conf['cache_inc']                            = $lgs_memcache_path;
$conf['memcache_key_prefix']      = 'lgs_';
$conf['memcache_servers']            = $lgs_memcache_servers;
$conf['memcache_bins']                 = $lgs_memcache_bins;

Still no solutions though ... any advise/help/thoughts/jokes/Jack Daniels would be welcome...

bleen’s picture

I have confirmed that this problems is reproducible if you open a form with a imagefield in it, and run cron.php while the form is open. Then try to upload the image.

so far #959200: Add ability to exclude bins (tables) from memcache is solving my issue ... leads me to believe that #966114: cache_clear_all ignores cache "expire" attribute is exactly correct

bleen’s picture

Status: Active » Closed (duplicate)

I'm closing this (as duplicate) in favor of #966114: cache_clear_all ignores cache "expire" attribute

bleen’s picture

Title: Multiple memcache servers ... ajax form error: "An unrecoverable error occured. This form was missing from the server cache..." » If cron runs while a form with an imagefield is open, error: "... This form was missing from the server cache..." on img upload

fixing title for searching purposes...