From owner-freebsd-fs@freebsd.org Thu Mar 9 18:46:58 2017 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F8D0D05A3A; Thu, 9 Mar 2017 18:46:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2CE51A70; Thu, 9 Mar 2017 18:46:57 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 3B21010A7B9; Thu, 9 Mar 2017 13:46:54 -0500 (EST) From: John Baldwin To: freebsd-current@freebsd.org Cc: Gergely Czuczy , freebsd-fs@freebsd.org Subject: Re: process killed: text file modification Date: Thu, 09 Mar 2017 10:44:27 -0800 Message-ID: <55189643.aaZPuY77s8@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <45436522-77df-f894-0569-737a6a74958f@harmless.hu> References: <646c1395-9482-b214-118c-01573243ae5a@harmless.hu> <45436522-77df-f894-0569-737a6a74958f@harmless.hu> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Thu, 09 Mar 2017 13:46:54 -0500 (EST) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Mar 2017 18:46:58 -0000 On Thursday, March 09, 2017 03:31:56 PM Gergely Czuczy wrote: > [+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 > > > > 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 Can you print out the two mtimes? I wonder if what's happening is that your server uses different granularity (for example just seconds) than your client, so on the client we generate a timestamp with a non-zero nanoseconds but when the server receives that timestamp it "truncates" it. During open() we forcefully re-fetch the timestamp (for CTO consistency) and then notice it doesn't match. For now I would start with comparing the timestamps and maybe the vfs.timestamp_precision sysctls on client and server (if server is a FreeBSD box). -- John Baldwin