[Python-Dev] Strange umask(?)/st_mode issue

Kushal Kumaran kushal at locationd.net
Sat Mar 30 14:00:25 EDT 2019


Steve Dower <steve.dower at python.org> writes:

> On 29Mar.2019 1944, Steve Dower wrote:
>> On 29Mar.2019 1939, Cameron Simpson wrote:
>>> Can you get a branch into your pipeline? Then you could just hack the
>>> tarfile test with something quick and dirty like:
>>>
>>>    pid = os.getpid()
>>>    system("strace -p %d 2>/path/to/strace.out &" % pid)
>>>    time.sleep(2)   # get strace heaps of time to start
>>>
>>> just before the tarfile open. A ghastly hack but it would get you
>>> debugging info. You could even decide to remove the strace.out file if
>>> the umask issue doesn't show, if it is erratic (can't see why it would
>>> be though).
>> 
>> Perfect, I'll give this a go. Thanks!
>
> I set up a PR to collect this trace and the results are at:
> https://github.com/python/cpython/pull/12625
>
> However, I suspect it's a non-result:
>
> umask(022)                              = 022
> open("/home/vsts/work/1/s/build/test_python_5154/@test_5154_tmp-tardir/tmp.tar",
> O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
> write(3, "BZh91AY&SYY{\270\344\0\0\24P\0\300\0\4\0\0\10
> \0000\314\5)\246"..., 46) = 46
> close(3)                                = 0
> stat("/home/vsts/work/1/s/build/test_python_5154/@test_5154_tmp-tardir/tmp.tar",
> {st_mode=S_IFREG|0666, st_size=46, ...}) = 0
>
> Happy to take more suggestions if anyone has them.
>

The file must exist already.  Try moving the strace capturing to before
the unlink.

-- 
regards,
kushal


More information about the Python-Dev mailing list