From unknown Fri Sep 05 08:42:14 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#10064 <10064@debbugs.gnu.org> To: bug#10064 <10064@debbugs.gnu.org> Subject: Status: sort: sometimes segfault with certain limits (using prlimit) Reply-To: bug#10064 <10064@debbugs.gnu.org> Date: Fri, 05 Sep 2025 15:42:14 +0000 retitle 10064 sort: sometimes segfault with certain limits (using prlimit) reassign 10064 coreutils submitter 10064 Bernhard Voelker severity 10064 normal tag 10064 notabug thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 16 12:26:10 2011 Received: (at submit) by debbugs.gnu.org; 16 Nov 2011 17:26:10 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RQjFR-0007n1-AY for submit@debbugs.gnu.org; Wed, 16 Nov 2011 12:26:10 -0500 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RQjFP-0007mf-5P for submit@debbugs.gnu.org; Wed, 16 Nov 2011 12:26:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RQjEY-0004If-TI for submit@debbugs.gnu.org; Wed, 16 Nov 2011 12:25:15 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:45195) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQjEY-0004Ia-Rj for submit@debbugs.gnu.org; Wed, 16 Nov 2011 12:25:14 -0500 Received: from eggs.gnu.org ([140.186.70.92]:57544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQjEU-00052h-Pw for bug-coreutils@gnu.org; Wed, 16 Nov 2011 12:25:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RQjET-0004HS-Jh for bug-coreutils@gnu.org; Wed, 16 Nov 2011 12:25:10 -0500 Received: from moutng.kundenserver.de ([212.227.17.8]:62523) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQjET-0004GU-1d for bug-coreutils@gnu.org; Wed, 16 Nov 2011 12:25:09 -0500 Received: from [192.168.2.108] (p4FF74A4B.dip.t-dialin.net [79.247.74.75]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0LodTi-1QxR5W0cKg-00gqI4; Wed, 16 Nov 2011 18:25:05 +0100 Message-ID: <4EC3F1EF.9020409@bernhard-voelker.de> Date: Wed, 16 Nov 2011 18:25:03 +0100 From: Bernhard Voelker User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111101 SUSE/3.1.16 Thunderbird/3.1.16 MIME-Version: 1.0 To: bug-coreutils@gnu.org, Karel Zak Subject: sort: sometimes segfault with certain limits (using prlimit) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:ITrr6XBfZGG6ehmAdgu1Vj+DYEe6dOC4v3ti2nPFeN5 ib4lHdLoTimtqgEt0Mum5watnjhXhecbzIStAeRUjzEcTIR735 8EJZckcBjVl7xB90XV0EIUFYrYWpyJWmzSiSOCUJLbHElHIimQ 8fUsOsaVPqZxjdOVNQWDKEHGzRh4TXMJA5QtDufjxPw3CXQ1+x 6sVu4zdyZftlZ39CT/BjikhO8MYHa7sFfRiTCRHmw8i+lUj+h9 oweltntV9/HwI33PROeVqIQsNEfGP6B/F8KOXXGh8VbZOSGbqz OTjVWKQ2wyx+trvNeGe8IBgsBncrX3DnmaZJ8ZZo1SOpea8k6x GcYqpR/NmE15tjHqdIyp2M22mzOwYFziCxpb4U0vA X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -6.6 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.6 (------) For the new support of util-linux' prlimit to allow a command to be run http://article.gmane.org/gmane.linux.utilities.util-linux-ng/5039 I tried to find a useful example for the manpage. I found a nice, huge file to feed sort with - /dev/zero, and my first try was to let the command be killed after 1 CPU second: ./prlimit --cpu=1 sort -u /dev/zero Don't do that! ;-) But as I was playing around with various different limits and values, sort sometimes segfaulted: prlimit --stack=1000 --memlock=100000 --rss=1000 sort -u /dev/zero Well, mostly (4/5 times) sort got correctly "Killed", but a segfault smells. Similar limit values (not leading to OOM killer) behaved the same. OpenSuSE-11.4, sort from git. Have a nice day, Berny From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 16 13:33:39 2011 Received: (at 10064) by debbugs.gnu.org; 16 Nov 2011 18:33:39 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RQkIk-0001mo-BB for submit@debbugs.gnu.org; Wed, 16 Nov 2011 13:33:39 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RQkIi-0001mc-FQ for 10064@debbugs.gnu.org; Wed, 16 Nov 2011 13:33:37 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 37513A60008; Wed, 16 Nov 2011 10:32:44 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0eWAafHAAvcn; Wed, 16 Nov 2011 10:32:43 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id D89AAA60002; Wed, 16 Nov 2011 10:32:43 -0800 (PST) Message-ID: <4EC401CB.7070702@cs.ucla.edu> Date: Wed, 16 Nov 2011 10:32:43 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110927 Thunderbird/7.0 MIME-Version: 1.0 To: Bernhard Voelker Subject: Re: bug#10064: sort: sometimes segfault with certain limits (using prlimit) References: <4EC3F1EF.9020409@bernhard-voelker.de> In-Reply-To: <4EC3F1EF.9020409@bernhard-voelker.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 10064 Cc: kzak@redhat.com, 10064@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.0 (---) On 11/16/11 09:25, Bernhard Voelker wrote: > prlimit --stack=1000 --memlock=100000 --rss=1000 sort -u /dev/zero > > Well, mostly (4/5 times) sort got correctly "Killed", > but a segfault smells. Sorry, I don't have prlimit and don't know what it does. Can you reproduce the problem with a standard shell and ulimit? Or failing that, can you give a backtrace? From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 17 04:29:58 2011 Received: (at 10064) by debbugs.gnu.org; 17 Nov 2011 09:29:58 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RQyI9-0003Gw-O0 for submit@debbugs.gnu.org; Thu, 17 Nov 2011 04:29:58 -0500 Received: from moutng.kundenserver.de ([212.227.126.171]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RQyI7-0003Gc-Aj for 10064@debbugs.gnu.org; Thu, 17 Nov 2011 04:29:56 -0500 Received: from [192.168.2.108] (p4FF726E8.dip.t-dialin.net [79.247.38.232]) by mrelayeu.kundenserver.de (node=mrbap0) with ESMTP (Nemesis) id 0LdKy1-1R0k8v0k7t-00j23P; Thu, 17 Nov 2011 10:28:48 +0100 Message-ID: <4EC4D3CE.3010208@bernhard-voelker.de> Date: Thu, 17 Nov 2011 10:28:46 +0100 From: Bernhard Voelker User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111101 SUSE/3.1.16 Thunderbird/3.1.16 MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#10064: sort: sometimes segfault with certain limits (using prlimit) References: <4EC3F1EF.9020409@bernhard-voelker.de> <4EC401CB.7070702@cs.ucla.edu> In-Reply-To: <4EC401CB.7070702@cs.ucla.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:BGZjUmEP5zDUDw5+h+SuVkiRKERd9nckvYGr9N2mLnr lXsibbnOtaqe77nziVNxQu2TsrSao08BdXNI6cegkImnny6xU6 Bgjh8SrDdEIGO9c7AkKdRFhIjAga+onsL9MXJDWqKwVXgN99x/ /A8v03RR6hgSLY01gkyPg3GXZ2PcQlN/P107KSwr5n3rRySWvU MLX+INGEf8OLNbSgNCggG9Jc22R+Vn6qUhmRt50pqJjoYyZRMY UktHYsYhfSSJT2mwtk3Pl1PWeMCE4F2ePPy7YZGUJ+sQcXgv8D 9qX6KqLwLg+lWVxfQ2vYON1v0J2Wx82MPA30JNSlWQnTKq847f B+Cv3l953PhcD6aXmwqZuThDRsJ1lTCm8vAHAcjBy X-Spam-Score: -4.6 (----) X-Debbugs-Envelope-To: 10064 Cc: kzak@redhat.com, 10064@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.9 (---) On 11/16/2011 07:32 PM, Paul Eggert wrote: > On 11/16/11 09:25, Bernhard Voelker wrote: > >> prlimit --stack=1000 --memlock=100000 --rss=1000 sort -u /dev/zero >> >> Well, mostly (4/5 times) sort got correctly "Killed", >> but a segfault smells. > > Sorry, I don't have prlimit and don't know what it does. > Can you reproduce the problem with a standard shell > and ulimit? > > Or failing that, can you give a backtrace? prlimit is a new command from util-linux around the prlimit(2) system call. Comparing the prlimit values with that of ulimit shed some light on it. Used to the kilobyte unit of ulimit (but prlimit using bytes), I gave it extreme low limits. The prlimit syscall even rounded my --rss and --stack values down to 0, see man prlimit(2): RLIMIT_MEMLOCK The maximum number of bytes of memory that may be locked into RAM. In effect this limit is rounded down to the nearest multiple of the system page size. $ ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31578 max locked memory (kbytes, -l) 9 max memory size (kbytes, -m) 0 open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 0 cpu time (seconds, -t) unlimited max user processes (-u) 31578 virtual memory (kbytes, -v) 4927920 file locks (-x) unlimited It seems that "sort" isn't even involved yet: (gdb) bt #0 0x00007fb58936f712 in _dl_start () from /lib64/ld-linux-x86-64.so.2 #1 0x00007fb58936baf8 in _start () from /lib64/ld-linux-x86-64.so.2 #2 0x0000000000000003 in ?? () #3 0x00007fff49b2b469 in ?? () #4 0x00007fff49b2b482 in ?? () #5 0x00007fff49b2b485 in ?? () #6 0x0000000000000000 in ?? () So this is not a coreutils bug. However, now I'm really confused about ulimit vs. prlimit(2) values: $ bash -c 'ulimit -m' 3447088 $ prlimit --rss --rss=1000 --rss bash -c 'ulimit -m' RESOURCE DESCRIPTION SOFT HARD UNITS RSS max resident set size 3529818112 unlimited pages RSS max resident set size 1000 1000 pages 0 $ prlimit --rss --rss=1000 --rss prlimit --rss RESOURCE DESCRIPTION SOFT HARD UNITS RSS max resident set size 3529818112 unlimited pages RSS max resident set size 1000 1000 pages RESOURCE DESCRIPTION SOFT HARD UNITS RSS max resident set size 1000 1000 pages It seems the kernel stores the bytes unit which can be read by prlimit(2) again, while ulimit - using getrlimit(2) - displays the value in kilobytes: $ prlimit --rss=1000 --rss strace -f -e trace=getrlimit bash -c 'ulimit -m' RESOURCE DESCRIPTION SOFT HARD UNITS RSS max resident set size 1000 1000 pages getrlimit(RLIMIT_NPROC, {rlim_cur=31578, rlim_max=31578}) = 0 getrlimit(RLIMIT_RSS, {rlim_cur=1000, rlim_max=1000}) = 0 0 That means that the manpage of prlimit(2) is incorrect, isn't it? Thank you & have a nice day, Berny From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 19 11:31:02 2011 Received: (at 10064) by debbugs.gnu.org; 19 Nov 2011 16:31:02 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RRnok-0003Hy-5q for submit@debbugs.gnu.org; Sat, 19 Nov 2011 11:31:02 -0500 Received: from mx.meyering.net ([88.168.87.75]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RRnoh-0003HW-FZ; Sat, 19 Nov 2011 11:31:00 -0500 Received: from rho.meyering.net (localhost.localdomain [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id 619566007E; Sat, 19 Nov 2011 17:29:55 +0100 (CET) From: Jim Meyering To: Bernhard Voelker Subject: Re: bug#10064: sort: sometimes segfault with certain limits (using prlimit) In-Reply-To: <4EC4D3CE.3010208@bernhard-voelker.de> (Bernhard Voelker's message of "Thu, 17 Nov 2011 10:28:46 +0100") References: <4EC3F1EF.9020409@bernhard-voelker.de> <4EC401CB.7070702@cs.ucla.edu> <4EC4D3CE.3010208@bernhard-voelker.de> Date: Sat, 19 Nov 2011 17:29:55 +0100 Message-ID: <87k46why7w.fsf@rho.meyering.net> Lines: 9 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.7 (--) X-Debbugs-Envelope-To: 10064 Cc: 10064@debbugs.gnu.org, Paul Eggert , kzak@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.7 (--) tags 10064 + notabug close 10064 thanks Bernhard Voelker wrote: ... > So this is not a coreutils bug. Agreed. Marking it as such. From unknown Fri Sep 05 08:42:14 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 18 Dec 2011 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator