[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] output files and umask



On Fri, Feb 3, 2017 at 2:08 PM, Todd Tannenbaum <tannenba@xxxxxxxxxxx> wrote:
>
> I am working from memory here, but I think by default the stdout and stderr
> for your job will be created by condor_submit.  This explains why your
> USER_JOB_WRAPPER script setting umask won't help with stdout and stderr.
> However, if the umask is 0640 in the environment running condor_submit (is
> it?  or perhaps these jobs are submitted by dagman?), I'd expect the
> permissions to be correct.

the umask of 027 is defined in everyone's .profile .cshrc, so if the
creation of the file happens as the user (either by condor_submit or
dagman) i would expect these files to come out with the 640
permissions.  i'll push down this rabbit hole and see what turns up.
one of the questions i couldn't answer was who was actually creating
these files (ie submit or shadow, user or daemon process)

> Perhaps one quick workaround that would be easy to try is to just tell
> condor_submit to not create the stdout/err files, and let the job do that on
> its own.  That way the umask setting in your USER_JOB_WRAPPER should do the
> trick.  To do this, you can put in your job submit file
>   skip_file_checks = True
> or if you want to change the default behavior for condor_submit, you could
> put in your condor_config file:
>    SUBMIT_SKIP_FILECHECKS = True
>
> Personally, I'd like to see the default for SUBMIT_SKIP_FILECHECKS to switch
> from False to True in future HTCondor releases... anyone object?

The behavior i've noticed so far is, that if someone creates a file
via their program, the user_job_wrapper does seem to correct any
maligned umask settings.  this did fix a bunch of people we had
problems with.

but i'm not sure i understand what the submit_skip_filechecks is
doing.  does this mean users would no longer get the output/error
files precreated and the endless string of dots when they submit a
job?  if that's true, it's an interesting use case for us, because we
have people that submit 65k processes per cluster (no dagman).  but i
don't understand what happens when that user uses a standard printf to
get output, where does it go?  or does the user also have open stdout
to a file in their program?