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 1106779

Summary: python-greenlet: FTBFS in rawhide
Product: [Fedora] Fedora Reporter: Dennis Gilmore <dennis>
Component: python-greenletAssignee: Terje Røsten <terje.rosten>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: apevec, kevin, p, rmainz, shamardin, terje.rosten, yselkowi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-29 14:15:52 UTC Type: ---
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: 245418, 1105908    
Attachments:
Description Flags
build.log
none
root.log
none
state.log
none
Update greenlet 04.5 and add python 3 sub package none

Description Dennis Gilmore 2014-06-09 17:27:30 UTC
Your package python-greenlet failed to build from source in current rawhide.

http://koji.fedoraproject.org/koji/taskinfo?taskID=6984416

For details on mass rebuild see https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

Comment 1 Dennis Gilmore 2014-06-09 17:27:32 UTC
Created attachment 905284 [details]
build.log

Comment 2 Dennis Gilmore 2014-06-09 17:27:34 UTC
Created attachment 905285 [details]
root.log

Comment 3 Dennis Gilmore 2014-06-09 17:27:36 UTC
Created attachment 905286 [details]
state.log

Comment 4 Kevin Fenzi 2014-06-11 23:07:51 UTC
ok, this is due to python crashing in the tests on arm:

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -fPIC -fno-tree-dominator-opts -I/usr/include/python2.7 -c /tmp/tmpwtkHu6/simple.c -o /tmp/tmpwtkHu6/tmp/tmpwtkHu6/simple.o
Linking /builddir/build/BUILD/greenlet-0.4.2/build/lib.linux-armv7l-2.7/greenlet.so to /builddir/build/BUILD/greenlet-0.4.2/greenlet.so
test_exception_disables_tracing (tests.test_tracing.TracingTests) ... ERROR
test_greenlet_tracing (tests.test_tracing.TracingTests) ... /var/tmp/rpm-tmp.Kqxaf1: line 32: 19597 Segmentation fault      /usr/bin/python setup.py test
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.Kqxaf1 (%check)
    Bad exit status from /var/tmp/rpm-tmp.Kqxaf1 (%check)
Child return code was: 1

