Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1095355 - python3 test_gdb failure on ppc64le archi
Summary: python3 test_gdb failure on ppc64le archi
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python3
Version: rawhide
Hardware: ppc64le
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Bohuslav "Slavek" Kabrda
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F-ExcludeArch-ppc64le, PPC64LETracker
TreeView+ depends on / blocked
 
Reported: 2014-05-07 14:17 UTC by Michel Normand
Modified: 2014-06-02 11:43 UTC (History)
4 users (show)

Fixed In Version: python3-3.4.1-3.fc21
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-06-02 11:43:56 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
python3.test_gdb_match_addr_before_builtin.patch (1.49 KB, text/x-c)
2014-05-07 14:23 UTC, Michel Normand
no flags Details

Description Michel Normand 2014-05-07 14:17:18 UTC
Description of problem: python3 test_gdb failure on ppc64le archi


Version-Release number of selected component (if applicable):
python3-3.3.2-12.fc21
gdb-7.7-4.fc21

Steps to Reproduce:
1. fedpkg clone -a python3
2. fedpkg srpm
3. fedpkg mockbuild

Actual results:
...
FAIL: test_NULL_ob_type (test.test_gdb.PrettyPrintTests)
Ensure that a PyObject* with NULL ob_type is handled gracefully
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/Python-3.3.2/Lib/test/test_gdb.py", line 470, in test_NULL_ob_type
    'set v->ob_type=0')
  File "/builddir/build/BUILD/Python-3.3.2/Lib/test/test_gdb.py", line 441, in assertSane
    cmds_after_breakpoint=cmds_after_breakpoint)
  File "/builddir/build/BUILD/Python-3.3.2/Lib/test/test_gdb.py", line 236, in get_gdb_repr
    self.fail('Unexpected gdb output: %r\n%s' % (gdb_output, gdb_output))
