Bug 1331759 - runner: extract and return actual exit status of child
Summary: runner: extract and return actual exit status of child
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: core
Version: 3.7.11
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Prasanna Kumar Kalever
QA Contact:
URL:
Whiteboard:
Depends On: 1329129 1332554
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-29 12:55 UTC by Prasanna Kumar Kalever
Modified: 2016-06-28 12:16 UTC (History)
1 user (show)

Fixed In Version: glusterfs-3.7.12
Clone Of: 1329129
Environment:
Last Closed: 2016-06-28 12:16:09 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Prasanna Kumar Kalever 2016-04-29 12:55:09 UTC
+++ This bug was initially created as a clone of Bug #1329129 +++

Description of problem:
                                                                                                         
In the current runner framework we always return the pid i.e ret value of the waitpid, as said above it is not the exit value of the child process

Version-Release number of selected component (if applicable):
mainline

Actual results:
returning the ret value of waitpid()

Expected results:
extract the exit code and return the actual exit status of the child process

--- Additional comment from Vijay Bellur on 2016-04-21 07:44:46 EDT ---

REVIEW: http://review.gluster.org/14042 (runner: extract and return actual exit status of child) posted (#1) for review on master by Prasanna Kumar Kalever (pkalever)

--- Additional comment from Vijay Bellur on 2016-04-25 10:18:13 EDT ---

COMMIT: http://review.gluster.org/14042 committed in master by Jeff Darcy (jdarcy) 
------
commit 19fd9a371fff4ece2c617f1e7194ffcee039f21e
Author: Prasanna Kumar Kalever <prasanna.kalever>
Date:   Thu Apr 21 14:38:16 2016 +0530

    runner: extract and return actual exit status of child
    
    Intro:
    pid_t waitpid(pid_t pid, int *status, int options);
    
    The waitpid() system call suspends execution of the calling process
    until a child specified by pid  argument has  changed  state.
    
    Here the ret (pid) value is not equal to the exit status of the child process.
    Check manpages for more info on this.
    
    Problem:
    In the current runner framework we always return the pid i.e ret value
    of the waitpid, as said above it is not the exit value of the child process
    
    Solution:
    Extract the actual exit code/status in case if the child terminated normally,
    that is, by calling exit(3) or _exit(2), or by returning from main()
    
    Change-Id: Iffae99a43e540af66917b3745f21ea3c2a5a3c2d
    BUG: 1329129
    Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever>
    Reviewed-on: http://review.gluster.org/14042
    Tested-by: Prasanna Kumar Kalever <pkalever>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 1 Vijay Bellur 2016-04-29 13:07:37 UTC
REVIEW: http://review.gluster.org/14116 (runner: extract and return actual exit status of child) posted (#1) for review on release-3.7 by Prasanna Kumar Kalever (pkalever)

Comment 2 Vijay Bellur 2016-05-02 03:54:41 UTC
COMMIT: http://review.gluster.org/14116 committed in release-3.7 by Atin Mukherjee (amukherj) 
------
commit d6b406b84dd840d15472b203052f7679d96dc321
Author: Prasanna Kumar Kalever <prasanna.kalever>
Date:   Fri Apr 29 18:28:20 2016 +0530

    runner: extract and return actual exit status of child
    
    Intro:
    pid_t waitpid(pid_t pid, int *status, int options);
    
    The waitpid() system call suspends execution of the calling process
    until a child specified by pid  argument has  changed  state.
    
    Here the ret (pid) value is not equal to the exit status of the child process.
    Check manpages for more info on this.
    
    Problem:
    In the current runner framework we always return the pid i.e ret value
    of the waitpid, as said above it is not the exit value of the child process
    
    Solution:
    Extract the actual exit code/status in case if the child terminated normally,
    that is, by calling exit(3) or _exit(2), or by returning from main()
    
    Backport of:
    > Change-Id: Iffae99a43e540af66917b3745f21ea3c2a5a3c2d
    > BUG: 1329129
    > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever>
    > Reviewed-on: http://review.gluster.org/14042
    > Tested-by: Prasanna Kumar Kalever <pkalever>
    > Reviewed-by: Kaleb KEITHLEY <kkeithle>
    > CentOS-regression: Gluster Build System <jenkins.com>
    > NetBSD-regression: NetBSD Build System <jenkins.org>
    > Smoke: Gluster Build System <jenkins.com>
    > Reviewed-by: Jeff Darcy <jdarcy>
    
    Change-Id: I137b2fc120ec2b1137bf8a4e6b180f1787bf5908
    BUG: 1331759
    Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever>
    Reviewed-on: http://review.gluster.org/14116
    Tested-by: Prasanna Kumar Kalever <pkalever>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>

Comment 3 Kaushal 2016-06-28 12:16:09 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.12, please open a new bug report.

glusterfs-3.7.12 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] https://www.gluster.org/pipermail/gluster-devel/2016-June/049918.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user


Note You need to log in before you can comment on or make changes to this bug.