Push still preventing DetachListener cleanup

Hello there,

We recently migrated a Vaadin 6 Application to 7.1. The heartbeat mechanism really sounds great to do some cleanup after an UI is not active anymore but the Push-mechanism seems to still prevent that from happening.

Our Setup:
Vaadin 7.1
SessionTimeout = 1
heartbeatInterval = 3
closeIdleSessions = true

I tried to catch the DetachEvents for quite some time. Since i could get it to work in a very basic vaadin project i was wondering what the difference is to our main application. I found some posts in this forum about people having the same problems: The cleanup will not happen if push is enabled. We made some test runs, and the cleanup only happend when push-mode was set to disabled.

I was wondering if there is a solution to this problem? Since not beeing able to use push and cleanup at the same time is kind of a big setback. I do understand that there is some server side filtering with heartbeats, like not counting heartbeats as normal client requests to differ when and if a session can be invalidated. Is there some mechanism at place when push is enabled, like not waiting for client requests at all?

Any way around this issue? Changelog for 7.1.3 did not provide any information :frowning:

Greetings,
Florian

Try deploying your app to a real server. I mean another one then the one you’re launching when debugging/running your app in an IDE like Eclipse.

Have a look at this thread for more information.

Thanks for the tip.
Sadly, i did not help with the issue. I deployed it on JBoss As 7.1.1, still no difference. Tested it with productionmode true and false.

I also tried the initial parameter org.atmosphere.cpr.sessionSupport = false, as described in the other thread.

Is there an official statement for this issue? Or any other workarounds/tips?

I have reported the same problem
here
https://vaadin.com/forum/#!/thread/3576361
and here
https://vaadin.com/forum/#!/thread/1553240
not solved yet

So did you find any workarounds? Like establishing a heartbeat like mechanism yourself? I guess there is no such thing as a HearbeatTimeoutEvent? :slight_smile:

Did/Could you try deploying your app on something like a Tomcat to see if your problem is serve dependent? If it is you should create a ticket to let the Vaadin Dev Team know about this issue.

@Marius:

Yes, i did test two applications both on JBoss 7.1.1 and Tomcat 7. Both from Eclipse and standalone. In all cases, the sessions did only time out when Push was set to disabled. It just seems that the Push-mode ignores every missing client requests instead of only ignoring non-heartbeat requests.