From a mock chroot on arm: 
(gdb) run setup.py test
Starting program: /usr/bin/python setup.py test
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Detaching after fork from child process 23666.
running test
running egg_info
writing greenlet.egg-info/PKG-INFO
writing top-level names to greenlet.egg-info/top_level.txt
writing dependency_links to greenlet.egg-info/dependency_links.txt
Detaching after fork from child process 23668.
Detaching after fork from child process 23669.
reading manifest file 'greenlet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'greenlet.egg-info/SOURCES.txt'
running build_ext
creating /tmp/tmplufsqo/tmp
creating /tmp/tmplufsqo/tmp/tmplufsqo
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -fPIC -fno-tree-dominator-opts -I/usr/include/python2.7 -c /tmp/tmplufsqo/simple.c -o /tmp/tmplufsqo/tmp/tmplufsqo/simple.o
Detaching after fork from child process 23670.
Linking /builddir/build/BUILD/greenlet-0.4.2/build/lib.linux-armv7l-2.7/greenlet.so to /builddir/build/BUILD/greenlet-0.4.2/greenlet.so
test_exception_switch (tests.test_cpp.CPPTests) ... 
Program received signal SIGSEGV, Segmentation fault.
0xb6f1fed0 in PyEval_EvalFrameEx (
    f=f@entry=Frame 0xb5fd35f0, for file /builddir/build/BUILD/greenlet-0.4.2/tests/test_cpp.py, line 12, in test_exception_switch (self=<CPPTests(_resultForDoCleanups=<TextTestResult(_original_stdout=<file at remote 0xb6c13078>, dots=False, skipped=[], _mirrorOutput=False, stream=<_WritelnDecorator(stream=<file at remote 0xb6c130d0>) at remote 0xb61d7510>, testsRun=1, buffer=None, _original_stderr=<file at remote 0xb6c130d0>, showAll=True, _stdout_buffer=None, _stderr_buffer=None, _moduleSetUpFailed=False, expectedFailures=[], errors=[], descriptions=True, _previousTestClass=<type at remote 0xb5fd2208>, unexpectedSuccesses=[], failures=[], _testRunEntered=True, shouldStop=False, failfast=None) at remote 0xb61d77b0>, _type_equality_funcs={<type at remote 0xb6faf204>: 'assertSetEqual', <type at remote 0xb6fac01c>: 'assertListEqual', <type at remote 0xb6fb5ed0>: 'assertMultiLineEqual', <type at remote 0xb6fb2130>: 'assertTupleEqual', <type at remote 0xb6faf140>: 'assertSetEqual', <type at remote 0xb6fad964>: 'assertDictEqual...(truncated), throwflag=throwflag@entry=0)
    at /usr/src/debug/Python-2.7.7/Python/ceval.c:3069
3069	    if (tstate->frame->f_exc_type != NULL)
Missing separate debuginfos, use: debuginfo-install glibc-2.19.90-19.fc21.1.armv7hl keyutils-libs-1.5.9-2.fc21.armv7hl krb5-libs-1.12.1-6.fc21.armv7hl libcom_err-1.42.10-3.fc21.armv7hl libgcc-4.9.0-8.fc21.1.armv7hl libselinux-2.3-3.fc21.armv7hl libstdc++-4.9.0-8.fc21.1.armv7hl openssl-libs-1.0.1h-3.fc21.armv7hl pcre-8.35-2.fc21.1.armv7hl xz-libs-5.1.2-11alpha.fc21.armv7hl zlib-1.2.8-5.fc21.armv7hl
(gdb) thread apply all bt full

Thread 1 (Thread 0xb6c27340 (LWP 23663)):
#0  0xb6f1fed0 in PyEval_EvalFrameEx (
    f=f@entry=Frame 0xb5fd35f0, for file /builddir/build/BUILD/greenlet-0.4.2/tests/test_cpp.py, line 12, in test_exception_switch (self=<CPPTests(_resultForDoCleanups=<TextTestResult(_original_stdout=<file at remote 0xb6c13078>, dots=False, skipped=[], _mirrorOutput=False, stream=<_WritelnDecorator(stream=<file at remote 0xb6c130d0>) at remote 0xb61d7510>, testsRun=1, buffer=None, _original_stderr=<file at remote 0xb6c130d0>, showAll=True, _stdout_buffer=None, _stderr_buffer=None, _moduleSetUpFailed=False, expectedFailures=[], errors=[], descriptions=True, _previousTestClass=<type at remote 0xb5fd2208>, unexpectedSuccesses=[], failures=[], _testRunEntered=True, shouldStop=False, failfast=None) at remote 0xb61d77b0>, _type_equality_funcs={<type at remote 0xb6faf204>: 'assertSetEqual', <type at remote 0xb6fac01c>: 'assertListEqual', <type at remote 0xb6fb5ed0>: 'assertMultiLineEqual', <type at remote 0xb6fb2130>: 'assertTupleEqual', <type at remote 0xb6faf140>: 'assertSetEqual', <type at remote 0xb6fad964>: 'assertDictEqual...(truncated), throwflag=throwflag@entry=0)
    at /usr/src/debug/Python-2.7.7/Python/ceval.c:3069
        stack_pointer = <optimized out>
        next_instr = <optimized out>
        opcode = <optimized out>
        oparg = <optimized out>
        why = <optimized out>
        err = <optimized out>
        x = <optimized out>
        v = <optimized out>
        w = <optimized out>
        u = <optimized out>
        t = <optimized out>
        stream = 0x0
        fastlocals = 0xb5fd3728
        freevars = <optimized out>
        retval = 0x0
        tstate = <optimized out>
        co = <optimized out>
        instr_ub = -1
        instr_lb = 4
        instr_prev = -1241785552
        first_instr = <optimized out>
        names = <optimized out>
        consts = <optimized out>
#1  0xb6f22628 in fast_function (nk=<optimized out>, na=<optimized out>, n=1, pp_stack=0xbeffcb64, 
    func=<optimized out>) at /usr/src/debug/Python-2.7.7/Python/ceval.c:4183
        retval = 0x0
        fastlocals = 0xb5fd3728
        i = <optimized out>
        f = Frame 0xb5fd35f0, for file /builddir/build/BUILD/greenlet-0.4.2/tests/test_cpp.py, line 12, in test_exception_switch (self=<CPPTests(_resultForDoCleanups=<TextTestResult(_original_stdout=<file at remote 0xb6c13078>, dots=False, skipped=[], _mirrorOutput=False, stream=<_WritelnDecorator(stream=<file at remote 0xb6c130d0>) at remote 0xb61d7510>, testsRun=1, buffer=None, _original_stderr=<file at remote 0xb6c130d0>, showAll=True, _stdout_buffer=None, _stderr_buffer=None, _moduleSetUpFailed=False, expectedFailures=[], errors=[], descriptions=True, _previousTestClass=<type at remote 0xb5fd2208>, unexpectedSuccesses=[], failures=[], _testRunEntered=True, shouldStop=False, failfast=None) at remote 0xb61d77b0>, _type_equality_funcs={<type at remote 0xb6faf204>: 'assertSetEqual', <type at remote 0xb6fac01c>: 'assertListEqual', <type at remote 0xb6fb5ed0>: 'assertMultiLineEqual', <type at remote 0xb6fb2130>: 'assertTupleEqual', <type at remote 0xb6faf140>: 'assertSetEqual', <type at remote 0xb6fad964>: 'assertDictEqual...(truncated)
---Type <return> to continue, or q <return> to quit---
        tstate = 0x12050
        stack = <optimized out>
        co = <optimized out>
        nd = 0
        globals = <optimized out>
        argdefs = <optimized out>
        d = 0x0
...tons tons more frames...

I don't know if this is a python bug or a glibc one. Probibly we should ask python and/or arm folks.

Comment 5 Jaroslav Reznik 2015-03-03 15:58:04 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22

Comment 6 Terje Røsten 2015-03-26 19:57:21 UTC
I updated to 0.4.5 and added python 3 package and did random package clean ups.

Diff attached.

koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=9337050
(Fixes build error)
spec: https://terjeros.fedorapeople.org/python-greenlet/python-greenlet.spec
srpm: https://terjeros.fedorapeople.org/python-greenlet/python-greenlet-0.4.5-1.fc21.src.rpm

Comment 7 Terje Røsten 2015-03-26 20:00:17 UTC
Created attachment 1006974 [details]
Update greenlet 04.5 and add python 3 sub package

Please apply to f21, fc22 and rawhide.

Python 3 version of greenlet is needed by bpython3 package.

Comment 8 Kevin Fenzi 2015-03-26 22:43:14 UTC
So, the 'fix' here was to disable tests on arm? Does the resulting package even work on arm?

Comment 9 Terje Røsten 2015-03-27 06:41:42 UTC
Hi Kevin,

the previous FTBFS at ARM was at the build step, not %check.

%check also fails on x86_64 for Python 3 tests.

This patch is at least improvement, nothing here is perfect.

Removed skipping of tests and started koji builds:

 http://koji.fedoraproject.org/koji/taskinfo?taskID=9344087

 http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=2938570

 http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1767125

 http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2450686

Comment 10 Terje Røsten 2015-03-27 06:49:07 UTC
Which gave the following:

 archs with no test failures: i386 x86_64 arm* aarch64 ppc64le
 arch with issues: ppc64 s390 s390x

Comment 11 Kevin Fenzi 2015-03-27 13:13:59 UTC
ok, cool. 

Well, I am fine with the changes then. Would you like to have acls and just do the updates yourself?

Comment 12 Terje Røsten 2015-03-27 15:47:20 UTC
Yes, please.

Comment 13 Kevin Fenzi 2015-03-27 17:13:46 UTC
Can you request them in pkgdb? I can then approve...

Comment 14 Terje Røsten 2015-03-29 14:15:52 UTC
FTBFS on arm fixed:

 http://koji.fedoraproject.org/koji/taskinfo?taskID=9359646

%check also passes.