Path: csiph.com!weretis.net!feeder6.news.weretis.net!nntp.club.cc.cmu.edu!micro-heart-of-gold.mit.edu!bloom-beacon.mit.edu!bloom-beacon.mit.edu!171.64.64.130.MISMATCH!usenet.stanford.edu!not-for-mail From: Andrei Vagin Newsgroups: gnu.bash.bug Subject: Re: [PATCH] A terminating signal has to complete a bash process Date: Fri, 4 May 2018 10:13:11 -0700 Lines: 100 Approved: bug-bash@gnu.org Message-ID: References: <20180430220520.32312-1-avagin@openvz.org> <20180501164422.GA7043@outlook.office365.com> <759a8efe-1c0a-2966-a2ae-59fc734fdad3@case.edu> <20180501235553.GA4218@outlook.office365.com> <6eb002a4-5cbc-1955-e3bd-f1eed5c2fd20@case.edu> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r X-Trace: usenet.stanford.edu 1525454012 11672 208.118.235.17 (4 May 2018 17:13:32 GMT) X-Complaints-To: action@cs.stanford.edu Cc: Andrei Vagin , bug-bash@gnu.org To: Chet Ramey Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=zjV6KJj9KKYSFsOvn+eVTw4QpYRRWnbvOXc9221rnYk=; b=V+9qZfHLCRpx7MF5zREVn1vXQKfk4/SpvXcEE/8IsDqFwo8BhlF3IBMjlF0KRSipu01+DP7f4jZYaCRCYmV8JxEVHqOXj2CZR5M9ppfdynUAflkqPDOGkbAJ18apbUZp/xu/ycs18lyM93fZlUZHDw4OkWGX/kjJfVApj1XF0sU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=avagin@virtuozzo.com; Content-Disposition: inline In-Reply-To: <6eb002a4-5cbc-1955-e3bd-f1eed5c2fd20@case.edu> User-Agent: Mutt/1.9.3 (2018-01-21) X-Originating-IP: [4.16.175.162] X-ClientProxiedBy: DM5PR13CA0056.namprd13.prod.outlook.com (2603:10b6:3:117::18) To AM6PR08MB3256.eurprd08.prod.outlook.com (2603:10a6:209:47::21) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB3256; X-Microsoft-Exchange-Diagnostics: 1; AM6PR08MB3256; 3:orHm/+Vpv2N9LzgzAHepU3R6crW/0F8B1oBr7YzHz1jS1+8LAKgXtvtS81LqO9C1xndenHwdGRxhBUY9zS9swALf13tc9GebJDE2MbKi2bSjPY8fWHzBFA5956vHhItDgMMpd/OFRCZeeF3MAyFT6ps+YKGHcJXbBdo7vt+ccP+s7UxlejC9LBKX8+bVlUHhYEXJKeJgDc2imI7Da+Ti5JEcisE6HcXB96B7S5xb/s0eyi32n1JqE06M8L7euTzS; 25:FSq9kkNhVDrcaazv0nLiDWNUy7D6cXXWLk6w7L3U09p7xzwkUrxOvftApeA6MHQLj1jU07VcPofZBp75YrTnqxhcy6tx4gtf2G2uK9/AnRm6ghBJILjVbSTRP2OdSvFjgXAmlwXH88MGoXiydsc12oqS9yzaSHaero6p2UsRL4VOgBz8NymLK+LymSVecLg+p5uZetUvfJcvW+fKPGcB3dGTOQq+qlcqwGqiSoR3wiY2huxhv/0af8JctTtSMyvJGlGDnb1hXEKP4AkR0VGgFoqlwiHpjxlwFLALNiN7tFMs/2rs8qHDdyBzEDW/dheVQOVp0FNQE8M+5ieBXcTJOg==; 31:J2x+vrjtcvCNnOe+s63Dbc/ft7IO7L646vw6z2H1LgnzNLB8ekZpWd/vF9rMzeSONih23dHKnmFtd7jelvtO0DXrdbeV3NovrVQEvypB21gDcRxRUFAe6pxj/lkBnLwFyHp2OIb4/korhNm4knX8o4FViyVYVL8V4aDIM5T+oPiWE+VTGle0+XNNPCijiUfU8igzyb9KQ51uyWdlPwLHGqlXjhLbjD5raD6uTS0zSwI= X-MS-TrafficTypeDiagnostic: AM6PR08MB3256: X-Microsoft-Exchange-Diagnostics: 1; AM6PR08MB3256; 20:JsC6csCmxzT0hFHHGnWq9YPxQeyd39TIhKHUNwM9uRXFWkWjaeVWBAiSmkkhGJsLI0233hfNOf096lxsRcfDhfbRbNvkHQan6xF4RG/48X7P8uIzzdy4eLisQ9rBM1smcTPH4sH/dZZ/fGrKzhTxAgQjt8gBwjzYBASUJGJTc1gnKMHW3qJrGefm3isj4hh9T8Fz5OiAr2Yb302Z2RuiOYSx/KoadpqZR/1biFj6vXmNqSTq80Xxqzvidzjrib6xiY5/vahvEYEAjVoxlp5rnsNQ5kJpe5MwwQSIrg3QntKxqQ3I5uX/GpTQy9boY04PBndI5JKWnhu+GhK2zHlXS0u53kuCuLzSwjgRZEcBZAyIJKOsFAz4Z2EgzECmfTUtgLlN9TEyXm7Qiu49ajpgNadUUW+WlSiu9TykG8Hz2+oo1cnVmaBnH3SmWUQYfeTT6yRUm/2yGzakNkA8qtzSqAQEZWelWKUABUJfCQ6A0ALqhtmhFpWRAkApdUMwGVZv; 4:i5I+cLliecOHSeN7x6J6aDsr6VWlV0w+eW0ztDBuGs/Jjl5mJOne7IqUmt9MELok2RgZSOeoSQt/6lN0kMuER5+eXjneQ5gutjZx/esGxYHII3DM5HCVzr0bf2QbR3h8CkKyg1euM8cHkSh8EPDc1aAo9iSuHQOMUItvSWlUiBOzuIdoSBrhwjmCbOICDlgTFg3SoHf1vuCms994V4xlSQr/8ef0+Dba0r8e1ADZvJf1PaCb0kr6ki2lmSIRUIH6QasmJ3P7Put/ChoK99xrqg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:AM6PR08MB3256; BCL:0; PCL:0; RULEID:; SRVR:AM6PR08MB3256; X-Forefront-PRVS: 06628F7CA4 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(376002)(346002)(366004)(39850400004)(39380400002)(396003)(199004)(189003)(51914003)(47776003)(386003)(26005)(69596002)(37156001)(59450400001)(105586002)(93886005)(4326008)(966005)(11346002)(956004)(52116002)(6246003)(2171002)(50466002)(7696005)(53936002)(478600001)(76176011)(446003)(476003)(16526019)(316002)(16586007)(53546011)(58126008)(66066001)(186003)(9686003)(2906002)(55016002)(6116002)(68736007)(1076002)(6666003)(25786009)(6916009)(86362001)(6506007)(106356001)(23686003)(486006)(305945005)(3846002)(7736002)(8936002)(97736004)(5660300001)(81156014)(81166006)(53416004)(6306002)(8676002)(229853002)(33656002)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM6PR08MB3256; H:outlook.office365.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1; AM6PR08MB3256; 23:t+q0GDAf2+m/0lghLVLcfDWLNTQWmFYT571QcZXp4Uj?= =?koi8-r?Q?D+m2jK7tH64+nxzCzLjMXJtI7Ktt9RpzdUc5wE9cIv1Z56bhcEja1xd9oph/MM?= =?koi8-r?Q?GeuKYvu5flBLtrSmVgxdb8uyP5SIaJRab1T1IJSDBVHCZwWBnml4Ka4kHG7YlB?= =?koi8-r?Q?8BPeHJsZlldWs2clkzkFAU7TmJgbVUlI9/4g2JOl1EmEiFpRgEIkOCXMOoBJJP?= =?koi8-r?Q?DLabPkkznRhV1CND+r0v6GIxWosCdnA3uqzAcG/dKxX5jRCFRevg8ymELLQAv1?= =?koi8-r?Q?g/3685ikx9rtwJPCpQep1qr4X6ogpisden7RD6ukByoAqfNUjDGZNYDFeS84ZH?= =?koi8-r?Q?hRVsYrqpPPBh4sWWO4a7dI8EW/9rJkKCHK2b/nr7fXrh3dCAk8OciHcx1njUzt?= =?koi8-r?Q?hc1fSa+rFDPtRmSvaNkwA/8QuylMl4T1Q0SqYG/inEsacbY/vh3DsdDRGDQO6q?= =?koi8-r?Q?zGlzpe3hFJo6x2GbxEPBWwixvFfG1rlqPEIWaoI1+6HykyF9pTadMoceQjMlVM?= =?koi8-r?Q?5qPVLO7rhGtr5F6JB8zUm63hVEAfIRK7/4iDkh3PRUe0nfMBN/qNCq9gVREx6w?= =?koi8-r?Q?h7HRcfFLO8VEX8M2243GOXOK7EV58Z1tKarBxn7QfScZ5gAKPZ/E/4TTxPHe9X?= =?koi8-r?Q?VhA6lPh+Mid9/Pxuqqzr9C2h/eYqzJnH2AW0tvivIeOnokyKWnbVmgnSORAhch?= =?koi8-r?Q?X1ZesxRHvDdT/t2kEWny9wXKLaXQT6l9gdtuLHD/bPqGRtfaQC//1mkTuKVAvY?= =?koi8-r?Q?43ufKzdM7Xr9osLT2Z5Us0aOaZKfw4j2seCSnQI17Ak+nkRzw8JOa9lTJnWKNP?= =?koi8-r?Q?vexTG7+18fyFE2prsQqEIRFr54EfmxMaipWJK3K4gpRRPsJEllqYwyqW1W+Wq1?= =?koi8-r?Q?R4uCsvU1OUFrXeupj6kp2GF+R4htBa2bf2vFVSXzHivYdM2PbCGG8rMXmqeDoL?= =?koi8-r?Q?yNM/rsD726u7g5khCDyOPOXvIC6kSVjWmTu7x536+444PND4XL2TG+r1TDYUys?= =?koi8-r?Q?QEkHhMRgZ+jLXA100D3zphn/3h3cMy7ESNxpvo32s/W6GMdYZ0xdeMlgpnGq8t?= =?koi8-r?Q?rW3YHTBmRNGVo0zYTm/amIbHC3xihQLXjgu2JW0u+eyHbbypZErEsyCNSmGlVg?= =?koi8-r?Q?Dre6gAff7r9RcxiO1uuv9AYsDdfo7q1tSVtayazsRQJHJJmqRrp7RIQxMuIwVT?= =?koi8-r?Q?IBBev/e6kuXUicVxqTzqlIYP3VDPWkI/AoTHasv0TRq6VmuwvPlf86Bhh6E3q5?= =?koi8-r?Q?R/a6TVYfmpg1s6hyAl0uyAY1dAm5dCQwzDVkt26oq7AARWuQ7r6cq2StaY8hMf?= =?koi8-r?Q?fxv1+b/cvls5L7kKv11a67l7JoO8zSfnAI9wacjFK8kBXkVvKrk4CMKAR0WoJ2?= =?koi8-r?Q?yO4HQvFOOKf/RdlfLWPKaT4VlR8butM7wl8LtQf+QQXEQcZOtRhfC/Afd98oo5?= =?koi8-r?Q?b/O?= X-Microsoft-Antispam-Message-Info: AHXSfP/o0wbdCT4GTh2qS3sGUr9RqjySqpEiKzvrrQBu82lmjqzu9zMpMeDwnSZQhd/tAtPoWTqg5JHwXgbUUWmCQ5m5EUfgLrnsd5q2gtTV5tRQdMqGi5exCm2hsbgkwkHaxruFe6HyYAbL6NCWYvhSXmqrfhLJI7wFeumMIJRWYlDrxo3pOtPQmirOeVuQ X-Microsoft-Exchange-Diagnostics: 1; AM6PR08MB3256; 6:9+osc+4S0mBWQQFdZ2/nt52m5losuP97ZDav6dDHswvtB4RbblOiK4bMFHfgW+151Ni+pawQK9ycrfPfwdz/8EGpQbZ6/pvfrshVWBaS0iyC/QVcn9b7ieIhajph04c144nb8OnjXSf40pmb/eSJ+YKdKdC59SUJSU3ikmaWpfCKsmjwj0fivrnrgdq97jamk2J5TpnELLIb7skYzHDWbkDAdbBhfzbehB18h6/9FQJhjH3bgzxkmr//bbBSpbMAIiqnSQY5agIAE7djeVXU7NXZSZuGlxFZecbfdQG4C5TD5YXrKBbgBaCn8Y9ohu3G7fmCcMmN73IuI4hlA79ECfM0vnYLdcCe6VN+4FQw/2uTJfWy8OgXrlOy8wo8ugs2w0hetYRsXctr0RnMfvyIYIkkixet7KjfD9nXUa7HQScgi2ug43cIx9FxcldmQ0957vv1A/VOy/O05466RarntA==; 5:2phCl/9ZFCYp9lVF52IOEsJV9A6mOm5rve1DfNCQuwiJZbCon5/0TDfY+EKjfIezM9hbED8mLMKQmQVg4wPr9K1x+aHSZFLtmlO8qUPV0MdQHO7jD8sccdVmguokO86hikPjiSUKJ+I5aFk7Kc592S1tuL/Pi+jX3jEb9xhKhR4=; 24:G+G7org3dT8P9vmwjGTr94YbyvEtBG2oRpJB6rqU3WfShouoD4n9Wp6OACQdYGm771q+b1nhrPGlWuz5iasV9a+DKBq9Ua+SSggu8zSXw3g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM6PR08MB3256; 7:wqzddx2qsJfvPirZVm7MsAn0BuEz/n0Gqr+n9ejFQF7UCvI690F9jKz1wtqTew/RTY35aI3SC/H6cAkzppIHSizStXpLSNb4MAn5vhF6BIzkjUWLw1Ggz4WaB2ZFwPFBrs/DGuyzddtfMY5sCjMktaEJPIYrKCDFqeNJYd03Nj9sP4M/e31ofTjnSz33+RoCzFYtaz1ex/AtEVZMQUCJqH8tboJpVGUd4wuuRwVFiTgkq+YDtnhZTs1OyJcXZfZX; 20:MZk9E0q5Mo+2Ud9jcKEK6jW/QYUT+tfEVFkf5EY4j7VcFzOx1+eCSLs5ImCa+1vHT7dZUGfZm5Eq6ENhyj4tMo1yHKyxptbzxYwrQbZkK71mKhO7GI0amAQK0N5xKIgIglebMahNVCM/40YhTDt5xQ9rg3itOQXtusig3dsUHNw= X-MS-Office365-Filtering-Correlation-Id: c4925983-1efc-4e71-e5bf-08d5b1e256a6 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2018 17:13:20.8703 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4925983-1efc-4e71-e5bf-08d5b1e256a6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3256 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.127 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:14090 On Thu, May 03, 2018 at 04:29:13PM -0400, Chet Ramey wrote: > On 5/1/18 7:55 PM, Andrei Vagin wrote: > > >> If it's not obvious, I'm trying to determine whether making this change > >> will add any more value than simply exiting (perhaps with a particular > >> exit status). > > > > It will add more value. Without this changes, we will not know whether a > > bach process crashed or exited. If it will not generate a core dump after > > a crash, the tools like abrtd, coredumpd, etc will not detect this crash > > and will not report about this abnormal behaviour. > > OK, we'll try it. I'll be interested to see if any core dumps created by > causing a SIGSEGV will overwrite any stack information from the `real' > fatal signal. We can easy try to check that a result core dump is functional. I did the next experiment: 1. Add a bug in a code which handles printf diff --git a/builtins/printf.def b/builtins/printf.def index d39a6d3f..5cef6118 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -250,6 +250,7 @@ printf_builtin (list) vflag = 0; + *((long *) 0) = 5; \ reset_internal_getopt (); while ((ch = internal_getopt (list, "v:")) != -1) { Now when printf is called from a script, a process will be killed by SEGV 2. Prepare a test enviroment $ echo /tmp/core > /proc/sys/kernel/core_pattern $ ulimit -c unlimited $ cat init.sh #!/bin/bash function finish { echo Exit trap } trap finish EXIT printf hello 3. Run a test script in a new pid namespace $ unshare -pfUr ./bash init.sh Exit trap Segmentation fault (core dumped) 4. Let's look what we can get from a core dump file $ gdb -c /tmp/core.1 ./bash (gdb) bt #0 termsig_handler (sig=11) at sig.c:628 #1 0x0000000000462c01 in termsig_handler (sig=) at sig.c:484 #2 termsig_sighandler (sig=) at sig.c:540 #3 #4 printf_builtin (list=0xd9aa08) at ./printf.def:253 #5 0x000000000041fa65 in execute_builtin (builtin=builtin@entry=0x48d880 , flags=flags@entry=0, subshell=subshell@entry=0, words=) at execute_cmd.c:4535 #6 0x0000000000420842 in execute_builtin_or_function (flags=, fds_to_close=0xd9be08, redirects=, var=0x0, builtin=0x48d880 , words=0xd9aa28) at execute_cmd.c:5028 #7 execute_simple_command (simple_command=, pipe_in=, pipe_in@entry=-1, pipe_out=, pipe_out@entry=-1, async=async@entry=0, fds_to_close=fds_to_close@entry=0xd9be08) at execute_cmd.c:4330 #8 0x0000000000438b7c in execute_command_internal (command=command@entry=0xda4108, asynchronous=asynchronous@entry=0, pipe_in=pipe_in@entry=-1, pipe_out=pipe_out@entry=-1, fds_to_close=fds_to_close@entry=0xd9be08) at execute_cmd.c:807 #9 0x000000000043a4ae in execute_command (command=0xda4108) at execute_cmd.c:405 #10 0x00000000004249ec in reader_loop () at eval.c:180 #11 0x00000000004235ba in main (argc=2, argv=0x7ffe30cdfce8, env=0x7ffe30cdfd00) at shell.c:792 (gdb) frame 0 #0 termsig_handler (sig=11) at sig.c:628 628 *((volatile unsigned long *) NULL) = 0xdead0000 + sig; (gdb) p sig $1 = 11 (gdb) frame 4 #4 printf_builtin (list=0xd9aa08) at ./printf.def:253 253 *((long *) 0) = 5; \ In this case, the core dump file isn't corrupted, and it gives us all what we need to investigate this bug. Thanks, Andrei > > Thanks for the patch. > > -- > ``The lyf so short, the craft so long to lerne.'' - Chaucer > ``Ars longa, vita brevis'' - Hippocrates > Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/