Your message dated Thu, 23 Aug 2012 18:24:13 +0200 with message-id <20120823162413.GK7361@mraw.org> and subject line Re: Bug#681885: unblock: ivykis/0.30.1-2 has caused the Debian Bug report #681885, regarding unblock: ivykis/0.30.1-2 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 681885: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681885 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock: ivykis/0.30.1-2
- From: Gergely Nagy <algernon@balabit.hu>
- Date: Tue, 17 Jul 2012 15:38:03 +0200
- Message-id: <877gu2zex0.fsf@algernon.balabit>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: freeze-exception Please unblock package ivykis While a new upstream version, it's a bug-fix release, containing important upstream fixes (none reported to Debian, so no bug numbers at present), and a minor packaging fix. The most important of these are explained in the changelog aswell, but for convenience, I'll repeat them here, with a bit more information added to make it easier to decide whether to unblock the package. The fixes are: - 0.30 (currently in testing) introduced a regression, that could easily result in a deadlock when under moderate load. The situation and the fix is - I believe - well explained in the comment in iv_work.c (see the attached debdiff) - The kqueue polling method had an uninitialized variable, which lead to strange situations - including possible assertions - on kFreeBSD. (fix in iv_method_kqueue.c) - Various minor/possible memory leak fixes, best explained by upstream commit messages: https://github.com/buytenh/ivykis/commit/3124a2c6b082054ee6418a195327c6e7b20529f3 https://github.com/buytenh/ivykis/commit/d785caf58b25d2304d1aba9439fe20a5a76d76ee - A workaround for an event registration problem, triggered by syslog-ng. Without this workaround, it's fairly inconvenient to register fds with ivykis, and the application would need to go to great lengths to ensure everything is proper. A needless dance, since ivykis - with this fix - can do the same thing more efficiently. - And last but not least, ivykis Breaks/Replaces libsyslog-ng-dev, because former versions (including 3.3.5 currently in testing & unstable) included a patched ivykis, and installed its headers too. Starting with 3.3.6, syslog-ng will stop doing that, and use the ivykis package instead. However, after ivykis 0.30.1-2 was uploaded to unstable, syslog-ng 3.3.5.90 (a 3.3.6 RC) was released, and 3rd party Debian packages were made for that release too. To make the life of users of those packages, and my own, I lowered the Breaks/Replaces to << 3.3.5.90~ (from the former << 3.3.6~). It's a trivial fix that does not affect Debian at all, but it'd be nice to have nevertheless. There are currently no packages in Debian that either depend or build-depend on ivykis, therefore I'd consider the above changes no-risk and very safe. We've also went to great lengths with upstream to make sure that 0.30.1 is suitable for Debian Stable, and that every fix in it is well justified. (The debdiff also has a bit of noise, as 0.30-1 had two patches cherry-picked from upstream, which have been integrated in the new version.) unblock ivykis/0.30.1-2 -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-1-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/bash -- |8]diff -Nru ivykis-0.30/configure.ac ivykis-0.30.1/configure.ac --- ivykis-0.30/configure.ac 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/configure.ac 2012-07-02 21:14:58.000000000 +0200 @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([ivykis], [0.30], [libivykis-discuss@lists.sourceforge.net]) +AC_INIT([ivykis], [0.30.1], [libivykis-discuss@lists.sourceforge.net]) AC_CONFIG_SRCDIR([lib/iv_main.c]) AC_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([foreign]) diff -Nru ivykis-0.30/debian/changelog ivykis-0.30.1/debian/changelog --- ivykis-0.30/debian/changelog 2012-06-23 09:06:12.000000000 +0200 +++ ivykis-0.30.1/debian/changelog 2012-07-05 12:50:27.000000000 +0200 @@ -1,3 +1,19 @@ +ivykis (0.30.1-2) unstable; urgency=low + + * Ligthen the Breaks/Replaces on libsyslog-ng-dev, and B/R on versions + prior to 3.3.5.90 instead of 3.3.6. + + -- Gergely Nagy <algernon@madhouse-project.org> Thu, 05 Jul 2012 12:49:32 +0200 + +ivykis (0.30.1-1) unstable; urgency=low + + * New upstream bugfix release: + + Fix a possible deadlock situation, introduced in 0.30. + + Work around iv_fd_register_try() being called without handlers + (triggered by syslog-ng) + + -- Gergely Nagy <algernon@madhouse-project.org> Tue, 03 Jul 2012 20:13:39 +0200 + ivykis (0.30-1) unstable; urgency=low * New upstream release. diff -Nru ivykis-0.30/debian/control ivykis-0.30.1/debian/control --- ivykis-0.30/debian/control 2012-06-23 09:06:12.000000000 +0200 +++ ivykis-0.30.1/debian/control 2012-07-05 12:50:27.000000000 +0200 @@ -29,8 +29,8 @@ Section: libdevel Architecture: any Depends: libivykis0 (= ${binary:Version}), ${misc:Depends} -Breaks: libsyslog-ng-dev (<< 3.3.6~) -Replaces: libsyslog-ng-dev (<< 3.3.6~) +Breaks: libsyslog-ng-dev (<< 3.3.5.90~) +Replaces: libsyslog-ng-dev (<< 3.3.5.90~) Description: Development libraries, header files and docs for libivykis Contains the header files, documentation, examples and static libraries for use in developing applications that use the libivykis diff -Nru ivykis-0.30/debian/patches/0001-iv_fatal-Don-t-pass-in-error-message-as-a-format-str.patch ivykis-0.30.1/debian/patches/0001-iv_fatal-Don-t-pass-in-error-message-as-a-format-str.patch --- ivykis-0.30/debian/patches/0001-iv_fatal-Don-t-pass-in-error-message-as-a-format-str.patch 2012-06-23 09:08:11.000000000 +0200 +++ ivykis-0.30.1/debian/patches/0001-iv_fatal-Don-t-pass-in-error-message-as-a-format-str.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,38 +0,0 @@ -From b58b132817fbd27677eff7802fc8595da7d02ae5 Mon Sep 17 00:00:00 2001 -From: Gergely Nagy <algernon@balabit.hu> -Date: Fri, 22 Jun 2012 22:53:56 +0200 -Subject: [PATCH] iv_fatal: Don't pass in error message as a format string to - syslog(3). - -Instead of calling syslog(3) as: - - syslog(LOG_CRIT, msg); - -we should call it as: - - syslog(LOG_CRIT, "%s", msg); - -as the former variant treats the error message as a format string, -which is potentially unsafe. - -Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> ---- - lib/iv_main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/iv_main.c b/lib/iv_main.c -index 74cec15..5aad9ba 100644 ---- a/lib/iv_main.c -+++ b/lib/iv_main.c -@@ -301,7 +301,7 @@ void iv_fatal(const char *fmt, ...) - if (fatal_msg_handler != NULL) - fatal_msg_handler(msg); - else -- syslog(LOG_CRIT, msg); -+ syslog(LOG_CRIT, "%s", msg); - - abort(); - } --- -1.7.10 - diff -Nru ivykis-0.30/debian/patches/0002-Makefile.am-Apply-forgotten-current-age-shared-libra.patch ivykis-0.30.1/debian/patches/0002-Makefile.am-Apply-forgotten-current-age-shared-libra.patch --- ivykis-0.30/debian/patches/0002-Makefile.am-Apply-forgotten-current-age-shared-libra.patch 2012-06-23 09:08:11.000000000 +0200 +++ ivykis-0.30.1/debian/patches/0002-Makefile.am-Apply-forgotten-current-age-shared-libra.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,29 +0,0 @@ -From d0f9314ccdbe89de70bb94cd7a080b71d861c1ed Mon Sep 17 00:00:00 2001 -From: Gergely Nagy <algernon@balabit.hu> -Date: Fri, 22 Jun 2012 23:10:11 +0200 -Subject: [PATCH] Makefile.am: Apply forgotten current+age shared library - version bump. - -Corresponding to the addition of iv_fatal()/iv_set_fatal_msg_handler(). - -Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 2f49510..9bb785f 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -6,7 +6,7 @@ lib_LTLIBRARIES = libivykis.la - - libivykis_la_SOURCES = - libivykis_la_LIBADD = lib/libivykis.la modules/libivykis-modules.la --libivykis_la_LDFLAGS = -version-info 0:0:0 -+libivykis_la_LDFLAGS = -version-info 1:0:1 - - if HAVE_VERSIONING - libivykis_la_LDFLAGS += -Wl,--version-script,${srcdir}/libivykis.ver --- -1.7.10 - diff -Nru ivykis-0.30/debian/patches/series ivykis-0.30.1/debian/patches/series --- ivykis-0.30/debian/patches/series 2012-06-23 09:08:11.000000000 +0200 +++ ivykis-0.30.1/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ -# debian/source/git-patches exported from git by quilt-patches-deb-export-hook -0001-iv_fatal-Don-t-pass-in-error-message-as-a-format-str.patch -0002-Makefile.am-Apply-forgotten-current-age-shared-libra.patch diff -Nru ivykis-0.30/debian/source/git-patches ivykis-0.30.1/debian/source/git-patches --- ivykis-0.30/debian/source/git-patches 2012-06-23 09:06:12.000000000 +0200 +++ ivykis-0.30.1/debian/source/git-patches 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -v$UPSTREAM_REF-trunk..debian/patched/$DEB_REF diff -Nru ivykis-0.30/lib/iv_fd.c ivykis-0.30.1/lib/iv_fd.c --- ivykis-0.30/lib/iv_fd.c 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/lib/iv_fd.c 2012-07-02 21:14:58.000000000 +0200 @@ -162,18 +162,28 @@ { struct iv_state *st = iv_get_state(); struct iv_fd_ *fd = (struct iv_fd_ *)_fd; + int orig_wanted_bands; int ret; iv_fd_register_prologue(st, fd); recompute_wanted_flags(fd); + orig_wanted_bands = fd->wanted_bands; + if (!fd->wanted_bands) + fd->wanted_bands = MASKIN | MASKOUT; + ret = method->notify_fd_sync(st, fd); if (ret) { fd->registered = 0; return ret; } + if (!orig_wanted_bands) { + fd->wanted_bands = 0; + method->notify_fd(st, fd); + } + iv_fd_register_epilogue(st, fd); return 0; diff -Nru ivykis-0.30/lib/iv_main.c ivykis-0.30.1/lib/iv_main.c --- ivykis-0.30/lib/iv_main.c 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/lib/iv_main.c 2012-07-02 21:14:58.000000000 +0200 @@ -301,7 +301,7 @@ if (fatal_msg_handler != NULL) fatal_msg_handler(msg); else - syslog(LOG_CRIT, msg); + syslog(LOG_CRIT, "%s", msg); abort(); } diff -Nru ivykis-0.30/lib/iv_method_kqueue.c ivykis-0.30.1/lib/iv_method_kqueue.c --- ivykis-0.30/lib/iv_method_kqueue.c 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/lib/iv_method_kqueue.c 2012-07-02 21:14:58.000000000 +0200 @@ -206,7 +206,7 @@ static int iv_kqueue_notify_fd_sync(struct iv_state *st, struct iv_fd_ *fd) { struct kevent kev[2]; - int num; + int num = 0; int ret; iv_kqueue_queue_one(kev, &num, fd); diff -Nru ivykis-0.30/Makefile.am ivykis-0.30.1/Makefile.am --- ivykis-0.30/Makefile.am 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/Makefile.am 2012-07-02 21:14:58.000000000 +0200 @@ -6,7 +6,7 @@ libivykis_la_SOURCES = libivykis_la_LIBADD = lib/libivykis.la modules/libivykis-modules.la -libivykis_la_LDFLAGS = -version-info 0:0:0 +libivykis_la_LDFLAGS = -version-info 1:1:1 if HAVE_VERSIONING libivykis_la_LDFLAGS += -Wl,--version-script,${srcdir}/libivykis.ver diff -Nru ivykis-0.30/modules/iv_thread.c ivykis-0.30.1/modules/iv_thread.c --- ivykis-0.30/modules/iv_thread.c 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/modules/iv_thread.c 2012-07-02 21:14:58.000000000 +0200 @@ -184,6 +184,7 @@ out: iv_event_unregister(&thr->dead); + free(thr->name); free(thr); if (iv_thread_debug) diff -Nru ivykis-0.30/modules/iv_wait.c ivykis-0.30.1/modules/iv_wait.c --- ivykis-0.30/modules/iv_wait.c 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/modules/iv_wait.c 2012-07-02 21:14:58.000000000 +0200 @@ -219,9 +219,6 @@ } free(we); - - if (tinfo->handled_wait_interest == NULL) - break; } tinfo->handled_wait_interest = NULL; diff -Nru ivykis-0.30/modules/iv_work.c ivykis-0.30.1/modules/iv_work.c --- ivykis-0.30/modules/iv_work.c 2012-06-22 18:23:52.000000000 +0200 +++ ivykis-0.30.1/modules/iv_work.c 2012-07-02 21:14:58.000000000 +0200 @@ -119,6 +119,17 @@ } else { __iv_work_thread_die(thr); } + } else { + /* + * If we're already at the maximum number of pool + * threads, and none of those threads were idle when + * more work arrived, then there may have been no + * kick sent for the new work item(s) (and no new + * pool thread started either), so if we're leaving + * with work items still pending, kick ourselves by + * hand, to make sure we don't deadlock. + */ + iv_event_post(&thr->kick); } pthread_mutex_unlock(&pool->lock);
--- End Message ---
--- Begin Message ---
- To: Gergely Nagy <algernon@balabit.hu>, 681885-done@bugs.debian.org
- Subject: Re: Bug#681885: unblock: ivykis/0.30.1-2
- From: Cyril Brulebois <kibi@debian.org>
- Date: Thu, 23 Aug 2012 18:24:13 +0200
- Message-id: <20120823162413.GK7361@mraw.org>
- In-reply-to: <[🔎] 87obmaugyd.fsf@luthien.mhp>
- References: <877gu2zex0.fsf@algernon.balabit> <[🔎] 20120816224209.GH31479@mraw.org> <[🔎] 87obmaugyd.fsf@luthien.mhp>
Gergely Nagy <algernon@balabit.hu> (17/08/2012): > Sorry about that, I was in a bit of a rush at the time. I could upload > a -3 and retroactively correct the changelog (by adding a "All patches > dropped, they were merged upstream" line or something similar to > 0.30-1), if that'd help. > > Or, I can send a filtered debdiff with that patch noise filtered out. The latter would be appreciated if the situation arises again. I went for two apt-get source, then rm -r on .pc and debian/patches. Unblocked. Mraw, KiBi.Attachment: signature.asc
Description: Digital signature
--- End Message ---