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 1705480

Summary: mod_wsgi FTBFS with Python 3.8
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: mod_wsgiAssignee: Matthias Runge <mrunge>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: gdumplet, Graham.Dumpleton, jkaluza, jorton, lewk, mrunge, orion, vstinner
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-03 11:15:05 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: 1686977    
Attachments:
Description Flags
Full log from Copr none

Description Miro Hrončok 2019-05-02 11:39:30 UTC
Created attachment 1561559 [details]
Full log from Copr

mod_wsgi 4.6.4-5.fc31 fails top build with Python 3.8:

/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-strict-aliasing -I/usr/include/python3.8m -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -D_GNU_SOURCE  -c -o src/server/wsgi_interp.lo src/server/wsgi_interp.c && touch src/server/wsgi_interp.slo
src/server/wsgi_interp.c: In function 'ShutdownInterpreter_call':
src/server/wsgi_interp.c:341:32: error: dereferencing pointer to incomplete type 'PyInterpreterState' {aka 'struct _is'}
  341 |         tstate = tstate->interp->tstate_head;
      |                                ^~
apxs:Error: Command failed with rc=65536

Full log attached.

Comment 1 Miro Hrončok 2019-05-15 10:40:32 UTC
Victor, could you please have a look here?

Comment 2 Graham Dumpleton 2019-05-15 10:44:50 UTC
The compilation issues have already been addressed in mod_wsgi GitHub repo. Even so, it crashes at run time deep in Python C library. It is not yet known why.

Comment 3 Graham Dumpleton 2019-05-28 02:23:32 UTC
Python 3.8 issue.

See https://bugs.python.org/issue37072

Comment 4 Graham Dumpleton 2019-05-29 00:35:45 UTC
The believed cause of the problem has now been fixed in Python 3.8 code. Will try and test with Python code from repository when have a chance.

Comment 5 Miro Hrončok 2019-05-29 07:36:58 UTC
Cherry-picking the fix to https://copr.fedorainfracloud.org/coprs/g/python/python3.8/

Comment 6 Miro Hrončok 2019-05-29 11:21:22 UTC
The package still fails with the original problem and needs to be updated or patched.

Comment 7 Graham Dumpleton 2019-05-29 11:23:21 UTC
The fix in Python 3.8 is likely only to be the first issue. Until that was fixed I couldn't test further to see what the next issue was. Will attempt to test again tomorrow with patched Python 3.8.

Comment 8 Graham Dumpleton 2019-05-29 11:50:54 UTC
Are you sure you have applied the patch correctly? A very quick tests shows it no longer crashes for me. There are other issues with deprecation warnings in Python code components of mod_wsgi-express, but it does handle requests okay.

Comment 9 Miro Hrončok 2019-05-29 12:05:18 UTC
I'm building the Fedora package. You've said in comment #2:

> The compilation issues have already been addressed in mod_wsgi GitHub repo.

This still needs to be fixed...

> Even so, it crashes at run time deep in Python C library. It is not yet
> known why.

...in order to test the fix for this.

Comment 10 Graham Dumpleton 2019-05-29 12:39:37 UTC
That comment was for the original compilation issues which have been fixed in mod_wsgi GitHub repo (develop branch only at this point).

Later you will see I also mention that Python 3.8 crashes. That subsequent crashing issue has been fixed in Python 3.8 source code, it is not an issue in mod_wsgi. You would need to use patch for Python 3.8 in https://bugs.python.org/issue37072

So you can't do anything until patched Python 3.8 has been released, and patched mod_wsgi released.

I thought it was a bit strange you were talking about back porting since two packages have to change.

Comment 11 Miro Hrončok 2019-05-29 12:48:47 UTC
I've backported the CPython change, as I'm the Fedora maintainer of CPython.

Nobody backported the mod_wsgi fix yet.

Comment 12 Graham Dumpleton 2019-05-29 12:50:00 UTC
What version of mod_wsgi are you using? Are you stuck on some ancient version, or can you use the latest if I release a new version?

Comment 13 Miro Hrončok 2019-05-29 12:53:18 UTC
I'm using what is packaged for Fedora rawhide in https://src.fedoraproject.org/rpms/mod_wsgi/blob/master/f/mod_wsgi.spec - 4.6.4.

---

I believe the commit is https://github.com/GrahamDumpleton/mod_wsgi/commit/b03b02df6318afe26052db5b0365732152cacea2 - correct?

Comment 14 Graham Dumpleton 2019-05-29 12:59:04 UTC
Yes, but not sure if also need:

https://github.com/GrahamDumpleton/mod_wsgi/commit/0f34844009075391c55419a3afb90e469facf35e