AssertionError: Unexpected gdb output: 'Breakpoint 1 (builtin_id) pending.\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib64/libthread_db.so.1".\n\nBreakpoint 1, 0x00003fffb7d7f268 in builtin_id (self=<module at remote 0x3fffb7809858>, v=42) at /builddir/build/BUILD/Python-3.3.2/Python/bltinmodule.c:966\n966\t{\n#0  0x00003fffb7d7f268 in builtin_id (self=<module at remote 0x3fffb7809858>, v=<unknown at remote 0x3fffb7f6bec8>) at /builddir/build/BUILD/Python-3.3.2/Python/bltinmodule.c:966\n#1  0x00003fffb7d904b0 in call_function (pintr1=<synthetic pointer>, pintr0=<synthetic pointer>, oparg=<optimized out>, pp_stack=0x3fffffffedb0) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:4080\n#2  PyEval_EvalFrameEx (f=Frame 0x3fffb77ffc60, for file <string>, line 1, in <module> (), throwflag=<optimized out>) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:2701\n#3  0x00003fffb7d937cc in PyEval_EvalCodeEx (_co=<code at remote 0x3fffb7715880>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kws=<optimized out>, kwcount=<optimized out>, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:3462\n#4  0x00003fffb7d93a48 in PyEval_EvalCode (co=<optimized out>, globals=<optimized out>, locals=<optimized out>) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:791\n#5  0x00003fffb7dbcbd0 in run_mod (mod=<optimized out>, filename=0x3fffb7e52fe0 "<string>", globals={\'__builtins__\': <module at remote 0x3fffb7809858>, \'__name__\': \'__main__\', \'__loader__\': <type at remote 0x10046070>, \'__doc__\': None, \'__package__\': None}, locals={\'__builtins__\': <module at remote 0x3fffb7809858>, \'__name__\': \'__main__\', \'__loader__\': <type at remote 0x10046070>, \'__doc__\': None, \'__package__\': None}, flags=0x3ffffffff1d4, arena=0x100cc950) at /builddir/build/BUILD/Python-3.3.2/Python/pythonrun.c:1989\n#6  0x00003fffb7dbf90c in PyRun_StringFlags (str=0x3fffb7752598 "id(42)\\n", start=<optimized out>, globals={\'__builtins__\': <module at remote 0x3fffb7809858>, \'__name__\': \'__main__\', \'__loader__\': <type at remote 0x10046070>, \'__doc__\': None, \'__package__\': None}, locals={\'__builtins__\': <module at remote 0x3fffb7809858>, \'__name__\': \'__main__\', \'__loader__\': <type at remote 0x10046070>, \'__doc__\': None, \'__package__\': None}, flags=0x3ffffffff1d4) at /builddir/build/BUILD/Python-3.3.2/Python/pythonrun.c:1922\n#7  0x00003fffb7dc1cec in PyRun_SimpleStringFlags (command=0x3fffb7752598 "id(42)\\n", flags=0x3ffffffff1d4) at /builddir/build/BUILD/Python-3.3.2/Python/pythonrun.c:1480\n#8  0x00003fffb7de0a90 in run_command (cf=<optimized out>, command=0x10030340 L"id(42)\\n") at /builddir/build/BUILD/Python-3.3.2/Modules/main.c:267\n#9  Py_Main (argc=<optimized out>, argv=<optimized out>) at /builddir/build/BUILD/Python-3.3.2/Modules/main.c:683\n#10 0x0000000010000b40 in main (argc=<optimized out>, argv=0x3ffffffff7a8) at /builddir/build/BUILD/Python-3.3.2/Modules/python.c:58\n'
Breakpoint 1 (builtin_id) pending.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Breakpoint 1, 0x00003fffb7d7f268 in builtin_id (self=<module at remote 0x3fffb7809858>, v=42) at /builddir/build/BUILD/Python-3.3.2/Python/bltinmodule.c:966
966     {
#0  0x00003fffb7d7f268 in builtin_id (self=<module at remote 0x3fffb7809858>, v=<unknown at remote 0x3fffb7f6bec8>) at /builddir/build/BUILD/Python-3.3.2/Python/bltinmodule.c:966
#1  0x00003fffb7d904b0 in call_function (pintr1=<synthetic pointer>, pintr0=<synthetic pointer>, oparg=<optimized out>, pp_stack=0x3fffffffedb0) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:4080
#2  PyEval_EvalFrameEx (f=Frame 0x3fffb77ffc60, for file <string>, line 1, in <module> (), throwflag=<optimized out>) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:2701
#3  0x00003fffb7d937cc in PyEval_EvalCodeEx (_co=<code at remote 0x3fffb7715880>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kws=<optimized out>, kwcount=<optimized out>, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:3462
#4  0x00003fffb7d93a48 in PyEval_EvalCode (co=<optimized out>, globals=<optimized out>, locals=<optimized out>) at /builddir/build/BUILD/Python-3.3.2/Python/ceval.c:791
#5  0x00003fffb7dbcbd0 in run_mod (mod=<optimized out>, filename=0x3fffb7e52fe0 "<string>", globals={'__builtins__': <module at remote 0x3fffb7809858>, '__name__': '__main__', '__loader__': <type at remote 0x10046070>, '__doc__': None, '__package__': None}, locals={'__builtins__': <module at remote 0x3fffb7809858>, '__name__': '__main__', '__loader__': <type at remote 0x10046070>, '__doc__': None, '__package__': None}, flags=0x3ffffffff1d4, arena=0x100cc950) at /builddir/build/BUILD/Python-3.3.2/Python/pythonrun.c:1989
#6  0x00003fffb7dbf90c in PyRun_StringFlags (str=0x3fffb7752598 "id(42)\n", start=<optimized out>, globals={'__builtins__': <module at remote 0x3fffb7809858>, '__name__': '__main__', '__loader__': <type at remote 0x10046070>, '__doc__': None, '__package__': None}, locals={'__builtins__': <module at remote 0x3fffb7809858>, '__name__': '__main__', '__loader__': <type at remote 0x10046070>, '__doc__': None, '__package__': None}, flags=0x3ffffffff1d4) at /builddir/build/BUILD/Python-3.3.2/Python/pythonrun.c:1922
#7  0x00003fffb7dc1cec in PyRun_SimpleStringFlags (command=0x3fffb7752598 "id(42)\n", flags=0x3ffffffff1d4) at /builddir/build/BUILD/Python-3.3.2/Python/pythonrun.c:1480
#8  0x00003fffb7de0a90 in run_command (cf=<optimized out>, command=0x10030340 L"id(42)\n") at /builddir/build/BUILD/Python-3.3.2/Modules/main.c:267
#9  Py_Main (argc=<optimized out>, argv=<optimized out>) at /builddir/build/BUILD/Python-3.3.2/Modules/main.c:683
#10 0x0000000010000b40 in main (argc=<optimized out>, argv=0x3ffffffff7a8) at /builddir/build/BUILD/Python-3.3.2/Modules/python.c:58
...
----------------------------------------------------------------------
Ran 47 tests in 1.313s
OK (skipped=3)
343 tests OK.
2 tests failed:
    test_gdb test_sqlite
...

Additional info:

Comment 1 Michel Normand 2014-05-07 14:23:15 UTC
Created attachment 893305 [details]
python3.test_gdb_match_addr_before_builtin.patch

the proposed python3.test_gdb_match_addr_before_builtin.patch allow to make the test_gdb script to run without error on ppc64le archi in rawhide.

Comment 2 Michel Normand 2014-05-07 14:31:02 UTC
I do not know if the new substring from gdb now handled by proposed patch is a valid one or not.
extract of patch header to show the new substring from gdb:
===
#0  0x00003fffb7dd0898 in builtin_id (self=<module at remote ...
....xxxxxxxxxxxxxxxxxxxxxx <= added regexp
===

Comment 3 Bohuslav "Slavek" Kabrda 2014-05-16 08:28:54 UTC
Thanks for the report. We're currently working on pushing Python 3.4 in rawhide, so far we have it in f21-python koji side tag. How do we test whether Python 3.4 has the same problem? Can we use your builders to do test builds? (I'm assuming that the error will be the same, but I want to make sure.)
If you need to get this fix just for rawhide, then we don't have to care about Python 3.3, since Python 3.4 will be merged in approximately 10 days, replacing 3.3.
Thanks!

