【问题现象】
MDS工程中,已配置KVM Session超时机制的Feature,超时时间设置为1800s。启动KVM,无任何操作30min后,仍能正常操作KVM界面。
图1
【问题分析】
PRJ文件中已经使能了FEATURE_KVM_SESSION_TIMEOUT,但是整个机制并未起作用。需要梳理该机制的运行流程,全局搜索该Feature。最终定位到该处功能代码如图2所示:adviserd|man.c-->start_own_timer_thread()-->session_timercall()
图2
增加打印信息发现两个问题:
- 程序并没有启动线程start_own_timer_thread()
- PRJ中修改的超时时间并不能同步到Adviserconf.SessionInactivityTimeout中
所以,以上2个问题是造成KVM Session超时机制失效的根因所在。
图3
【问题处理】
问题1:
定位全局变量g_corefeatures.kvm_session_timeout的赋值FEATURE_KVM_SESSION_TIMEOUT,发现是从/tmp/platform/conf/core_features文件中获取的,但PRJ中的配置是同步到/etc/core_feature文件中的,所以需要将/etc/core_feature中的配置同步到/tmp/platform/conf中
问题2:
参数Adviserconf.SessionInactivityTimeout是从/conf/ncml.conf中读取的,但PRJ中的超时时间并未同步到ncml.conf文件中。需要在ncml_configuration/dev-install.py中更新该值。
图4
【验证手法】
打开KVM:PRJ超时时间设置为1800
静置30min,期间无任何鼠键操作,KVM页面会有弹窗提示,如下图所示:
图5