Bug 1362588

Summary: Using -h option in free command ends with Segmentation fault.
Product: Red Hat Enterprise Linux 7 Reporter: Jan Houska <jhouska>
Component: procps-ngAssignee: Jan Rybar <jrybar>
Status: CLOSED DUPLICATE QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: low Docs Contact:
Priority: low    
Version: 7.3CC: jfeeney, jhouska, kdudka, mkyral, yselkowi
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-13 16:53:18 UTC Type: Bug
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:    
Bug Blocks: 1402684    

Description Jan Houska 2016-08-02 14:56:27 UTC
Description of problem:
Using "-h" option in "Free" command ends with "Segmentation fault".

Version-Release number of selected component (if applicable):
procps-ng-3.3.10-10.el7

How reproducible:
always for aarch64 and s390x .



Steps to Reproduce:
1. free -h
or 
1. free -w -h

Actual results:
              total        used        free      shared     buffers       cache   available
Segmentation fault


Expected results:
             total        used        free      shared     buffers       cache   available
Mem:            11G        2,2G        7,0G        655M        103M        2,1G        8,2G
Swap:          5,8G          0B        5,8G

The output is recalculated and rounded to the human readable form.


Additional info:

Comment 3 Kamil Dudka 2017-05-11 09:09:02 UTC
Is this a duplicate of #1263765?

Comment 4 Jan Rybar 2017-05-11 14:02:40 UTC
Hello Kamil,

not quite. I had been thinking the same too, but then I decided to keep both BZs in order to analyze those later (and keep record of it not to forget anything), because:
the first one talks about specific architectures only,
the second one talks about exceeding specified amount of memory.

I need to dig in it to find out if these things correlate. It will be investigated in near time.
Anyway thanks for your sharp-eye notice.

Jan

Comment 5 Yaakov Selkowitz 2017-06-27 21:09:36 UTC
I am unable to reproduce this on an updated RHELSA 7.3 system:

kernel-4.5.0-15.4.2.el7.aarch64
procps-ng-3.3.10-10.el7.aarch64

Is this still an issue?

Comment 7 Jan Rybar 2017-07-11 14:18:07 UTC
I cannot reproduce the issue on any mentioned architecture with the following versions:

procps-ng-3.3.10-16.el7
kernel 4.5.0-15.4.2.el7.aarch64

System information and core dump provided by the reporter might bring light to the case.

Comment 8 Jan Houska 2017-07-13 15:22:44 UTC
According our faf report () it is still the issue. 

Multiple Failures found in beaker. The last failure happened on new rhel-7.4 build tomorrow (2017-07-12), during execution of 'free -w -h' command. 
The core dumps and other info can be found in FAF, please visit: 

http://faf.lab.eng.brq.redhat.com/faf/reports/287/

Comment 9 Jan Houska 2017-07-13 16:43:50 UTC
I  am now able to reproduce bug by running CoreOS/procps/Regression/free/bz1246379-free-values-truncated-to-the-column-width test on reserved machines in beaker for rhel-7.3.
 for aarch64
procps-ng-3.3.10-10.el7.aarch64
kernel-4.5.0-15.el7.aarch64

and  for  x86_64
procps-ng-3.3.10-10.el7.x86_64
kernel-3.10.0-514.el7.x86_64


The fail log see:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [   LOG    ] :: Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [  BEGIN   ] :: Copy meminfo file :: actually running 'cp --preserve=context /proc/meminfo .'
:: [   PASS   ] :: Copy meminfo file (Expected 0, got 0)
:: [  BEGIN   ] :: Make meminfo writable :: actually running 'chmod +w meminfo'
:: [   PASS   ] :: Make meminfo writable (Expected 0, got 0)
:: [  BEGIN   ] :: Modify fake meminfo file :: actually running 'sed -i 's/MemTotal: \+[[:digit:]]\+ kB/MemTotal: 123123123123123 kB/' meminfo'
:: [   PASS   ] :: Modify fake meminfo file (Expected 0, got 0)
:: [  BEGIN   ] :: Mount fake meminfo file :: actually running 'mount --bind meminfo /proc/meminfo'
:: [   PASS   ] :: Mount fake meminfo file (Expected 0, got 0)
:: [  BEGIN   ] :: Memory values in bytes :: actually running 'free -w -b'
              total        used        free      shared     buffers       cache   available
Mem:    126078078078077952 126078070077086720  7493517312     8761344     1855488   505618432  7720435712
Swap:    3221221376           0  3221221376
:: [   PASS   ] :: Memory values in bytes (Expected 0, got 0)
:: [   PASS   ] :: Compare "free" output with /proc/meminfo (Assert: '126078078078077952' should equal '126078078078077952')
:: [  BEGIN   ] :: Memory values in kB :: actually running 'free -w'
              total        used        free      shared     buffers       cache   available
Mem:    123123123123123 123123115309655     7317888        8556        1812      493768     7539488
Swap:       3145724           0     3145724
:: [   PASS   ] :: Memory values in kB (Expected 0, got 0)
:: [   PASS   ] :: Compare "free" output with /proc/meminfo (Assert: '123123123123123' should equal '123123123123123')
:: [  BEGIN   ] :: Memory values in MB :: actually running 'free -w -m'
              total        used        free      shared     buffers       cache   available
Mem:    120237424924 120237417294        7146           8           1         482        7362
Swap:          3071           0        3071
:: [   PASS   ] :: Memory values in MB (Expected 0, got 0)
:: [   PASS   ] :: Compare "free" output with /proc/meminfo (Assert: '120237424924' should equal '120237424924')
:: [  BEGIN   ] :: Memory values in GB :: actually running 'free -w -g'
              total        used        free      shared     buffers       cache   available
Mem:      117419360   117419352           6           0           0           0           7
Swap:             2           0           2
:: [   PASS   ] :: Memory values in GB (Expected 0, got 0)
:: [   PASS   ] :: Compare "free" output with /proc/meminfo (Assert: '117419360' should equal '117419360')
:: [  BEGIN   ] :: Human readable form :: actually running 'free -w -h'
              total        used        free      shared     buffers       cache   available
/usr/share/beakerlib/testing.sh: line 854: 31253 Segmentation fault      free -w -h
:: [   FAIL   ] :: Human readable form (Expected 0, got 139)
:: [   FAIL   ] :: rlAssertEquals called without all needed parameters 
:: [  BEGIN   ] :: Running 'umount /proc/meminfo'
:: [   PASS   ] :: Command 'umount /proc/meminfo' (Expected 0, got 0)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Comment 10 Jan Rybar 2017-07-13 16:53:18 UTC

*** This bug has been marked as a duplicate of bug 1263765 ***