APC正在破坏输出

Jac*_*ket 5 php apc corruption output

我最近使用apache 2.2.15,PHP 5.4.11和APC 3.1.14将我的Web服务器切换到Centos 6.3.

我开始不时收到客户的投诉,页面无效,或出现奇怪的错误.我看到受影响的页面在输出中的随机位置有问号和其他奇怪的符号,即使源是正常的.当我更改源文件中的单个字母时,页面开始正常工作.

我怀疑APC,但我找不到任何线索何时以及为什么会发生这种情况.

我使用mercurial将更改推向生产,但我已经使用这种方法多年没有问题.也许配置中的某些东西现在是新的,但遗憾的是我没有保留我的旧配置.

以下是上次损坏的截图.

来自损坏的ajax响应的屏幕截图

编辑:这是我更改源中的单个字符,保存它,然后撤消文件后的响应(如果我只是重新启动Web服务器或清除APC操作码缓存):

修复后的屏幕截图

请注意,行号不匹配,但它是100%相同的请求,因此响应也应该相同.第一个屏幕截图中的第111行根本不应该存在.它似乎来自另一个源文件......

Jac*_*ket 0

我已将apc.stat_ctime更改为 1

使用 ctime 进行验证将确保 inode 自上次统计以来没有更改,从而避免由 svn 或 rsync 等程序引起的问题。APC 通常只会检查 mtime。

我将密切关注这个问题,因为它每周发生一两次,如果解决了它,我会在这里发布。