Branch: ulab-original

e9bdf646 2019-03-03 22:18:41 Timothy Pearson
Don't try connecting to remote node if preliminary node allocation has failed for any reason
M sesman/session.c

sesman/session.c

diff --git a/sesman/session.c b/sesman/session.c
index 3103405..3cdf475 100644
--- a/sesman/session.c
+++ b/sesman/session.c
@@ -471,7 +471,7 @@
   /* wait up to 5 secs for hostname to appear */
   i = 0;
   const char * hostname = raptor_sm_get_hostname_for_username(username, false);
-  while (strcmp(hostname, "") == 0)
+  while ((strcmp(hostname, "") == 0) || (strcmp(hostname, "ERROR") == 0))
   {
     g_free(hostname);
     hostname = raptor_sm_get_hostname_for_username(username, false);
@@ -583,11 +583,18 @@
     else if (wmpid == 0) /* child (child sesman) xserver */
     {
       char* remote_server = wait_for_remote_hostname(username);
-      wait_for_remote_xserver(remote_server, display);
-      env_set_user(username, 0, display);
 
-      //if (x_server_running(display))
-      if (x_server_running_check_remote_ports(remote_server, display))
+      if ((strcmp(remote_server, "") == 0) || (strcmp(remote_server, "ERROR") == 0))
+      {
+        g_free(remote_server);
+        remote_server = NULL;
+        log_message(LOG_LEVEL_ERROR, "Unable to find available node for specified user / group.  Check group mappings in database?\n");
+      }
+      else {
+        wait_for_remote_xserver(remote_server, display);
+        env_set_user(username, 0, display);
+      }
+      if (remote_server && x_server_running_check_remote_ports(remote_server, display))
       {
         g_free(remote_server);
 
@@ -688,6 +695,10 @@
       else
       {
         g_free(remote_server);
+        if (remote_server)
+        {
+          g_free(remote_server);
+        }
         log_message( LOG_LEVEL_ERROR, "another Xserver is "
                     "already active on display %d", display);
       }
8f2b22d8 2019-03-03 22:19:24 Timothy Pearson
Add debug warning when maximum session limit is hit for a specified user group
M raptorsmiface/libraptorsmiface.c

raptorsmiface/libraptorsmiface.c

diff --git a/raptorsmiface/libraptorsmiface.c b/raptorsmiface/libraptorsmiface.c
index 55e9294..1cdaae5 100644
--- a/raptorsmiface/libraptorsmiface.c
+++ b/raptorsmiface/libraptorsmiface.c
@@ -704,6 +704,7 @@
 			mysql_close(conn);
 			return false;
 		}
+		dprint("[WARNING] Maximum session limit reached for group '%s'!\n", groupname);
 		free(groupname);
 		mysql_close(conn);
 		return true;