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

Bug#703499: unblock: soprano/2.7.6+dfsg.1-2wheezy1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package soprano

I just uploaded version 2.7.6+dfsg.1-2wheezy1 which solves a bug where
virtuoso's postinst fails because of soprano. We (José Manuel and
myself) made the upload through tpu because the fixed version in
unstable depends on librdf0 >= 1.0.16 (for !hppa) which is not available
in testing. The upload in tpu add the exact same patch as the fixed
package in unstable and has thus been throughly tested.

Below is the full explaination of the bug as found in the patch:

Soprano launches a Virtuoso server using an unix socket (/tmp/virt_XXXX
where XXXX is the tcp port specified in the configuration file). It tries
first with the /tmp/virt_1111 port if it's availaible, and if it's not, keeps
trying with above ports one by one until it finds an usuable /tmp/virt_XXXX.
Starting with 1111 is a very unfortunate choice, because if you start other
virtuoso server configured to use the same port (note that 1111 is the
default), then it would fail to start. It should fail and return, but currently
it hangs.

When installing virtuoso-opensource-6.1, the postinst script will try to start
Virtuoso using the default 1111 port in order to change the admin password. So
the problem is the following: since the unix socket /tmp/virt_1111 is (probably)
already being used by the Virtuoso instance started by Soprano, the Virtuoso
instance started by the postinst script would hang (as explained in the
paragraph above), breaking the installation.

Attached is the debdiff of the change.

Best regards,

Thomas Preud'homme

unblock soprano/2.7.6+dfsg.1-2wheezy1

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

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru soprano-2.7.6+dfsg.1/debian/changelog soprano-2.7.6+dfsg.1/debian/changelog
--- soprano-2.7.6+dfsg.1/debian/changelog	2012-11-27 22:34:30.000000000 +0100
+++ soprano-2.7.6+dfsg.1/debian/changelog	2013-03-01 16:57:01.000000000 +0100
@@ -1,3 +1,12 @@
+soprano (2.7.6+dfsg.1-2wheezy1) testing-proposed-updates; urgency=low
+
+  * Team upload.
+  * Upload to testing-proposed-updates.
+  * Add dont_use_virtuoso_default_port.diff, prevents hangs when installing or
+    running virtuoso as a standalone server.
+
+ -- José Manuel Santamaría Lema <panfaust@gmail.com>  Fri, 01 Mar 2013 16:56:04 +0100
+
 soprano (2.7.6+dfsg.1-2) unstable; urgency=low
 
   * Team upload.
diff -Nru soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff
--- soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff	1970-01-01 01:00:00.000000000 +0100
+++ soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff	2013-03-01 16:55:13.000000000 +0100
@@ -0,0 +1,33 @@
+Author: José Manuel Santamaría Lema <panfaust@gmail.com>
+Forwarded: https://projects.kde.org/projects/kdesupport/soprano/repository/revisions/3482b5fe
+Description: If possible, don't use the default virtuso port (1111)
+ Soprano launches a Virtuoso server using an unix socket (/tmp/virt_XXXX where
+ XXXX is the tcp port specified in the configuration file). It tries first with
+ the /tmp/virt_1111 port if it's availaible, and if it's not, keeps trying with
+ above ports one by one until it finds an usuable /tmp/virt_XXXX. Starting with
+ 1111 is a very unfortunate choice, because if you start other virtuoso server
+ configured to use the same port (note that 1111 is the default), then it would
+ fail to start. It should fail and return, but currently it hangs.
+ .
+ When installing virtuoso-opensource-6.1, the postinst script will try to start
+ Virtuoso using the default 1111 port in order to change the admin password. So
+ the problem is the following: since the unix socket /tmp/virt_1111 is
+ (probably) already being used by the Virtuoso instance started by Soprano, the
+ Virtuoso instance started by the postinst script would hang (as explained in
+ the paragraph above), breaking the installation.
+--- a/backends/virtuoso/virtuosocontroller.cpp
++++ b/backends/virtuoso/virtuosocontroller.cpp
+@@ -56,11 +56,11 @@ namespace {
+ //         }
+ #ifdef Q_OS_WIN
+         static QMutex portNumberMutex;
+-        static quint16 p = 1111;
++        static quint16 p = 1113;
+         QMutexLocker l(&portNumberMutex);
+         return p++;
+ #else
+-        int p = 1111;
++        int p = 1113;
+         while ( QFile::exists( QString( "/tmp/virt_%1" ).arg( p ) ) ) {
+             ++p;
+         }
diff -Nru soprano-2.7.6+dfsg.1/debian/patches/series soprano-2.7.6+dfsg.1/debian/patches/series
--- soprano-2.7.6+dfsg.1/debian/patches/series	2012-11-25 15:06:51.000000000 +0100
+++ soprano-2.7.6+dfsg.1/debian/patches/series	2013-03-01 16:55:13.000000000 +0100
@@ -2,3 +2,4 @@
 disable_usr_lib_install_rpath.diff
 doxyfile_generate_tagfile.diff
 redland_raptor2_support.h
+dont_use_virtuoso_default_port.diff

Reply to: