apk upgrade/del fails when package contains symlinks to dirs in /etc
If a package contains symlinks in /etc to a dir then will apk go nuts on ‘del’ and ‘upgrade’. Strace shows that it open(2) the dir and tries to read(2) it for ever:
read(8, 0x9a3af40, 8192) = -1 EISDIR (Is a directory)
read(8, 0x9a3af40, 8192) = -1 EISDIR (Is a directory)
...
It is probably the /etc protector that want to verify if the content changed or not. I suppose it should skip symlinks.
(from redmine: issue id 188, created on 2009-10-21, closed on 2010-01-01)
- Changesets:
- Revision a7360395 by Timo Teräs on 2009-10-26T07:46:09Z:
db: fix migration and pruning of symlinks to dirs
the old code treated a symlink to directory as file; it tried
to calculate regular has of it. fix this by: 1) using no follow
on migration and pruning stats, and 2) the helper function to
check if it's point to directory and not calculate hash in that
case. fixes #188.