From owner-freebsd-stable@FreeBSD.ORG Mon May 14 21:24:02 2012 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 349641065670 for ; Mon, 14 May 2012 21:24:02 +0000 (UTC) (envelope-from andrey@zonov.org) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9E4AB8FC14 for ; Mon, 14 May 2012 21:24:01 +0000 (UTC) Received: by lbon10 with SMTP id n10so5079286lbo.13 for ; Mon, 14 May 2012 14:24:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding :x-gm-message-state; bh=yBk7v7vfohtifUbPgMfTfNhf1O4Xlf8io+Yr6lt0feQ=; b=Glgs9Bj+/CvxYbdKkNJf3bMQ0jCWeq7Ms6ofQ/68NzVTyIfNdzVopDuDgai92BhD5F KGJtcEeBW5/OyPgwczUa6As0HzDxOD/4s+o9VHNFbP82yd8WsnJiUdr2TqN00DpTBgQq 6goOQynNpos981QuuTwJKd8Av2yiovjLJnh9OaI+M8vjknffJiQpd4kKCa8OiiApywkX xYZhCkPgzT9jgkgIQG8XgEHY17+LVSHglcB9mTrm6hvMpq+nw2zm74vyWFP/7GnAUUyq miB2zjbuyAWqPMyNyp9MIhefuLEruGNQ9qx+R4YXBVIiwex57S3Jyn7jRLMCcqlk5Fmf wIDw== Received: by 10.152.145.1 with SMTP id sq1mr9974870lab.22.1337030640421; Mon, 14 May 2012 14:24:00 -0700 (PDT) Received: from zont-osx.local (ppp95-165-141-253.pppoe.spdop.ru. [95.165.141.253]) by mx.google.com with ESMTPS id pi5sm20690577lab.7.2012.05.14.14.23.59 (version=SSLv3 cipher=OTHER); Mon, 14 May 2012 14:24:00 -0700 (PDT) Message-ID: <4FB177EE.7030808@zonov.org> Date: Tue, 15 May 2012 01:23:58 +0400 From: Andrey Zonov User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: Mateusz Guzik References: <4FAFEEEF.3040706@zonov.org> <20120513202920.GA18238@dft-labs.eu> In-Reply-To: <20120513202920.GA18238@dft-labs.eu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Gm-Message-State: ALoCoQlpRKNMMyPOdYBHtHwy/vr66uM+iJNVhLgt0idBZIiRJO3YcVNfIxS2kmrQnXznN+n1bUwA Cc: trasz@freebsd.org, freebsd-stable Subject: Re: panic with overcommit and RACCT X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 May 2012 21:24:02 -0000 On 5/14/12 12:29 AM, Mateusz Guzik wrote: > On Sun, May 13, 2012 at 09:27:11PM +0400, Andrey Zonov wrote: >> Hi, >> >> I've got a repeatable panic on latest 9.0-STABLE and HEAD with >> turned on overcommit (vm.overcommit=1) and RACCT. >> >> kgdb trace on today's HEAD: >> >> #10 0xffffffff80bc3513 in calltrap () >> at /usr/src/sys/amd64/amd64/exception.S:228 >> #11 0xffffffff808aab71 in racct_set_locked (p=0xfffffe0005d684a0, >> resource=0, >> amount=2680) at /usr/src/sys/kern/kern_racct.c:372 >> #12 0xffffffff808ab645 in racct_proc_exit (p=0xfffffe0005d684a0) >> at /usr/src/sys/kern/kern_racct.c:615 >> #13 0xffffffff80880d69 in fork1 (td=0xfffffe0005b2c460, flags=20, pages=4, >> procp=0xffffff811a36bb00, procdescp=Variable "procdescp" is not >> available. >> ) at /usr/src/sys/kern/kern_fork.c:943 >> #14 0xffffffff80882362 in sys_fork (td=0xfffffe0005b2c460, >> uap=Variable "uap" is not available. >> ) >> at /usr/src/sys/kern/kern_fork.c:110 >> #15 0xffffffff80bd7a89 in amd64_syscall (td=0xfffffe0005b2c460, traced=0) >> at subr_syscall.c:135 >> #16 0xffffffff80bc37f7 in Xfast_syscall () >> at /usr/src/sys/amd64/amd64/exception.S:387 >> #17 0x00000008024729fc in ?? () >> Previous frame inner to this frame (corrupt stack?) >> (kgdb) >> >> Unread portion of the kernel message buffer: >> Kernel page fault with the following non-sleepable locks held: >> exclusive sleep mutex racct lock (racct lock) r = 0 >> (0xffffffff8128a7c0) locked @ /usr/src/sys/kern/kern_racct.c:614 >> exclusive sleep mutex process lock (process lock) r = 0 >> (0xfffffe0005d68598) locked @ /usr/src/sys/kern/kern_racct.c:603 >> > > It looks like racct_proc_exit can be called for processes without > properly initialized racct structure, which in turn results in this > panic. > > Can you please test this patch: > http://student.agh.edu.pl/~mjguzik/patches/racct-fork.patch > > ? > > I was unable to reproduce panic you describe, so it was tested only by > manually injecting error. Nevertheless I think you should try it. :) > Thanks, your patch fixes the panic. How to repeat: 1. add options RACCT and options RCTL to kernel config, rebuild and install kernel, reboot 2. set sysctl vm.overcommit=1 3. run as none root something that eats memory (I just run malloc() until it returns NULL) 4. swapoff -a 5. panic after sometime With patch applied instead of panic I got: "fork: Cannot allocate memory". Looks like a bug in overcommit code. -- Andrey Zonov