ports/148651: [PATCH] Apply vendor revision 1605 for www/mod_wsgi3

Xin LI delphij at FreeBSD.org
Thu Jul 15 19:40:02 UTC 2010


>Number:         148651
>Category:       ports
>Synopsis:       [PATCH] Apply vendor revision 1605 for www/mod_wsgi3
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jul 15 19:40:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Xin LI
>Release:        FreeBSD 8.1-PRERELEASE i386
>Organization:
iXsystems, Inc
>Environment:
System: FreeBSD freefall.freebsd.org 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #44 r209978: Tue Jul 13 08:42:03 UTC 2010 simon at freefall.freebsd.org:/usr/src/sys/i386/compile/FREEFALL i386


>Description:
	With newer Python version, mod_wsgi gives error messages like this:

[error] Exception KeyError: KeyError(139934492751712,) in <module 'threading' from '/usr/local/lib/python2.6/threading.pyc'> ignored

	While it by itself harmless, it's very annoying.

>How-To-Repeat:
	Install mod_wsgi3 with Python 2.6.5 (latest version in ports)
>Fix:

	This is a backport for svn revision 1605.

	Vendor issue ticket #197

	http://code.google.com/p/modwsgi/issues/detail?id=197

--- mod_wsgi3.diff begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/www/mod_wsgi3/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile	25 May 2010 20:43:04 -0000	1.16
+++ Makefile	15 Jul 2010 19:33:01 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=	mod_wsgi
 PORTVERSION=	3.2
+PORTREVISION=	1
 CATEGORIES=	www python
 MASTER_SITES=	${MASTER_SITE_GOOGLE_CODE} \
 		http://apt.douglasthrift.net/files/${PORTNAME}/ \
Index: files/patch-mod_wsgi.c
===================================================================
RCS file: files/patch-mod_wsgi.c
diff -N files/patch-mod_wsgi.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-mod_wsgi.c	15 Jul 2010 19:32:53 -0000
@@ -0,0 +1,29 @@
+--- ./mod_wsgi.c.orig	2010-03-09 01:48:50.000000000 -0800
++++ ./mod_wsgi.c	2010-07-15 12:31:01.189153878 -0700
+@@ -5648,6 +5648,26 @@
+     module = PyImport_ImportModule("atexit");
+     Py_XDECREF(module);
+ 
++    /*
++     * In Python 2.6.5 and Python 3.1.2 the shutdown of
++     * threading was moved back into Py_Finalize() for the main
++     * Python interpreter. Because we shutting down threading
++     * ourselves, the second call results in errors being logged
++     * when Py_Finalize() is called and the shutdown function
++     * called a second time. The errors don't indicate any real
++     * problem and the threading module ignores them anyway.
++     * Whether we are using Python with this changed behaviour
++     * can only be checked by looking at run time version.
++     * Rather than try and add a dynamic check, create a fake
++     * 'dummy_threading' module as the presence of that shuts up
++     * the messages. It doesn't matter that the rest of the
++     * shutdown function still runs as everything is already
++     * stopped so doesn't do anything.
++     */
++
++    if (!PyImport_AddModule("dummy_threading"))
++        PyErr_Clear();
++
+     Py_Finalize();
+ 
+     wsgi_python_initialized = 0;
--- mod_wsgi3.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list