From owner-freebsd-hackers@FreeBSD.ORG Wed May 14 08:09:17 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B0C5F37B401 for ; Wed, 14 May 2003 08:09:17 -0700 (PDT) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A1F043FAF for ; Wed, 14 May 2003 08:09:17 -0700 (PDT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.12.9/8.12.9) id h4EF9CkT046764; Wed, 14 May 2003 10:09:12 -0500 (CDT) (envelope-from dan) Date: Wed, 14 May 2003 10:09:11 -0500 From: Dan Nelson To: Bogdan TARU Message-ID: <20030514150911.GI65927@dan.emsphone.com> References: <20030514131951.O78837-100000@fw.office.icom> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030514131951.O78837-100000@fw.office.icom> X-OS: FreeBSD 5.1-BETA X-message-flag: Outlook Error User-Agent: Mutt/1.5.4i cc: freebsd-hackers@freebsd.org Subject: Re: linux binary blues X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 15:09:18 -0000 In the last episode (May 14), Bogdan TARU said: > I have a linux binary that runs well under a jail on a FreeBSD 4.8, > but fails to run on a jaili on 4.7 (obviously, both have linux > compatibility installed). > > As far as I know (don't have the sources of this linux binary), it > tries to get a lock on a file which is called engine.pid. That failes > on 4.7. > > The ktraces on the systems look like: BTW - it didn't matter in this case, but make sure you use the linux_kdump program (in the ports tree) when dumping traces from Linux executables. Some syscalls have different numbers under Linux and FreeBSD. > Good (jail on 4.8): > > 582 engine NAMI "/home/test/testbot/var/run/engine.pid" > 582 engine RET open 3 > 582 engine CALL semget(0x3,0x6,0xbfbfe820) > 582 engine RET semget 0 > 582 engine CALL getpid > 582 engine RET getpid 582/0x246 > 582 engine CALL select(0x3,0) > 582 engine RET select 0 > 582 engine CALL write(0x3,0x864c28c,0x4) > 582 engine GIO fd 3 wrote 4 bytes > > Failed (jail on 4.7): > > 10995 engine NAMI "/usr/home/ohsandy/sandy/var/run/engine.pid" > 10995 engine RET open 3 > 10995 engine CALL semget(0x3,0x6,0xbfbfe800) > 10995 engine RET semget -1 errno -22 Unknown error: -22( Do you have sysv semaphores enabled on this box? Put this in your kernel config file and rebuild: options SYSVSEM > I don't know, though, why the semget(2) has different values for the > third argument (0xbfbfe820 != 0xbfbfe800), if the binary is the same and > the linux libraries (as far as I can tell) are the same (tried with the > 4.7 linux_base package, and as well with the 4.8 linux_base package > installed on the 4.7 system). The third argument is a pointer value, so it's probably going to be different every time. -- Dan Nelson dnelson@allantgroup.com