From owner-freebsd-hackers@FreeBSD.ORG Tue Jul 19 00:19:11 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5A811065670 for ; Tue, 19 Jul 2011 00:19:11 +0000 (UTC) (envelope-from falkman@gamozo.org) Received: from mta11.charter.net (mta11.charter.net [216.33.127.80]) by mx1.freebsd.org (Postfix) with ESMTP id 7E2038FC0C for ; Tue, 19 Jul 2011 00:19:11 +0000 (UTC) Received: from imp10 ([10.20.200.15]) by mta11.charter.net (InterMail vM.7.09.02.04 201-2219-117-106-20090629) with ESMTP id <20110719001910.SSFJ4091.mta11.charter.net@imp10>; Mon, 18 Jul 2011 20:19:10 -0400 Received: from [192.168.1.125] ([75.135.75.204]) by imp10 with smtp.charter.net id 9cK91h00E4QU3rf05cK9Cu; Mon, 18 Jul 2011 20:19:10 -0400 X-Authority-Analysis: v=1.1 cv=G6Q69DB3AUoJKS2BpLRaz8MQ2NORN7h5HRzrJMPOhRw= c=1 sm=1 a=qGV6uSQ7kSsA:10 a=YzQM1Zd3q-sA:10 a=EZ1XIdwCItEA:10 a=8nJEP1OIZ-IA:10 a=HEs2YkztZRVyeANDsLw8Eg==:17 a=Twq80G31HvXCSWYLlK4A:9 a=I1MSExzIpqJtw2PBf2cA:7 a=wPNLvfGTeEIA:10 a=HEs2YkztZRVyeANDsLw8Eg==:117 Message-ID: <4E24CD87.4010906@gamozo.org> Date: Mon, 18 Jul 2011 19:19:19 -0500 From: Brandon Falk User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: Andriy Gapon References: <4E2448D1.6020504@gamozo.org> <4E244EE1.40604@FreeBSD.org> In-Reply-To: <4E244EE1.40604@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@FreeBSD.org Subject: Re: Issue with 'Unknown Error: -512' X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2011 00:19:12 -0000 On 7/18/2011 10:18 AM, Andriy Gapon wrote: > on 18/07/2011 17:53 Brandon Falk said the following: >> Hello, >> >> In recent branches (confirmed with 224119) builds compiled with clang happen to >> throw 'Unknown error: -512' in a lot of places, making the system unusable. >> (Untested on gcc compiled systems). Originally I thought the problem was with >> specific programs, then I narrowed it down to file I/O, and now I've narrowed it >> down to open() with O_TRUNC. Without O_TRUNC there seems to be no issues >> whatsoever. With O_TRUNC on open() it fails with that 'Unknown error: -512' every >> other time you run the program. Common issues, portsnap is affected, making it >> impossible to fetch/extract ports. As well as redirecting output in shells eg >> `echo 'hi'> test` fails every other try. You have the same issue with text >> editors like `edit` where it fails every other save. There are no issues with >> `echo 'hi'>> test` as there is no O_TRUNC, it only seems to be an O_TRUNC error. >> >> Any tips? Otherwise I'll be looking into this today myself. > > Just a hint that you could try using DTrace syscall and fbt providers to see where > in kernel (if in kernel) that -512 return value originates. > Update: I've traced more and more into the kernel, and currently I have found the following trace: >>> ufs_setattr() (in sys/ufs/ufs/ufs_vnops.c:507) (In truncate a bunch of stuff is done, but it succeeds until VOP_SETATTR) >>> vn_truncate() (in sys/kern/vfs_vnops.c:636) >>> kern_openat() (in sys/kern/vfs_syscalls.c:1043) >>> kern_open() (in sys/kern/vfs_syscalls.c:1035) >>> open() (in sys/kern/vfs_syscalls.c:1006) ufs_setattr() returns with -1 (EPERM) I'll continue to try to find the exact problem. A quick workaround currently would probably be to use a different filesystem other than ufs, but then again, I have no clue if other filesystems have the same issue. Hopefully that trace will help anyone who wants to help out. -Brandon Falk