Hello community, here is the log from the commit of package git for openSUSE:Factory checked in at 2015-10-01 09:28:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/git (Old) and /work/SRC/openSUSE:Factory/.git.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "git" Changes: -------- --- /work/SRC/openSUSE:Factory/git/git.changes 2015-09-17 09:17:55.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.git.new/git.changes 2015-10-01 09:28:20.000000000 +0200 @@ -1,0 +2,29 @@ +Tue Sep 29 18:57:13 UTC 2015 - astieger@suse.com + +- git 2.6.0: + * many UI and workflow updates, added parameters and options + * some performance optimisations and resource use reduction +- refresh pager-don-t-use-unsafe-functions-in-signal-handle.patch + +------------------------------------------------------------------- +Fri Sep 25 15:11:29 CEST 2015 - tiwai@suse.de + +- Fix deadlock in signal handler in pager (boo#942297): + pager-don-t-use-unsafe-functions-in-signal-handle.patch + +------------------------------------------------------------------- +Sun Sep 20 16:34:29 UTC 2015 - astieger@suse.com + +- git 2.5.3: + * The experimental untracked-cache feature were buggy when paths + with a few levels of subdirectories are involved. + * Fix performance regression in "git am --skip" + +------------------------------------------------------------------- +Sat Sep 19 10:13:32 UTC 2015 - dimstar@opensuse.org + +- Suggest instead of recommend git-web: git-web is the web-server + browsing part. Users that install git-core and appache will still + get it auto-recommended based on the supplements. + +------------------------------------------------------------------- Old: ---- git-2.5.2.tar.sign git-2.5.2.tar.xz New: ---- git-2.6.0.tar.sign git-2.6.0.tar.xz pager-don-t-use-unsafe-functions-in-signal-handle.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ git.spec ++++++ --- /var/tmp/diff_new_pack.fFfC83/_old 2015-10-01 09:28:22.000000000 +0200 +++ /var/tmp/diff_new_pack.fFfC83/_new 2015-10-01 09:28:22.000000000 +0200 @@ -26,7 +26,7 @@ %endif Name: git -Version: 2.5.2 +Version: 2.6.0 Release: 0 Summary: Fast, scalable, distributed revision control system License: GPL-2.0 @@ -51,6 +51,8 @@ Patch6: git-tcsh-completion-fixes.diff # adapt paths in zsh completion (bnc#853183) Patch7: git-zsh-completion-fixes.diff +# PATCH-FIX-SUSE pager-don-t-use-unsafe-functions-in-signal-handle.patch boo#942297 +Patch8: pager-don-t-use-unsafe-functions-in-signal-handle.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: apache2 BuildRequires: asciidoc @@ -70,8 +72,8 @@ BuildRequires: xmlto BuildRequires: xz Requires: git-core = %{version} -Recommends: git-svn git-cvs git-email gitk git-gui git-web -Suggests: git-daemon +Recommends: git-svn git-cvs git-email gitk git-gui +Suggests: git-daemon git-web %description Git is a fast, scalable, distributed revision control system with an @@ -236,6 +238,7 @@ %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 %build cat > .make <<'EOF' ++++++ git-2.5.2.tar.xz -> git-2.6.0.tar.xz ++++++ ++++ 107983 lines of diff (skipped) ++++++ pager-don-t-use-unsafe-functions-in-signal-handle.patch ++++++
From bbc10c28f64194c143775b80bcd349f46d927bbf Mon Sep 17 00:00:00 2001 From: Takashi Iwai
Date: Fri, 4 Sep 2015 07:23:55 +0200 Subject: [PATCH v2] pager: don't use unsafe functions in signal handlers
Since the commit [a3da8821208d: pager: do wait_for_pager on signal
death], we call wait_for_pager() in the pager's signal handler. The
recent bug report revealed that this causes a deadlock in glibc at
aborting "git log" [*1]. When this happens, git process is left
unterminated, and it can't be killed by SIGTERM but only by SIGKILL.
The problem is that wait_for_pager() function does more than waiting
for pager process's termination, but it does cleanups and printing
errors. Unfortunately, the functions that may be used in a signal
handler are very limited [*2]. Particularly, malloc(), free() and the
variants can't be used in a signal handler because they take a mutex
internally in glibc. This was the cause of the deadlock above. Other
than the direct calls of malloc/free, many functions calling
malloc/free can't be used. strerror() is such one, either.
Also the usage of fflush() and printf() in a signal handler is bad,
although it seems working so far. In a safer side, we should avoid
them, too.
This patch tries to reduce the calls of such functions in signal
handlers. wait_for_signal() takes a flag and avoids the unsafe
calls. Also, finish_command_in_signal() is introduced for the
same reason. There the free() calls are removed, and only waits for
the children without whining at errors.
[*1] https://bugzilla.opensuse.org/show_bug.cgi?id=942297
[*2] http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag...
Signed-off-by: Takashi Iwai
participants (1)
-
root@hilbert.suse.de