NetBSD Problem Report #38182
From martin@duskware.de Thu Mar 6 09:11:47 2008
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by narn.NetBSD.org (Postfix) with ESMTP id 8587663B88C
for <gnats-bugs@gnats.netbsd.org>; Thu, 6 Mar 2008 09:11:47 +0000 (UTC)
Message-Id: <20080306082122.5B1A363B882@narn.NetBSD.org>
Date: Thu, 6 Mar 2008 08:21:22 +0000 (UTC)
From: rillig@NetBSD.org
Reply-To: rillig@NetBSD.org
To: netbsd-bugs-owner@NetBSD.org
Subject: fsck_msdos requires too many resources
X-Send-Pr-Version: www-1.0
>Number: 38182
>Category: bin
>Synopsis: fsck_msdos requires too many resources
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Mar 06 09:15:01 +0000 2008
>Last-Modified: Thu Mar 06 09:30:02 +0000 2008
>Originator: Roland Illig
>Release: NetBSD 4.99.30
>Organization:
>Environment:
NetBSD bacc.roland-illig.de 4.99.30 NetBSD 4.99.30 (GENERIC) #2: Fri Aug 31 20:40:16 CEST 2007 build@bacc.roland-illig.de:/home/scratch/build/NetBSD/2007-08/work/sys/arch/i386/compile/GENERIC i386
>Description:
When starting fsck_msdos, it allocates the memory for the FATs to compare them. I have a 110 GB MSDOS partition for which this amounts to about 1 GB of RAM being consumed. Since the swap space is usually available, this is not a problem, but when it is run during booting, it allocates the memory using the break() function, which cannot allocate that much memory at one time. I'll append the exact error message later.
>How-To-Repeat:
>Fix:
Don't load the complete FATs into memory, but compare them block-wise.
>Audit-Trail:
From: Roland Illig <rillig@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: bin/38182: fsck_msdos requires too many resources
Date: Thu, 06 Mar 2008 10:27:36 +0100
This is a multi-part message in MIME format.
--------------040900090005080902070609
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
--------------040900090005080902070609
Content-Type: text/plain;
name="kdump.out"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="kdump.out"
36 1 ktrace EMUL "netbsd"
36 1 ktrace CALL execve(0xbfbfea08,0xbfbfeee0,0xbfbfeeec)
36 1 ktrace NAMI "/usr/bin/fsck_msdos"
36 1 ktrace RET execve -1 errno 2 No such file or directory
36 1 ktrace CALL execve(0xbfbfea08,0xbfbfeee0,0xbfbfeeec)
36 1 ktrace NAMI "/bin/fsck_msdos"
36 1 ktrace RET execve -1 errno 2 No such file or directory
36 1 ktrace CALL execve(0xbfbfea08,0xbfbfeee0,0xbfbfeeec)
36 1 ktrace NAMI "/usr/sbin/fsck_msdos"
36 1 ktrace RET execve -1 errno 2 No such file or directory
36 1 ktrace CALL execve(0xbfbfea08,0xbfbfeee0,0xbfbfeeec)
36 1 ktrace NAMI "/sbin/fsck_msdos"
36 1 ktrace NAMI "/libexec/ld.elf_so"
36 1 fsck_msdos EMUL "netbsd"
36 1 fsck_msdos RET execve JUSTRETURN
36 1 fsck_msdos CALL mmap(0,0x8000,3,0x1002,0xffffffff,0,0,0)
36 1 fsck_msdos RET mmap -1145266176/0xbbbca000
36 1 fsck_msdos CALL open(0xbbbf71be,0,8)
36 1 fsck_msdos NAMI "/etc/ld.so.conf"
36 1 fsck_msdos RET open 3
36 1 fsck_msdos CALL __fstat30(3,0xbfbfe9e8)
36 1 fsck_msdos RET __fstat30 0
36 1 fsck_msdos CALL mmap(0,0x37,1,1,3,0,0,0)
36 1 fsck_msdos RET mmap -1145270272/0xbbbc9000
36 1 fsck_msdos CALL close(3)
36 1 fsck_msdos RET close 0
36 1 fsck_msdos CALL munmap(0xbbbc9000,0x37)
36 1 fsck_msdos RET munmap 0
36 1 fsck_msdos CALL open(0xbfbfe7ac,0,0)
36 1 fsck_msdos NAMI "/lib/libutil.so.7"
36 1 fsck_msdos RET open 3
36 1 fsck_msdos CALL __fstat30(3,0xbfbfe2e4)
36 1 fsck_msdos RET __fstat30 0
36 1 fsck_msdos CALL mmap(0,0x1000,1,1,3,0,0,0)
36 1 fsck_msdos RET mmap -1145270272/0xbbbc9000
36 1 fsck_msdos CALL munmap(0xbbbc9000,0x1000)
36 1 fsck_msdos RET munmap 0
36 1 fsck_msdos CALL mmap(0,0x12000,5,2,3,0,0,0)
36 1 fsck_msdos RET mmap -1145339904/0xbbbb8000
36 1 fsck_msdos CALL mmap(0xbbbc7000,0x2000,3,0x12,3,0,0xe000,0)
36 1 fsck_msdos RET mmap -1145278464/0xbbbc7000
36 1 fsck_msdos CALL mmap(0xbbbc9000,0x1000,3,0x1012,0xffffffff,0,0,0)
36 1 fsck_msdos RET mmap -1145270272/0xbbbc9000
36 1 fsck_msdos CALL close(3)
36 1 fsck_msdos RET close 0
36 1 fsck_msdos CALL open(0xbfbfe7ac,0,0x400)
36 1 fsck_msdos NAMI "/lib/libc.so.12"
36 1 fsck_msdos RET open 3
36 1 fsck_msdos CALL __fstat30(3,0xbfbfe2e4)
36 1 fsck_msdos RET __fstat30 0
36 1 fsck_msdos CALL mmap(0,0x1000,1,1,3,0,0,0)
36 1 fsck_msdos RET mmap -1145344000/0xbbbb7000
36 1 fsck_msdos CALL munmap(0xbbbb7000,0x1000)
36 1 fsck_msdos RET munmap 0
36 1 fsck_msdos CALL mmap(0,0xe8000,5,2,3,0,0,0)
36 1 fsck_msdos RET mmap -1146290176/0xbbad0000
36 1 fsck_msdos CALL mmap(0xbbba1000,0x7000,3,0x12,3,0,0xd0000,0)
36 1 fsck_msdos RET mmap -1145434112/0xbbba1000
36 1 fsck_msdos CALL mmap(0xbbba8000,0x10000,3,0x1012,0xffffffff,0,0,0)
36 1 fsck_msdos RET mmap -1145405440/0xbbba8000
36 1 fsck_msdos CALL close(3)
36 1 fsck_msdos RET close 0
36 1 fsck_msdos CALL mprotect(0xbbad0000,0xd1000,7)
36 1 fsck_msdos RET mprotect 0
36 1 fsck_msdos CALL mprotect(0xbbad0000,0xd1000,5)
36 1 fsck_msdos RET mprotect 0
36 1 fsck_msdos CALL __sysctl(0xbfbfee10,2,0xbbbafd00,0xbfbfee18,0,0)
36 1 fsck_msdos RET __sysctl 0
36 1 fsck_msdos CALL __fstat30(1,0xbfbfe418)
36 1 fsck_msdos RET __fstat30 0
36 1 fsck_msdos CALL __sysctl(0xbfbfe374,2,0xbfbfe3cc,0xbfbfe3d0,0,0)
36 1 fsck_msdos RET __sysctl 0
36 1 fsck_msdos CALL readlink(0xbbb9a8b2,0xbfbfe408,0x3f)
36 1 fsck_msdos NAMI "/etc/malloc.conf"
36 1 fsck_msdos RET readlink -1 errno 2 No such file or directory
36 1 fsck_msdos CALL mmap(0,0x1000,3,0x1002,0xffffffff,0,0,0)
36 1 fsck_msdos RET mmap -1146294272/0xbbacf000
36 1 fsck_msdos CALL break(0x804fee4)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL break(0x8050ee4)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL break(0x8051000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL break(0x8061000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL ioctl(1,TIOCGETA,0xbfbfe450)
36 1 fsck_msdos RET ioctl 0
36 1 fsck_msdos CALL open(0xbfbfef67,2,0)
36 1 fsck_msdos NAMI "/dev/rwd0i"
36 1 fsck_msdos RET open 3
36 1 fsck_msdos CALL write(1,0x8051000,0xe)
36 1 fsck_msdos RET write 14/0xe
36 1 fsck_msdos CALL read(3,0xbfbfeb9c,0x200)
36 1 fsck_msdos RET read 512/0x200
36 1 fsck_msdos CALL lseek(3,0,0x200,0,0)
36 1 fsck_msdos RET lseek 512/0x200
36 1 fsck_msdos CALL read(3,0xbfbfe59c,0x400)
36 1 fsck_msdos RET read 1024/0x400
36 1 fsck_msdos CALL lseek(3,0,0x400,0,0)
36 1 fsck_msdos RET lseek 1024/0x400
36 1 fsck_msdos CALL read(3,0xbfbfe99c,0x200)
36 1 fsck_msdos RET read 512/0x200
36 1 fsck_msdos CALL write(1,0x8051000,0x23)
36 1 fsck_msdos RET write 35/0x23
36 1 fsck_msdos CALL break(0xed38000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL mmap(0,0x1d000,3,0x1002,0xffffffff,0,0,0)
36 1 fsck_msdos RET mmap -1146413056/0xbbab2000
36 1 fsck_msdos CALL munmap(0xbbacf000,0x1000)
36 1 fsck_msdos RET munmap 0
36 1 fsck_msdos CALL lseek(3,0,0x4000,0,0)
36 1 fsck_msdos RET lseek 16384/0x4000
36 1 fsck_msdos CALL read(3,0x8061000,0x6cd6800)
36 1 fsck_msdos RET read 114124800/0x6cd6800
36 1 fsck_msdos CALL break(0x2a092000)
36 1 fsck_msdos RET break -1 errno 12 Cannot allocate memory
36 1 fsck_msdos CALL issetugid
36 1 fsck_msdos RET issetugid 0
36 1 fsck_msdos CALL issetugid
36 1 fsck_msdos RET issetugid 0
36 1 fsck_msdos CALL break(0xed39000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL open(0xbfbfdfd8,0,0xbfbfdf44)
36 1 fsck_msdos NAMI "/usr/share/nls/nls.alias.db"
36 1 fsck_msdos RET open -1 errno 2 No such file or directory
36 1 fsck_msdos CALL open(0xbbb9ebaf,0,0xbfbfdfa8)
36 1 fsck_msdos NAMI "/usr/share/nls/nls.alias"
36 1 fsck_msdos RET open 4
36 1 fsck_msdos CALL fcntl(4,2,1)
36 1 fsck_msdos RET fcntl 0
36 1 fsck_msdos CALL __fstat30(4,0xbfbfdf38)
36 1 fsck_msdos RET __fstat30 0
36 1 fsck_msdos CALL mmap(0,0x5f0,1,2,4,0,0,0)
36 1 fsck_msdos RET mmap -1146294272/0xbbacf000
36 1 fsck_msdos CALL close(4)
36 1 fsck_msdos RET close 0
36 1 fsck_msdos CALL break(0xed3a000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL munmap(0xbbacf000,0x5f0)
36 1 fsck_msdos RET munmap 0
36 1 fsck_msdos CALL open(0xbfbfe457,0,0xbfbfe3c8)
36 1 fsck_msdos NAMI "/usr/share/nls/C/libc.cat"
36 1 fsck_msdos RET open 4
36 1 fsck_msdos CALL __fstat30(4,0xbfbfe3c8)
36 1 fsck_msdos RET __fstat30 0
36 1 fsck_msdos CALL mmap(0,0x10be,1,1,4,0,0,0)
36 1 fsck_msdos RET mmap -1146421248/0xbbab0000
36 1 fsck_msdos CALL close(4)
36 1 fsck_msdos RET close 0
36 1 fsck_msdos CALL munmap(0xbbab0000,0x10be)
36 1 fsck_msdos RET munmap 0
36 1 fsck_msdos CALL break(0xed3a000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL break(0x8071000)
36 1 fsck_msdos RET break 0
36 1 fsck_msdos CALL close(3)
36 1 fsck_msdos RET close 0
36 1 fsck_msdos CALL write(1,0x8051000,0x3e)
36 1 fsck_msdos RET write 62/0x3e
36 1 fsck_msdos CALL exit(8)
--------------040900090005080902070609--
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.