[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#681827: unblock: uwsgi/1.2.3+dfsg-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: freeze-exception

Please unblock package uwsgi

In order to fix RC bug #680132 a binary package uwsgi-plugin-luajit had
to be removed. Luajit will not be a part of Wheezy and
uwsgi-plugin-luajit Build-Depends on libluajit-5.1-dev. I also removed
uwsgi-plugin-luajit from dependencies for uwsgi-app-integration-plugins
and all occurrences of luajit in debian/rules.

I have also added an upstream patch for fixing an important memory leak.

I am sending the diff with changes from 1.2.3+dfsg-1 and 1.2.3+dfsg-2
releases.

unblock uwsgi/1.2.3+dfsg-2

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.4-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff --git a/debian/changelog b/debian/changelog
index ba7fe87..61361fe 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+uwsgi (1.2.3+dfsg-2) unstable; urgency=low
+
+  * Remove uwsgi-plugin-luajit binary package. (Closes: #680132)
+     - Remove libluajit-5.1-dev from Build-Depends.
+     - Remove uwsgi-plugin-luajit from dependencies for
+       uwsgi-app-integration-plugins.
+     - Remove all occurrences of luajit plugin in debian/rules.
+  * Include upstream patch to fix a memory leak in python uwsgi.workers().
+
+ -- Janos Guljas <janos@resenje.org>  Mon, 09 Jul 2012 03:32:09 +0200
+
 uwsgi (1.2.3+dfsg-1) unstable; urgency=low
 
   * New upstream release.
diff --git a/debian/control b/debian/control
index 153d813..029f5f7 100644
--- a/debian/control
+++ b/debian/control
@@ -15,7 +15,6 @@ Build-Depends:
  libjansson-dev,
  libldap2-dev,
  liblua5.1-0-dev,
- libluajit-5.1-dev [i386 amd64 kfreebsd-i386 armel],
  libperl-dev,
  libpq-dev,
  libsqlite3-dev,
@@ -169,7 +168,6 @@ Depends: ${misc:Depends},
  uwsgi-plugin-jvm-openjdk-6 (= ${binary:Version}),
  uwsgi-plugin-jwsgi-openjdk-6 (= ${binary:Version}),
  uwsgi-plugin-lua5.1 (= ${binary:Version}),
- uwsgi-plugin-luajit (= ${binary:Version}) [i386 amd64 kfreebsd-i386 armel],
  uwsgi-plugin-psgi (= ${binary:Version}),
  uwsgi-plugin-python (= ${binary:Version}),
  uwsgi-plugin-python3 (= ${binary:Version}),
@@ -185,7 +183,7 @@ Description: plugins for integration of uWSGI and application
  This dependency package provides plugins for integration of uWSGI and
  application:
    * CGI, Erlang, Java (OpenJDK 6), JWSGI (OpenJDK 6),
-     Lua WSAPI (Lua 5.1/LuaJIT), Perl PSGI, Python WSGI (Python/Python 3),
+     Lua WSAPI (Lua 5.1), Perl PSGI, Python WSGI (Python/Python 3),
      Rack (Ruby 1.8/Ruby 1.9.1)
 
 Package: uwsgi-plugin-admin
@@ -378,18 +376,6 @@ Description: Lua WSAPI plugin for uWSGI (Lua 5.1)
  This package provides Lua WSAPI plugin for uWSGI (linked with Lua 5.1
  runtime).
 
-Package: uwsgi-plugin-luajit
-Architecture: i386 amd64 kfreebsd-i386 armel
-Depends: ${shlibs:Depends}, ${misc:Depends}, uwsgi-core (= ${binary:Version})
-Description: Lua WSAPI plugin for uWSGI (LuaJIT)
- uWSGI presents a complete stack for networked/clustered web applications,
- implementing message/object passing, caching, RPC and process management.
- It is designed to be fully modular. This means that different plugins can be
- used in order to add compatibility with tons of different technology on top of
- the same core.
- .
- This package provides Lua WSAPI plugin for uWSGI (linked with LuaJIT runtime).
-
 Package: uwsgi-plugin-nagios
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, uwsgi-core (= ${binary:Version})
diff --git a/debian/patches/fixed-a-leak-in-uwsgi.workers.patch b/debian/patches/fixed-a-leak-in-uwsgi.workers.patch
new file mode 100644
index 0000000..a6d2d2d
--- /dev/null
+++ b/debian/patches/fixed-a-leak-in-uwsgi.workers.patch
@@ -0,0 +1,72 @@
+From: "roberto@quantal64" <roberto@quantal64>
+Date: Sat, 2 Jun 2012 09:59:21 +0200
+Subject: fixed a leak in uwsgi.workers()
+
+---
+ plugins/python/uwsgi_pymodule.c |   35 ++++++++++++++++++++++++++++-------
+ 1 file changed, 28 insertions(+), 7 deletions(-)
+
+diff --git a/plugins/python/uwsgi_pymodule.c b/plugins/python/uwsgi_pymodule.c
+index 0fe1ce3..2a72aec 100644
+--- a/plugins/python/uwsgi_pymodule.c
++++ b/plugins/python/uwsgi_pymodule.c
+@@ -2492,6 +2492,11 @@ PyObject *py_uwsgi_workers(PyObject * self, PyObject * args) {
+ 			goto clear;
+ 		}
+ 
++		apps_tuple = PyDict_GetItemString(worker_dict, "apps");
++		if (apps_tuple) {
++			Py_DECREF(apps_tuple);
++		}	
++
+ 		PyDict_Clear(worker_dict);
+ 
+ 		zero = PyInt_FromLong(uwsgi.workers[i + 1].id);
+@@ -2601,21 +2606,37 @@ PyObject *py_uwsgi_workers(PyObject * self, PyObject * args) {
+ 			apps_dict = PyDict_New();
+ 			ua = &uwsgi.workers[i+1].apps[j];
+ 
+-			PyDict_SetItemString(apps_dict, "id", PyInt_FromLong(j));
++			zero = PyInt_FromLong(j);
++			PyDict_SetItemString(apps_dict, "id", zero);
++			Py_DECREF(zero);
+ 
+-			PyDict_SetItemString(apps_dict, "modifier1", PyInt_FromLong(ua->modifier1));
++			zero = PyInt_FromLong(ua->modifier1);
++			PyDict_SetItemString(apps_dict, "modifier1", zero);
++			Py_DECREF(zero);
+ 
+ 			zero = PyString_FromStringAndSize(ua->mountpoint, ua->mountpoint_len);
+ 			PyDict_SetItemString(apps_dict, "mountpoint", zero);
+ 			Py_DECREF(zero);
+ 
+-			PyDict_SetItemString(apps_dict, "startup_time", PyInt_FromLong((long) ua->startup_time));
++			zero = PyInt_FromLong((long) ua->startup_time);
++			PyDict_SetItemString(apps_dict, "startup_time", zero);
++			Py_DECREF(zero);
+ 
+-			PyDict_SetItemString(apps_dict, "interpreter", PyInt_FromLong((long)ua->interpreter));
+-			PyDict_SetItemString(apps_dict, "callable", PyInt_FromLong((long)ua->interpreter));
++			zero = PyInt_FromLong((long)ua->interpreter);
++			PyDict_SetItemString(apps_dict, "interpreter", zero);
++			Py_DECREF(zero);
+ 
+-			PyDict_SetItemString(apps_dict, "requests", PyLong_FromUnsignedLongLong(ua->requests));
+-			PyDict_SetItemString(apps_dict, "exceptions", PyLong_FromUnsignedLongLong(ua->exceptions));
++			zero = PyInt_FromLong((long)ua->callable);
++			PyDict_SetItemString(apps_dict, "callable", zero);
++			Py_DECREF(zero);
++
++			zero = PyLong_FromUnsignedLongLong(ua->requests);
++			PyDict_SetItemString(apps_dict, "requests", zero);
++			Py_DECREF(zero);
++
++			zero = PyLong_FromUnsignedLongLong(ua->exceptions);
++			PyDict_SetItemString(apps_dict, "exceptions", zero);
++			Py_DECREF(zero);
+ 
+ 			if (ua->chdir) {
+ 				zero = PyString_FromString(ua->chdir);
+-- 
+1.7.10.4
+
diff --git a/debian/patches/series b/debian/patches/series
index 98930e9..247fb83 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@
 000000_03_strip_versions_from_jQuery_scripts_links_in_uwsgicc_templates.patch
 000000_04_strip_uwsgi_shebang_from_examples.patch
 110515_01_add_overriding_of_JVM_PATH_into_buildscript_of_jwsgi_plugin.patch
+fixed-a-leak-in-uwsgi.workers.patch
diff --git a/debian/rules b/debian/rules
index fcc9abc..e55dbdd 100755
--- a/debian/rules
+++ b/debian/rules
@@ -69,7 +69,7 @@ PARTICULARLY_BUILT_UWSGI_PLUGIN_PKGS = \
 	$(UWSGI_PLUGIN_PYTHON_PKG_KINDS) \
 	greenlet-python \
 	jvm-openjdk-6 jwsgi-openjdk-6 \
-	lua5.1 luajit \
+	lua5.1 \
 	$(patsubst %,pyerl-%,$(UWSGI_PLUGIN_PYTHON_PKG_KINDS)) \
 	rack-ruby1.8 rack-ruby1.9.1 fiber
 
@@ -161,7 +161,7 @@ clean::
 		for INSTANTIATED_TEMPLATE in $(call files_instantiated_in_debian_dir, \
 			uwsgi-plugin-, \
 			$(ORDINARILY_BUILT_UWSGI_PLUGIN_PKGS) \
-				lua5.1 luajit rack-ruby1.8 rack-ruby1.9.1, \
+				lua5.1 rack-ruby1.8 rack-ruby1.9.1, \
 			.$${TEMPLATE_TYPE} \
 		); do \
 			if [ -f $(CURDIR)/debian/uwsgi-plugin.$${TEMPLATE_TYPE}.in ]; then \
@@ -370,8 +370,8 @@ debian/stamp-plugin-fiber:
 		         $(PLUGIN_NAME)
 	touch $@
 
-# Build lua51_plugin.so/lua_luajit_plugin.so
-debian/stamp-plugin-lua5.1 debian/stamp-plugin-luajit:
+# Build lua51_plugin.so
+debian/stamp-plugin-lua5.1:
 	$(eval PLUGIN_NAME = $(call pkg_name_to_plugin_name, \
 		$(subst stamp-plugin-,,$(notdir $@)) \
 	))
@@ -503,7 +503,7 @@ install/uwsgi-plugin-fiber::
 			< $(CURDIR)/debian/uwsgi-plugin.install.in \
 			> $(CURDIR)/debian/$(cdbs_curpkg).install
 
-install/uwsgi-plugin-lua5.1 install/uwsgi-plugin-luajit::
+install/uwsgi-plugin-lua5.1::
 	$(eval PLUGIN_NAME = $(call pkg_name_to_plugin_name, \
 		$(subst uwsgi-plugin-,,$(notdir $@)) \
 	))

Reply to: