如何debugging/修复使用memcache(冗余)会话存储时的PHP / Apache分段错误?

我必须Apache的mod_php节点使用两个memcache服务器冗余会话存储(从https://serverfault.com/a/165584使用变种3)。

memcache.ini

extension=memcache.so [memcache] memcache.dbpath="/var/lib/memcache" memcache.maxreclevel=0 memcache.maxfiles=0 memcache.archivememlim=0 memcache.maxfilesize=0 memcache.maxratio=0 memcache.allow_failover=1 memcache.hash_strategy=consistent memcache.session_redundancy=3 

php.ini中

 session.save_handler = memcache session.save_path="tcp://192.168.0.11:11211?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://192.168.0.19:11211?persistent=1&weight=1&timeout=1&retry_interval=15" 

一切工作正常使用只有一个memcache服务器,它也适用于两个或两个冗余的服务器。 会话被写入到两个服务器(我可以使用phpmemcache admin来validation它),但是一旦我杀死了一个节点(停止一个memcache服务器),我就陷入困境。

memcache服务器看起来像有一个“主”服务器和一个“第二”服务器。 当我杀死第二台服务器时,问题就会减less,但是一旦closures了第一台Memcache服务器(第二台服务器),apache错误日志就会在每个连接上都被分段错误所填充。

我也试过memcache.session_redundancy=3但我有值3因为错误https://bugs.php.net/bug.php?id=58585

PS。 如果你使用Firefox使用: https : //addons.mozilla.org/en-US/firefox/addon/its-all-text我刚刚失去了我的问题,在运行到“你是人类”的东西的服务器错误后按回来。 …

我有同样的错误。 您必须安装新的memcache版本 。 我有3.04,它失败了,你说,与3.07 Apache不崩溃。 我可以阻止我的一个memcached服务器,其中第二个suport失败,没有apache segfaults。