Comment 4 Michel Normand 2014-05-16 11:55:23 UTC
(In reply to Bohuslav "Slavek" Kabrda from comment #3)
> Thanks for the report. We're currently working on pushing Python 3.4 in
> rawhide, so far we have it in f21-python koji side tag. How do we test
> whether Python 3.4 has the same problem? Can we use your builders to do test
> builds? (I'm assuming that the error will be the same, but I want to make
> sure.)
> If you need to get this fix just for rawhide, then we don't have to care
> about Python 3.3, since Python 3.4 will be merged in approximately 10 days,
> replacing 3.3.
> Thanks!

Yes I only need the fix for Rawhide and the patch need to be merge in 3.4 as per
Confirmation that python 3.4 make check is failing with ppc64le archi
with following log extract if attached patch IS NOT applied.
Another trial with the patch solve the test_gdb failure.
=== log extract without the patch:
...
Ran 47 tests in 1.356s
OK (skipped=3)
360 tests OK.
3 tests failed:
    test_ensurepip test_gdb test_venv
1 test altered the execution environment:
    test_site
26 tests skipped:
    test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp
    test_codecmaps_kr test_codecmaps_tw test_curses test_devpoll
    test_ioctl test_kqueue test_msilib test_ossaudiodev test_pep277
    test_smtpnet test_socketserver test_startfile test_systemtap
    test_timeout test_tk test_ttk_guionly test_unicode_file
    test_urllib2net test_urllibnet test_winreg test_winsound
    test_xmlrpc_net test_zipfile64
===

Comment 5 Michel Normand 2014-05-19 17:01:37 UTC
in addition to the previously identified  python3.test_gdb_match_addr_before_builtin.patch the python3.4 will need also a change in 00189-add-rewheel-module.patch from git commit http://pkgs.fedoraproject.org/cgit/python3.git/commit/?h=python3.4&id=11fb599edb14569b903abafeed7fd2349d96dfbf

the 00189-add-rewheel-module.patch need to be modified as diff below:
===
$diff -u ../python3.old2/00189-add-rewheel-module.patch 00189-add-rewheel-module.patch
--- ../python3.old2/00189-add-rewheel-module.patch      2014-04-29 08:34:05.000000000 -0400
+++ 00189-add-rewheel-module.patch      2014-05-19 11:16:13.330003903 -0400
@@ -126,7 +126,7 @@
 +            # if we have 0 or 2 or more dirs, something is wrong...
 +            if len(filtered) == 1:
 +                path = filtered[0]
-+        records.append(os.path.join(path, 'RECORD'))
++            records.append(os.path.join(path, 'RECORD'))
 +    return records
 +
 +def rewheel_from_record(record_path, outdir):
===

Comment 6 Bohuslav "Slavek" Kabrda 2014-05-27 14:18:28 UTC
f21-python has just been merged to rawhide. Could you please re-test with python3-3.4.1-3.fc21?

Comment 7 Michel Normand 2014-06-02 11:43:56 UTC
I verified with python3-3.4.1-8.fc21 that mock build and check succeeded for ppc64le archi.


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