Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jan 2011 16:34:10 +0100
From:      =?ISO-8859-1?Q?Beat_G=E4tzi?= <beat@chruetertee.ch>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        current@freebsd.org
Subject:   Re: Running linux ldconfig on tmpfs results in unkillable process
Message-ID:  <4D35B2F2.1000804@chruetertee.ch>
In-Reply-To: <20110118144611.GP2518@deviant.kiev.zoral.com.ua>
References:  <4D35A0BB.3010601@chruetertee.ch> <20110118144611.GP2518@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On 18.01.2011 15:46, Kostik Belousov wrote:
> On Tue, Jan 18, 2011 at 03:16:27PM +0100, Beat G?tzi wrote:
>> Hi,
>>
>> I've a tinderbox which uses tmpfs to build ports. Every time I build a
>> port which executes linux ldconfig it results in an unkillable process
>> which uses 100% CPU. The problem is reproduceable without tinderbox:
>>
>> # uname -a
>> FreeBSD daedalus.network.local 9.0-CURRENT FreeBSD 9.0-CURRENT #3
>> r216761: Tue Dec 28 15:32:26 CET 2010
>> root@daedalus.network.local:/usr/obj/usr/src/sys/GENERIC  i386
>> # mkdir /compat/test
>> # mount -t tmpfs tmpfs /compat/test
>> # cp -Rp /compat/linux/* /compat/test/
>> # mount -t linprocfs linprocfs /compat/test/proc
>> # /compat/linux/sbin/ldconfig -r /compat/test/
>> # pgrep ldconfig
>> 3449
>> # procstat -i 3449 | grep KILL
>>  3449 ldconfig         KILL     ---
>> # kill -9 3449
>> # procstat -i 3449 | grep KILL
>>  3449 ldconfig         KILL     P--
>>
>> >From top(1):
>> PID USERNAME THR PRI NICE  SIZE   RES STATE    C  TIME   WCPU COMMAND
>> 3449 root     1  44    0   992K   712K CPU1    1  10:06 100.00% ldconfig
>>
>> When I reboot the machine it hangs after "All buffers synced.".
>>
>> I've uploaded some additional output of procstat and ktrace here:
>> http://people.freebsd.org/~beat/logs/linux-ldconfig-tmpfs.txt
>>
>> Anyone knows how to fix this?
> kdump for the trace of the linux binary is a garbage. You need to
> use linux_kdump (from ports).
> 
> I think that your process is looping in the kernel, you can confirm this
> by dropping in the ddb and doing "bt <pid>".

I've uploaded a screenshot from the output of bt <pid> in ddb:
http://people.freebsd.org/~beat/logs/linux-ldconfig-tmpfs-bt.jpg

Thanks,
Beat



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D35B2F2.1000804>