Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1333064

Summary: /CoreOS/python/Sanity/gdb test is failing on s390x
Product: Red Hat Enterprise Linux 7 Reporter: Branislav Náter <bnater>
Component: pythonAssignee: Charalampos Stratakis <cstratak>
Status: CLOSED ERRATA QA Contact: Branislav Náter <bnater>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.3CC: cstratak, pviktori
Target Milestone: rc   
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-2.7.5-58.el7 Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 20:25:03 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:

Description Branislav Náter 2016-05-04 15:04:09 UTC
Description of problem:
This is a test checking that gdb can pretty-print various PyObject* types. The test itself is a modified version the test_gdb from the upstream test suite, which is available since Python 2.7

Version-Release number of selected component (if applicable):
reproducible on 2.7.5-40 (works on 2.7.5-39)

Steps to Reproduce:
1.run /CoreOS/python/Sanity/gdb on s390x machine

Actual results:
<snip>
======================================================================
FAIL: test_basic_command (__main__.PyListTests)
Verify that the "py-list" command works
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_gdb.py", line 599, in test_basic_command
    bt)
  File "test_gdb.py", line 584, in assertListing
    self.assertEndsWith(actual, expected)
  File "test_gdb.py", line 189, in assertEndsWith
    msg='%r did not end with %r' % (actual, exp_end))
AssertionError: 'Breakpoint 1 (PyObject_Print) pending.\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib64/libthread_db.so.1".\n\nBreakpoint 1, PyObject_Print (op=42, fp=<_IO_2_1_stdout_>, flags=1) at /usr/src/debug/Python-2.7.5/Objects/object.c:330\n330\t    return internal_print(op, fp, flags, 0);\nUnable to read information on python frame\n' did not end with '   5    \n   6    def bar(a, b, c):\n   7        baz(a, b, c)\n   8    \n   9    def baz(*args):\n >10        print(42)\n  11    \n  12    foo(1, 2, 3)\n'

======================================================================
<snip>

Full test log: http://beaker-archive.app.eng.bos.redhat.com/beaker-logs/2016/04/13124/1312414/2670879/40453536/TESTOUT.log

Expected results:
Tests passed

Additional info:
This should be culprit:

* Thu Mar 31 2016 Charalampos Stratakis <cstratak> - 2.7.5-40
- Backport of Computed Goto dispatch
Resolves: rhbz#1289277

Comment 2 Branislav Náter 2016-09-08 14:10:37 UTC
Another test (also related to gdb) is failing on s390x.
"frame information optimized out" is displayed instead of frame content.


old python python-debug-2.7.5-38.el7_2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: [  BEGIN   ] :: Running gdb :: actually running 'gdb -q -batch -x cmd --args python-debug test.py 2>&1 | tee output'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x000003fffde58dcc in PyString_FromString (str=0xdeadbeef <Address 0xdeadbeef out of bounds>) at /usr/src/debug/Python-2.7.5/Objects/stringobject.c:121
121	    size = strlen(str);
#9 Frame 0x802588a8, for file /usr/lib64/python2.7/ctypes/__init__.py, line 504, in string_at (ptr=3735928559, size=-1)
    return _string_at(ptr, size)
#13 Frame 0x80089d08, for file test.py, line 5, in bar (self=<Foo(someattr=42, someotherattr={'three': [(), (None,), (None, None)], 'two': 2L, 'one': 1}) at remote 0x80236288>, string_at=<function at remote 0x8027ca58>)
    string_at(0xDEADBEEF) # this code will cause Python to segfault
#16 Frame 0x80087b18, for file test.py, line 16, in <module> ()
    f.bar()
A debugging session is active.

	Inferior 1 [process 30596] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]
:: [   PASS   ] :: Running gdb (Expected 0, got 0)
:: [   PASS   ] :: File 'output' should not contain 'Error occurred in Python command' 
:: [   PASS   ] :: File 'output' should contain '[fF]ile .*ctypes.*in.*string_at' 
:: [   PASS   ] :: File 'output' should contain '[fF]ile test.py, line 5, in bar.*someattr=42' 
:: [   PASS   ] :: File 'output' should contain '[fF]ile test.py, line 16, in <module>' 

new python python-debug-2.7.5-48.el7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: [  BEGIN   ] :: Running gdb :: actually running 'gdb -q -batch -x cmd --args python-debug test.py 2>&1 | tee output'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x000003fffde5462c in PyString_FromString (str=0xdeadbeef <Address 0xdeadbeef out of bounds>) at /usr/src/debug/Python-2.7.5/Objects/stringobject.c:121
121	    size = strlen(str);
#9 (frame information optimized out)
#13 (frame information optimized out)
#16 (frame information optimized out)
A debugging session is active.

	Inferior 1 [process 29849] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]
:: [   PASS   ] :: Running gdb (Expected 0, got 0)
:: [   PASS   ] :: File 'output' should not contain 'Error occurred in Python command' 
:: [   FAIL   ] :: File 'output' should contain '[fF]ile .*ctypes.*in.*string_at' 
:: [   FAIL   ] :: File 'output' should contain '[fF]ile test.py, line 5, in bar.*someattr=42' 
:: [   FAIL   ] :: File 'output' should contain '[fF]ile test.py, line 16, in <module>'

Comment 10 errata-xmlrpc 2017-08-01 20:25:03 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2017:1868