Bug 661731

Summary: kernel: Problem with execve(2) reintroduced [rhel-6.1] [rhel-6.0.z]
Product: Red Hat Enterprise Linux 6 Reporter: RHEL Program Management <pm-rhel>
Component: kernelAssignee: Frantisek Hrbata <fhrbata>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: high Docs Contact:
Priority: high    
Version: 6.1CC: anderson, arozansk, cebbert, czhang, davej, dhoward, dtian, eteo, jmalanik, kmcmartin, lwang, pbenas, pm-eus, qcai, roland
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-2.6.32-71.16.1.el6 Doc Type: Bug Fix
Doc Text:
Prior to this update, the execve utility exhibited the following flaw. When an argument and any environment data were copied from an old task's user stack to the user stack of a newly-execve'd task, the kernel would not allow the process to be interrupted or rescheduled. Therefore, when the argument or environment string data was (abnormally) large, there was no "interactivity" with the process while the execve() function was transferring the data. With this update, fatal signals (like CTRL+c) can now be received and handled and a process is allowed to yield to higher priority processes during the data transfer.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-02-22 17:40:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 629178    
Bug Blocks:    

Description RHEL Program Management 2010-12-09 14:37:23 UTC
This bug has been copied from bug #629178 and has been proposed
to be backported to 6.0 z-stream (EUS).

Comment 7 Dave Anderson 2011-02-14 14:01:40 UTC
It reproduces quite easily on my 1GB 2.6.32-70.el6.x86_64 machine:

# free -m
             total       used       free     shared    buffers     cached
Mem:           995        177        818          0          1         20
-/+ buffers/cache:        155        839
Swap:         2015         70       1945
# ulimit -s
unlimited
# uname -r
2.6.32-70.el6.x86_64
# ./bigstack1
bigstack1: allocating space for 20000000 strings -- please wait...
bigstack1: performing execve: enter CTRL-C to kill...
^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C
#

Comment 9 errata-xmlrpc 2011-02-22 17:40:11 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0283.html

Comment 10 Martin Prpič 2011-02-23 15:06:26 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Prior to this update, the execve utility exhibited the following flaw. When an argument and any environment data were copied from an old task's user stack to the user stack of a newly-execve'd task, the kernel would not allow the process to be interrupted or rescheduled. Therefore, when the argument or environment string data was (abnormally) large, there was no "interactivity" with the process while the execve() function was transferring the data. With this update, fatal signals (like CTRL+c) can now be received and handled and a process is allowed to yield to higher priority processes during the data transfer.