--- src/resmom/job_func.c.orig 2010-09-11 05:37:24.000000000 +1000 +++ src/resmom/job_func.c 2011-04-19 09:59:54.675557000 +1000 @@ -632,39 +632,43 @@ if (pjob->ji_flags & MOM_HAS_TMPDIR) { - if (TTmpDirName(pjob, namebuf)) + if (pjob->ji_qs.ji_svrflags & JOB_SVFLG_HERE) /* START: Only remove $TMPDIR on MS - VLSCI */ { - sprintf(log_buffer, "removing transient job directory %s", - namebuf); + if (TTmpDirName(pjob, namebuf)) + { + sprintf(log_buffer, "removing transient job directory %s", + namebuf); + + log_record( + PBSEVENT_DEBUG, + PBS_EVENTCLASS_JOB, + pjob->ji_qs.ji_jobid, + log_buffer); + + if ((setegid(pjob->ji_qs.ji_un.ji_momt.ji_exgid) == -1) || + (seteuid(pjob->ji_qs.ji_un.ji_momt.ji_exuid) == -1)) + { + /* FAILURE */ + + return; + } + + rc = remtree(namebuf); + + seteuid(0); + setegid(pbsgroup); + + if ((rc != 0) && (LOGLEVEL >= 5)) + { + sprintf(log_buffer, + "recursive remove of job transient tmpdir %s failed", + namebuf); + + log_err(errno, "recursive (r)rmdir", + log_buffer); + } - log_record( - PBSEVENT_DEBUG, - PBS_EVENTCLASS_JOB, - pjob->ji_qs.ji_jobid, - log_buffer); - - if ((setegid(pjob->ji_qs.ji_un.ji_momt.ji_exgid) == -1) || - (seteuid(pjob->ji_qs.ji_un.ji_momt.ji_exuid) == -1)) - { - /* FAILURE */ - - return; - } - - rc = remtree(namebuf); - - seteuid(0); - setegid(pbsgroup); - - if ((rc != 0) && (LOGLEVEL >= 5)) - { - sprintf(log_buffer, - "recursive remove of job transient tmpdir %s failed", - namebuf); - - log_err(errno, "recursive (r)rmdir", - log_buffer); - } + } /* END: Only remove $TMPDIR on MS - VLSCI */ pjob->ji_flags &= ~MOM_HAS_TMPDIR; }