[Logo] Terracotta Discussion Forums (LEGACY READ-ONLY ARCHIVE)
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
Tomcat session 超时问题  XML
Forum Index -> Terracotta 中文社区
Author Message
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

2个tomcat实例 + terracotta3.0.0
web.xml 设置 timeout=5分钟
连续发送请求,每个请求建立不同的session,绝大多数session在5-10分钟过期并调用sessionlistener.sessionDestory(),但是有一部分会等30分钟甚至2个半小时才过期。

此现象好像在tc2.7中没有出现。
我们在生产环境上发现有些session甚至连续几天都没过期,(从我们的角度看是没有调用sessionlistener.sessionDestory()),导致一部分用户状态数据没有更新。但是我在开发环境上面没有出现session连续几天不过期的情况,不清楚是否是同一问题。但是怀疑terracotta的session 轮询机制有问题,在单个裸tomcat情况下做同样测试,所有session在最多6分钟内肯定过期。

我把这个问题已经贴在两个版了,一直没有人回答,不知道是否表述有问题还是什么原因,这个问题应该很容易重现。

谢谢
lima

consul
[Avatar]
Joined: 06/22/2009 10:12:31
Messages: 361
Offline

Eric,

有没有可能把你们的测试程序简化一下,打一个包给我?同时说明一下你的测试环境和工具的版本。我可以尝试在我们的实验室里看能不能重现这个问题,以便找出解决方案。

谢谢!

马力
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

不好意思,一直在忙
我会尽快做个简化的程序给你们。

谢谢!
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

可以把包直接发送邮件给你或者其他人吗
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

开了一个JIRA ticket 并加了一个非常简化的web 程序
https://jira.terracotta.org/jira/browse/CDV-1337

客户端的程序没有加进去,基本上你可以用JMeter或者其他类似软件实现。我在本地开发环境只有session延迟过期的问题(timeout设置为5分钟,但是在相对并发量大一点的情况下,有些session会在50分钟才过期),没有出现泄漏的问题

我本地开发环境JDK1.6,2 个tomcat,1个terracotta3.0.0,1个apache不带SSL
因为是笔记本,还要带eclipse,数据库,所以不太可能复制完整的测试环境并做大并发量的测试了(实际上做了,但是当启动600多客户端发送线程的时候电脑就罢工了)

如果觉得还是表述不清楚或者要更多细节,也可以IM 或者 EMAL.

谢谢!
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

又进行了一轮测试,
1个tomcat实例 + 1个apache + 1个terracotta, 泄漏问题依然存在
1个tomcat实例 + 1个apache 泄漏问题消失

可以排除是各个tomcat节点之间同步的问题。

不知道你们现在是否可以再现这个问题,是否还需要我进一步测试或以什么方式提供帮助。
希望能够提供一下这个问题的进度。
lima

consul
[Avatar]
Joined: 06/22/2009 10:12:31
Messages: 361
Offline

Eric,

抱歉,不知为什么你前几天发的帖子我没看到。我还一直在等你的测试程序。
我马上去看你发的文件。

谢谢!

马力
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

好的,谢谢!

总结一下,现在测试有2个关注点,
1. session不能按时失效,如果在超时10分钟之内是可以接受的,我猜你们的轮询时间应该是com.tc.invalidator.sleep = 300 也就是5分钟,但是测试时候发现2个多小时才失效这就是个问题了。
2. 这是我们更关注的问题,对于有些session,我们没有发现httpsession.sessionDestory() 调用所产生的日志输出,不知道是session泄漏,死锁还是根本没有调用该函数。

以上测试是在每秒10-100 request的压力下进行的。测试过程中没有发现sessionDestory函数有异常抛出。
eric.sun

jedi

Joined: 10/02/2008 09:18:42
Messages: 123
Offline

马力

我看见Fiona O'Shea 更新了CDV-1337问题状态, NEW->OPEN
是否表示你们已经reproduce了这个超时和泄漏的问题?

谢谢!

Eric
lima

consul
[Avatar]
Joined: 06/22/2009 10:12:31
Messages: 361
Offline

Eric,

我们正在核查这个问题,并且评定优先级。希望能随着3.1.0版本(将在本月发布)一起发布。

 
Forum Index -> Terracotta 中文社区
Go to:   
Powered by JForum 2.1.7 © JForum Team