Date: Thu, 9 Mar 2017 15:31:56 +0100 From: Gergely Czuczy <gergely.czuczy@harmless.hu> To: freebsd-current@freebsd.org, freebsd-fs@freebsd.org Subject: Re: process killed: text file modification Message-ID: <45436522-77df-f894-0569-737a6a74958f@harmless.hu> In-Reply-To: <646c1395-9482-b214-118c-01573243ae5a@harmless.hu> References: <d4d04499-17f8-e3d7-181f-c8ee8285e32b@harmless.hu> <646c1395-9482-b214-118c-01573243ae5a@harmless.hu>
next in thread | previous in thread | raw e-mail | index | archive | help
[+freebsd-fs] On 2017. 03. 09. 14:20, Gergely Czuczy wrote: > On 2017. 03. 09. 11:27, Gergely Czuczy wrote: >> Hello, >> >> I'm trying to build a few things from ports on an rpi3, the ports >> collection is mounted over NFS from another machine. When it's trying >> to build pkg i'm getting the error message in syslog: >> >> rpi3 kernel: pid 4451 (sh), uid 0, was killed: text file modification >> >> The report to pkg@: >> https://lists.freebsd.org/pipermail/freebsd-pkg/2017-March/002048.html >> >> In ports-mgmt/pkg's config.log It fails at the following entry: >> configure:3726: checking whether we are cross compiling >> configure:3734: cc -o conftest -O2 -pipe -Wno-error >> -fno-strict-aliasing conftest.c >&5 >> configure:3738: $? = 0 >> configure:3745: ./conftest >> configure:3749: $? = 137 >> configure:3756: error: in `/usr/ports/ports-mgmt/pkg/work/pkg-1.10.0': >> configure:3760: error: cannot run C compiled programs. >> If you meant to cross compile, use `--host'. >> See `config.log' for more details >> >> # uname -a >> FreeBSD rpi3 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r314949: Thu Mar 9 >> 08:58:46 CET 2017 >> aegir@marvin.harmless.hu:/tank/rpi3/crochet/work/obj/arm64.aarch64/tank/rpi3/src/sys/AEGIR >> arm64 > So far, a few additions: > Time is synced between the NFS server and the client. > it's an open() call which is getting the kill, and it's not the file > what's being opened, but the process executing it. > Here's a simple code that reproduces it: > #include <stdio.h> > > int main() { > > FILE *f = fopen ("/bar", "w"); > > fclose(f); > return 0; > } > > Conditions to reproduce it: > - The resulting binary must be executed from the nfs mount > - The binary must be built after mounting the NFS share. > > I haven't tried building it on a different host, I don't have access > to multiple RPis. Also, if I build the binary, umount/remount the NFS > mount point, which has the binary, execute it, then it works. > > I've also tried this with the raspbsd.org's image, I could reproduce > it as well. > > Another interesting thing is, when I first booted the RPi up, the NFS > server was a 10.2-STABLE, and later got updated to 11-STABLE. While it > was 10.2 I've tried to build some port, and I don't remember having > this issue. > > So, could someone please help me figure this out and fix it? This > stuff should work pretty much. > So, this error message comes from here: https://svnweb.freebsd.org/base/head/sys/fs/nfsclient/nfs_clbio.c?revision=314436&view=markup#l1674 It's the NFS_TIMESPEC_COMPARE(&np->n_mtime, &np->n_vattr.na_mtime) comparision that fails, np should be the NFS node structure, from the vnode's v_data, and n_vattr is the attribute cache. As I've seen these two are being updated together, so I don't really see by the code why they might differ. Could someone please take a look at it, with more experience in the NFS code? -czg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45436522-77df-f894-0569-737a6a74958f>