Upgrading pkg from 1.15.6 to 1.15.8 on an aarch64 system (a Raspi 3) running 12.1-RELEASE-p6 results in a /usr/local/etc/pkg.conf file containing nothing but NULs: # ls -l pkg.conf* -rw-r--r-- 1 root wheel 2366 Oct 2 21:08 pkg.conf -rw-r--r-- 1 root wheel 2366 Oct 2 20:40 pkg.conf.sample # hd < pkg.conf 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000930 I have no clue about what exactly is going on, but the difference between my 1.15.6 and 1.15.8 packages (built locally with poudriere) is that in 1.15.6, the post-install script is sh, while in 1.15.8, it's lua. Also, there is this bit in the ktrace output from installing the 1.15.8 package: 64549 pkg CALL fstatat(0xb,0x4182a809,0xffffffffc348,0x200<AT_SYMLINK_NOF OLLOW>) 64549 pkg NAMI "usr/local/etc/pkg.conf" 64549 pkg RET fstatat -1 errno 2 No such file or directory 64549 pkg CALL fstatat(0xb,0x4186efd9,0xffffffffc348,0x200<AT_SYMLINK_NOF OLLOW>) 64549 pkg NAMI "usr/local/etc/pkg.conf.sample" 64549 pkg STRU struct stat {dev=88, ino=27515, mode=0100644, nlink=1, uid=0, gid=0, rdev=97055, atime=0, mtime=1601664004, ctime=1601664713.277981000, birthtime=1601664004, size=2366, blksize=32768, blocks=8, flags=0x0 } 64549 pkg RET fstatat 0 64549 pkg CALL openat(0xb,0x4186efd9,0<O_RDONLY>) 64549 pkg NAMI "usr/local/etc/pkg.conf.sample" 64549 pkg RET openat 12/0xc 64549 pkg CALL openat(0xb,0x4182a809,0xe01<O_WRONLY|O_CREAT|O_TRUNC|O_EXCL>,0666<S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH>) 64549 pkg NAMI "usr/local/etc/pkg.conf" 64549 pkg RET openat 15/0xf 64549 pkg CALL ftruncate(0xf,0x93e) 64549 pkg RET ftruncate 0 64549 pkg CALL mmap(0,0x93e,0x1<PROT_READ>,0x1<MAP_SHARED>,0xc,0) 64549 pkg RET mmap 1100906496/0x419e8000 64549 pkg CALL mmap(0,0x93e,0x2<PROT_WRITE>,0x1<MAP_SHARED>,0xf,0) 64549 pkg RET mmap 1100910592/0x419e9000 64547 pkg RET poll 1 64547 pkg CALL fstat(0xc,0xffffffffd078) 64547 pkg STRU struct stat {dev=18446744073709551615, ino=135317, mode=0140000, nlink=0, uid=0, gid=0, rdev=0, atime=0, mtime=0, ctime=0, birthtime=0, size=0, blksize=8192, blocks=0, flags=0x0 } 64547 pkg RET fstat 0 64547 pkg CALL read(0xc,0x41855000,0x2000) 64547 pkg GIO fd 12 read 0 bytes "" 64547 pkg RET read 0 64547 pkg CALL close(0xc) 64547 pkg RET close 0 64547 pkg CALL wait4(0xfc25,0xffffffffd504,0,0) 64549 pkg PSIG SIGSEGV SIG_DFL code=SEGV_ACCERR 64549 pkg CAP restricted VFS lookup 64547 pkg RET wait4 64549/0xfc25 I don't know which exact operation it was that caused capsicum to kill the process (64549) forked to copy pkg.conf.sample to pkg.conf, but this appears to be what happened. It finds that pkg.conf does not exist, determines the size of pkg.conf.sample, creates pkg.conf and ftruncate()s it to the same size full of NULs (where have I seen that before?), mmap()s the two---and suffers spontaneous existence failure. In contrast, the sh version of the script runs /bin/cp, which works perfectly fine. The same behavior does not occur with 12.1-RELEASE-p10 on amd64. There do not appear to be changes between 12.1-RELEASE-p6 and current -p10 that might have fixed this.
I have the same issue on arm64, but not on armv7 or amd64 running 12.2-STABLE (r366197). (Please assign to pkg@).
Still happening with pkg 1.15.9.
Ditto, same problem here on aarc64 running on 12.1-p10, and pkg 1.15.9
A commit references this bug: Author: manu Date: Sun Oct 11 13:00:44 UTC 2020 New revision: 552059 URL: https://svnweb.freebsd.org/changeset/ports/552059 Log: ports-mgmt/pkg: Update to 1.15.10 Add a workaround for https://bugs.freebsd.org/250271 PR: 250059 Approved by: bapt (implicit) MFH: 2020Q4 Changes: head/ports-mgmt/pkg/Makefile head/ports-mgmt/pkg/distinfo
A commit references this bug: Author: bapt Date: Mon Oct 12 06:51:55 UTC 2020 New revision: 552099 URL: https://svnweb.freebsd.org/changeset/ports/552099 Log: MFH: r551167 r551211 r551416 r552059 ports-mgmt/pkg: Update to 1.15.7 Changes from 1.15.6 to 1.15.7: - Fix %# expand in script Approved by: bapt (implicit) Update to 1.15.8 Fixes a typo which results in pkg ignoring some lua script in some particular circumpstancies: shell script also available in certain types ports-mgmt/pkg: Update to 1.15.9 Changes from 1.15.8 to 1.15.9: - lua_pkg_copy when copying a symlink PR: 248314 Approved by: bapt (implicit) ports-mgmt/pkg: Update to 1.15.10 Add a workaround for https://bugs.freebsd.org/250271 PR: 250059 Approved by: bapt (implicit) Changes: _U branches/2020Q4/ branches/2020Q4/ports-mgmt/pkg/Makefile branches/2020Q4/ports-mgmt/pkg/distinfo