From 551748ef44550da49237a4d0034f05e19c166c34 Mon Sep 17 00:00:00 2001 From: Matthew LeGendre Date: Wed, 30 Sep 2026 11:28:31 -0700 Subject: [PATCH 1/3] Don't create commpath directories on front-end process --- src/fe/startup/parse_launcher.cc | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/fe/startup/parse_launcher.cc b/src/fe/startup/parse_launcher.cc index 9edb3f23..83dd08ce 100644 --- a/src/fe/startup/parse_launcher.cc +++ b/src/fe/startup/parse_launcher.cc @@ -291,12 +291,7 @@ int ModifyArgv::modifyCmdLine() char options_str[32]; snprintf(options_str, 32, "%lu", (unsigned long) params->opts); string options(options_str); - - int rc = getFirstValidPath( params->commpaths, &( params->commpath ), params->number ); - if( rc != 0 ){ - return -1; - } - string commpath(params->commpath); + int rc; char number_str[32]; snprintf(number_str, 32, "%lu", (unsigned long) params->number); @@ -323,7 +318,7 @@ int ModifyArgv::modifyCmdLine() if (p == parser->appExecutableAt()) { #if defined(os_bluegene) string bg_env_str = parser->getParser()->getBGString(); - parser->getParser()->addBGEnvStr(n, new_argv, bg_env_str, default_libstr, intercept_libstr, commpath, number, options, shmcache_size); + parser->getParser()->addBGEnvStr(n, new_argv, bg_env_str, default_libstr, intercept_libstr, params->commpaths, number, options, shmcache_size); #else char **a_argv; int a_argc; From 55dd0da121bc1959ced8e11064415b7b48db183c Mon Sep 17 00:00:00 2001 From: Matthew LeGendre Date: Wed, 30 Sep 2026 11:29:54 -0700 Subject: [PATCH 2/3] Fix race where clients would make commpath, leaving server thinking it didn't need to clean it --- src/server/auditserver/ldcs_audit_server_filemngt.c | 1 + src/utils/spindle_mkdir.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/auditserver/ldcs_audit_server_filemngt.c b/src/server/auditserver/ldcs_audit_server_filemngt.c index eaf3995c..db2d163b 100644 --- a/src/server/auditserver/ldcs_audit_server_filemngt.c +++ b/src/server/auditserver/ldcs_audit_server_filemngt.c @@ -59,6 +59,7 @@ static char *filemngt_normalize_dir(char *dir) { int ldcs_audit_server_filemngt_init (char *cachepath, char *commpath) { int rc=0; + debug_printf2("Setting cachepath to '%s' and commpath to '%s'\n", cachepath, commpath); _ldcs_audit_server_cachepath = cachepath; _ldcs_audit_server_commpath = commpath; if (-1 == spindle_mkdir(_ldcs_audit_server_cachepath)) { diff --git a/src/utils/spindle_mkdir.c b/src/utils/spindle_mkdir.c index cd36e9d6..b820482b 100644 --- a/src/utils/spindle_mkdir.c +++ b/src/utils/spindle_mkdir.c @@ -142,10 +142,10 @@ int spindle_mkdir(char *orig_path) } else { debug_printf3("Did a mkdir(%s)\n", path); + } #if defined(TRACK_MKDIR) - track_mkdir(path); + track_mkdir(path); #endif - } } path[i] = orig_char; @@ -160,6 +160,9 @@ int spindle_mkdir(char *orig_path) if (checkdir(path) == -1) { return -1; } +#if defined(TRACK_MKDIR) + track_mkdir(path); +#endif } return 0; } From fa47e1fd2a3640247acdbb26a05cc49e7af9a711 Mon Sep 17 00:00:00 2001 From: Matthew LeGendre Date: Wed, 30 Sep 2026 11:30:50 -0700 Subject: [PATCH 3/3] Fix issue where symlink paths were being tracked for cleanup when we should track real paths --- src/utils/parseloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/parseloc.c b/src/utils/parseloc.c index 0c994e86..eaf6490d 100644 --- a/src/utils/parseloc.c +++ b/src/utils/parseloc.c @@ -366,7 +366,7 @@ static int validateCandidatePath( char *candidatePath, char **realizedPath, char if( parsedCandidatePath ){ realizedCandidatePath = realize( parsedCandidatePath ); if( realizedCandidatePath ){ - rc = spindle_mkdir( parsedCandidatePath ); + rc = spindle_mkdir( realizedCandidatePath ); if( 0 == rc ){ // candidatePath is going to be freed in the calling function. // symbolicPath needs a strdup(). parsedPath() and realizedPath()