[New-bugs-announce] [issue31940] copystat on symlinks fails for alpine -- faulty lchmod implementation?
Anthony Sottile
report at bugs.python.org
Fri Nov 3 19:51:13 EDT 2017
New submission from Anthony Sottile <asottile at umich.edu>:
Fortunately, this can be reproduced with the testsuite:
```
======================================================================
ERROR: test_copystat_symlinks (__main__.TestShutil)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python3.6/test/test_shutil.py", line 366, in test_copystat_symlinks
os.lchmod(src_link, stat.S_IRWXO)
OSError: [Errno 95] Not supported: '/tmp/tmplfli9msi/baz'
```
My simplest reproduction involves docker:
```dockerfile
FROM alpine
RUN apk update && apk add curl python3
RUN mkdir foo && ln -s /dev/null foo/bar
CMD [ \
"python3", "-c", \
"import shutil; shutil.copytree('foo', 'bar', symlinks=True)" \
]
```
```
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.6/shutil.py", line 359, in copytree
raise Error(errors)
shutil.Error: [('foo/bar', 'bar/bar', "[Errno 95] Not supported: 'bar/bar'")]
```
By looking at pyconfig, I get the following:
```
/ # grep -E '(HAVE_FCHMODAT|HAVE_LCHMOD)' /usr/include/python3.6m/pyconfig.h
#define HAVE_FCHMODAT 1
#define HAVE_LCHMOD 1
```
But it seems lchmod is actually nonfunctional in this case.
I think the fix is to augment `configure` to detect faulty `lchmod` and not set `HAVE_LCHMOD`? I'm not terribly familiar with the autotools pipeline but that's where I'm going to take a stab at it!
I'm originally finding this issue via https://github.com/pre-commit/pre-commit/issues/655
----------
components: Build, Library (Lib), Tests
messages: 305527
nosy: Anthony Sottile
priority: normal
severity: normal
status: open
title: copystat on symlinks fails for alpine -- faulty lchmod implementation?
versions: Python 3.6, Python 3.7, Python 3.8
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue31940>
_______________________________________
More information about the New-bugs-announce
mailing list