Les reported in issue 6289 that he got the following when shadowing: 2008-06-05 08:27:46 INFO vsmserver.session: VSM Agent tlmadm.eksjo.se successfully created a new session for ohch 2008-06-05 08:30:53 INFO vsmserver.session: lie requested login 2008-06-05 08:30:53 INFO vsmserver: Verifying that agent tlmadm.eksjo.se running existing session for lie is alive 2008-06-05 08:30:53 INFO vsmserver: Verifying session tlmadm.eksjo.se:5 for lie 2008-06-05 08:30:54 INFO vsmserver: Existing session for lie is alive 2008-06-05 08:32:13 INFO vsmserver.session: Removing dead session for user rom on agent tlmadm.eksjo.se 2008-06-05 08:32:46 INFO vsmserver.shadow: User frn requested shadowing of user gufi 2008-06-05 08:32:46 ERROR vsmserver.extcmd: Unhandled exception getting list of groups for frn: <type 'exceptions.TypeError'> list indices must be integers Traceback (most recent call last): File "/opt/thinlinc/modules/thinlinc/vsm/async.py", line 110, in iiiIi111II1i obj . handle_read_event ( fd ) File "/opt/thinlinc/modules/thinlinc/vsm/extproc.py", line 310, in handle_read_event self . handle_close ( fd ) File "/opt/thinlinc/modules/thinlinc/vsm/extproc.py", line 283, in handle_close self . handle_exit ( ) File "/opt/thinlinc/modules/thinlinc/vsm/extproc.py", line 444, in handle_exit self . callback ( O0OoO0oo ) File "/opt/thinlinc/modules/thinlinc/vsm/loginhandler_common.py", line 73, in get_user_groups_finished self . allowed_thinlinc_user ( ) File "/opt/thinlinc/modules/thinlinc/vsm/loginhandler_common.py", line 89, in allowed_thinlinc_user self . allowed_thinlinc_user_finished ( True ) File "/opt/thinlinc/modules/thinlinc/vsm/handler_shadowuser.py", line 48, in allowed_thinlinc_user_finished self . check_shadowed_user_has_session ( ) File "/opt/thinlinc/modules/thinlinc/vsm/handler_shadowuser.py", line 55, in check_shadowed_user_has_session self . check_agent_alive ( ) File "/opt/thinlinc/modules/thinlinc/vsm/handler_shadowuser.py", line 65, in check_agent_alive iiiiI1i = Ii1IIIi1iIi1 [ 'agenthost' ] TypeError: list indices must be integers . Traceback (most recent call last): File "/opt/thinlinc/sbin/vsmserver", line 20, in <module> VSMServer ( sys . argv ) File "/opt/thinlinc/modules/thinlinc/vsm/vsmserver.py", line 141, in __init__ self . loop ( ) File "/opt/thinlinc/modules/thinlinc/vsm/async.py", line 431, in loop self . _select_loop ( I1I1IIi1I ) File "/opt/thinlinc/modules/thinlinc/vsm/async.py", line 278, in _select_loop iiiIi111II1i ( O00o0OO , OOooO0 ) File "/opt/thinlinc/modules/thinlinc/vsm/async.py", line 115, in iiiIi111II1i obj . handle_error ( fd ) File "/opt/thinlinc/modules/thinlinc/vsm/extproc.py", line 333, in handle_error OOO = self . handle_known_errors ( fd ) File "/opt/thinlinc/modules/thinlinc/vsm/extproc.py", line 450, in handle_known_errors self . callback ( [ ] ) File "/opt/thinlinc/modules/thinlinc/vsm/loginhandler_common.py", line 69, in get_user_groups_finished del self . outstanding_extcalls [ 'get_user_groups' ] KeyError: 'get_user_groups' 2008-06-05 08:44:56 INFO vsmserver: VSM Server version 2.0.0 build 1477 started 2008-06-05 08:44:56 INFO vsmserver.license: Updating license data from disk to memory 2008-06-05 08:44:56 INFO vsmserver.license: License summary: 120 concurrent users. Hard limit of 132 concurrent users. 2008-06-05 08:44:56 INFO vsmserver.session: Loaded 38 sessions for 38 users from file 2008-06-05 08:44:57 INFO vsmserver.session: Removing dead session for user gufi on agent tlmadm.eksjo.se 2008-06-05 08:44:57 INFO vsmserver.session: Removing dead session for user ssb on agent tlmadm.eksjo.se 2008-06-05 08:45:06 WARNING vsmserver.session: Connection to tlmadm.eksjo.se:904 closed before receiving response in request to verify session for jnu. 2008-06-05 08:45:06 WARNING vsmserver.session: Connection to tlmadm.eksjo.se:904 closed before receiving response in request to verify session for rob.
This bug is probably related to bug 2884.
> File "/opt/thinlinc/modules/thinlinc/vsm/handler_shadowuser.py", line 65, in check_agent_alive > iiiiI1i = Ii1IIIi1iIi1 [ 'agenthost' ] > TypeError: list indices must be integers This indicates that an list was used instead of dict. This traceback is on a very old version of ThinLinc however I found matching code in LoginHandlerCommon.check_agent_alive() and will work out from there: agenthost = self.sessinfo['agenthost'] Current implementation sets self.sessinfo using sesssion store api get_session_public() which definitively was not the case at the time of reporting of this issue. As we expect that get_session_public() returns a data structure that is valid, this error can not be reproduced with current code.
Closing this bug due to it is very old, related code has changed and we should trust that the session store api returns valid session info data structure.
I can second Henrik's conclusion. Looks good to close.