Don't try connecting to remote node if preliminary node allocation has failed for any reason

master
Timothy Pearson 6 years ago
parent 2570846cbe
commit 9b18cc4293

@ -507,7 +507,7 @@ wait_for_remote_hostname(char* username)
/* wait up to 5 secs for hostname to appear */ /* wait up to 5 secs for hostname to appear */
i = 0; i = 0;
const char * hostname = raptor_sm_get_hostname_for_username(username, false); 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); g_free(hostname);
hostname = raptor_sm_get_hostname_for_username(username, false); hostname = raptor_sm_get_hostname_for_username(username, false);
@ -682,14 +682,22 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c,
else if (window_manager_pid == 0) else if (window_manager_pid == 0)
{ {
char* remote_server = wait_for_remote_hostname(s->username); char* remote_server = wait_for_remote_hostname(s->username);
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); wait_for_remote_xserver(remote_server, display);
env_set_user(s->username, env_set_user(s->username,
0, 0,
display, display,
g_cfg->env_names, g_cfg->env_names,
g_cfg->env_values); g_cfg->env_values);
}
if (x_server_running_check_remote_ports(remote_server, display)) if (remote_server && x_server_running_check_remote_ports(remote_server, display))
{ {
g_free(remote_server); g_free(remote_server);
@ -787,8 +795,11 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c,
"%s", g_get_errno(), g_get_strerror()); "%s", g_get_errno(), g_get_strerror());
} }
else else
{
if (remote_server)
{ {
g_free(remote_server); g_free(remote_server);
}
log_message(LOG_LEVEL_ERROR, "another Xserver might " log_message(LOG_LEVEL_ERROR, "another Xserver might "
"already be active on display %d - see log", display); "already be active on display %d - see log", display);
} }

Loading…
Cancel
Save