
----- Original Message -----
From: "Itamar Heim" <iheim@redhat.com> To: "Vojtech Szocs" <vszocs@redhat.com> Cc: "engine-devel" <engine-devel@ovirt.org> Sent: Tuesday, October 22, 2013 8:18:56 AM Subject: Re: [Engine-devel] Question about Engine user session timeout
On 10/21/2013 02:55 PM, Vojtech Szocs wrote:
Hi guys,
I see two different config values for dealing with Engine user session timeout.
First, from packaging/etc/engine-config/engine-config.properties file: - UserSessionTimeOutInterval.description=Session timeout interval in minutes, after which it will be expired and clean. A negative value indicates the session should never timeout. - UserSessionTimeOutInvalidationInterval.description=Session timeout invalidation interval in minutes. Specifies the interval in which the invalidation check should occur.
Then, in org.ovirt.engine.core.common.config.ConfigValues enum: - UserSessionTimeOutInterval (default 30) - UserSessionTimeOutInvalidationInterval (default 30)
Looking at Backend#Initialize, both of these values are used when scheduling "cleanExpiredUsersSessions" job: - UserSessionTimeOutInterval = initialDelay param, i.e. the initial delay before the first activation [SchedulerUtil#scheduleAFixedDelayJob] - UserSessionTimeOutInvalidationInterval = taskDelay param, i.e. the delay between jobs [SchedulerUtil#scheduleAFixedDelayJob]
So if I read this correctly, if UserSessionTimeOutInterval=100 then UserSessionTimeOutInvalidationInterval is relevant only after first 100min of Engine uptime.
Why do we have two different config values for Engine user session timeout? i.e. why don't we use same value for both initialDelay & taskDelay param?
you may want to be more strict, and invalidate sessions after 30 minutes and check for that every minute?
Well, my motivation was to understand both config values before I'll attempt to use them in server-side Engine code. I'm working on client-side-only improvement of UI Plugin vs. REST API integration [proper server-side RFE is here https://bugzilla.redhat.com/1019921], dealing with a situation when "REST API timeout > Engine session timeout" and its consequences; I'd like UI to create REST API session with timeout equal to Engine session timeout. However, as we have two distinct values for Engine session timeout, I guess my best shot is to do "min(UserSessionTimeOutInterval,UserSessionTimeOutInvalidationInterval)" and expose both via admin-only GetConfigurationValue query, but I'm not sure this is the best approach..