CAS - Failed to launch session worker

Lorsque vous essayez de vous connecter à CAS depuis SAS 9, vous pouvez être confronté au message d'erreur ci-dessous :
ERROR: Connection failed. Server returned: Failed to launch session controller.: Failed to launch session worker.
ERROR: Unable to connect to Cloud Analytic Services viyacasctrl.nicolas-housset.local on port 5570. Verify connection parameters and retry.

Activation des traces

Dans ce genre de situation, il est important de suivre la piste pour remonter à l'origine du problème. La première étape est d'activer les traces de connexion à CAS :
option set=CASCLIENTDEBUG=1;
Cette option  permet de diagnostiquer les problèmes de connexion au serveur CAS. Ce qui donne : NOTE: Reading authinfo file: /opt/sas/install/SASFoundation/9.4/CAS_Auth_info NOTE: Matching host: viyacasctrl.nicolas-housset.local NOTE: Matching port: 5570 NOTE: Matching user: NONE NOTE: Using authinfo host definition: default user nhousset password ****** NOTE: Client is using userid=nhousset, password=*** NOTE: Client is using the userpass identity provider NOTE: Sent challenge length 117 NOTE: Received response length 83 NOTE: Got disposition, severity 2, reason 4, message Failed to launch session controller.: Failed to launch session worker. ERROR: Connection failed. Server returned: Failed to launch session controller.: Failed to launch session worker. ERROR: Unable to connect to Cloud Analytic Services viyacasctrl.nicolas-housset.local on port 5570. Verify connection parameters and retry.

Examen du CAS Controller

Examinons les log du CAS Controller. Pour rappel les logs CAS se trouvent dans le répertoire /var/log/sas/viya/cas/default : INFO [00040032] cas local MAIN NoUser [tkcalsident.c:411] - New client connection accepted on port 5570. INFO [00040032] cas local MAIN NoUser [tkcalsident.c:426] - Client version long is '9.04.01M6P11072018'. INFO [00040032] nhousset local MAIN NoUser [tkident.c:1233] - User nhousset successfully authenticated using the OAuth authentication provider. INFO [00040032] nhousset local MAIN NoUser [tkident.c:1233] - User nhousset successfully authenticated using the External PAM authentication provider. INFO [00040032] nhousset local MAIN NoUser [tkcsesinst.c:725] - Successfully created session c7ab116e-3da0-1442-9217-85b118de8b53. INFO [00040032] nhousset local MAIN NoUser [tkcsesinst.c:810] - Destroying session c7ab116e-3da0-1442-9217-85b118de8b53. Nous constatons que la connexion au CAS Controller a bien fonctionné.  L’authentification est correct : "User nhousset successfully authenticated using the OAuth authentication provider" et la session créée : "Successfully created session c7ab116e-3da0-1442-9217-85b118de8b53." Toutefois, la log montre que la session est détruite juste après sa création.

Examen des CAS workers

Rendons-nous maintenant sur le premier worker et examinons les logs : INFO [00009966] sas.SASVisualAnalytics local MAIN NoUser [cascaptain.c:640] - Launched session worker. Process ID is 8215. INFO [00009967] sas.SASReportViewer local MAIN NoUser [cascaptain.c:640] - Launched session worker. Process ID is 8219. INFO [00000006] cas local 8219 cas 3664 [cas.c:1801] - Starting Cloud Analytic Services driver, host=viyacaswrk1.nicolas-housset.local, id=1, role=session worker. RAS sur ce worker; La session est bien créée. Direction le second worker et procédons à nouvel examen des logs (toujours dans /var/log/sas/viya/cas/default). La log montre une erreur : ERROR [00009958] nhousset local MAIN NoUser [tkclscommon.c:215] - User nhousset (1003), has name nhouset on machine.. ERROR [00009958] nhousset local MAIN NoUser [tkclscom.c:148] - Failed to initialize launch services. ERROR [00009958] nhousset local MAIN NoUser [casutil.c:1005] - An unexpected return code 0xffffffff resulting in launch status -1 was detected while creating a new session in a call to CLSLaunch in file /sas/day/mva-vb015/tkcas/src/casutil.c line 1005. ERROR [00009958] nhousset local MAIN NoUser [cascaptain.c:622] - Failed to launch session worker. Voici l'origine du problème : "User nhousset (1003), has name sminia on machine.." L'utilisateur nhousset utilisé pour la connexion à CAS possède l'id 1003 sur le CAS controller MAIS  sur le worker2 ce n'est pas l'utilisateur nhousset qui possède cet id 1003, mais l'utilisateur sminia.   Il y a donc un problème, sur ce worker, au niveau des utilisateurs. Il faut donc vérifier ce point. Le message dans la log peut varier :
  • NoUser  [tkcls.c:194] - No user entry for uid 1003
  • MAIN NoUser [tkclscommon.c:215] - User 1003, has gid 1004 and does not match supplied gid 1003
error-utilisateur-cas-worker

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.