我使用jetty9-compat + java8配置并收到以下异常。可能是因为这个我无法在会话中存储对象,所以最后我无法登录我的服务。
from ctor: 0x7fff52a36010 3 0x7fff52a36010
about to put 5 in 0x7fff52a36010
from main: 0x7fff52a36010 5 0x7fff52a36010
答案 0 :(得分:2)
此问题仅在本地复制,我也面对此问题。我假设它是由dev服务器运行的本地memcached的错误配置引起的。
我试着解释一下我的观点。在我的情况下,第一个请求总是成功的。 因为在第一次请求的情况下,Apache HttpClient会打开一个新连接并将其放入池中。 源代码https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/blob/master/appengine-managed-runtime/src/main/java/com/google/apphosting/vmruntime/VmApiProxyDelegate.java
如果以最多10秒的间隔执行所有进一步的请求也是成功的。但如果在10秒内没有请求,则下一个请求失败。 这是因为memcached服务从它的一侧关闭了连接,但是HttpClient并不知道它。
在VmApiProxyDelegate
中,HttpClient配置为在60秒后关闭空闲连接。所以,如果我等待超过1分钟而不是10秒钟,我的下一个请求不会失败。因为在这种情况下,HttpClient会打开尚未关闭的新连接。
要避免此问题,从memcached存根端配置连接超时是正确的。但文档说您对memcached的请求可能会失败,您必须处理这些错误。所以,我建议你添加错误处理程序和一些重试机制。
当然,如果您的配置一切正常,以上所有情况都适合您的情况。考虑到您没有提供配置和代码的示例,我假设一切正常。