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:
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.
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 ===
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!
(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 ===
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): ===
f21-python has just been merged to rawhide. Could you please re-test with python3-3.4.1-3.fc21?
I verified with python3-3.4.1-8.fc21 that mock build and check succeeded for ppc64le archi.