Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 664066 - sys-process/psmisc-23.2 breaks killall -SIG
Summary: sys-process/psmisc-23.2 breaks killall -SIG
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords: PMASKED, PullRequest
Depends on:
Blocks:
 
Reported: 2018-08-19 19:13 UTC by Hank Leininger
Modified: 2021-11-30 10:45 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Build log (sys-process:psmisc-23.2:20180919-101848.log,22.29 KB, text/plain)
2018-09-19 10:44 UTC, Andreas Proteus
Details
Cumulative updates to killall.c since 2.32 release. (psmisc-23.2-killall_options_updates.patch,3.14 KB, patch)
2018-09-23 06:05 UTC, Hank Leininger
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Hank Leininger 2018-08-19 19:13:54 UTC
Argument-parsing changes in the latest psmisc break almost all flavors of killall -HUP foo, killall -SIGTERM bar, etc.

Filed an upstream bug: https://gitlab.com/psmisc/psmisc/issues/13

In the meantime I recommend masking psmisc-23.2 (more than just the ~arch keyword it currently has).  All manner of scripts, cron jobs, etc. might be broken by this.  At a quick scan of portage, all of these would break:

$ find . -type f | xargs egrep 'killall -[A-Z]'
./net-dns/ez-ipupdate/files/ez-ipupdate-3.0.11.13.3_beta8-dnsexit.diff:+# you can use "killall -QUIT ez-ipupdate" under linux.
./net-dns/ez-ipupdate/files/ez-ipupdate-3.0.11.13.3_beta8-3322.diff:+# you can use "killall -QUIT ez-ipupdate" under linux.
./media-tv/mythtv/files/mythtv.logrotate.d-r4:          killall -HUP mythlogserver
./net-fs/samba/files/4.2/samba4.confd:smbd_reload="killall -HUP smbd"
./net-fs/samba/files/4.2/samba4.confd:nmbd_reload="killall -HUP nmbd"
./net-fs/samba/files/4.2/samba4.confd:samba4_reload="killall -HUP samba"
./net-fs/samba/files/4.2/samba4.confd:winbind_reload="killall -HUP winbindd"
./net-fs/samba/files/4.4/samba4.confd:smbd_reload="killall -HUP smbd"
./net-fs/samba/files/4.4/samba4.confd:nmbd_reload="killall -HUP nmbd"
./net-fs/samba/files/4.4/samba4.confd:samba4_reload="killall -HUP samba"
./net-fs/samba/files/4.4/samba4.confd:winbind_reload="killall -HUP winbindd"
./net-dialup/mwavem/mwavem-2.0-r2.ebuild:                       killall -HUP devfsd
./net-vpn/pptpd/files/pptpd-init-r2:    killall -SIGTERM pptpctrl &>/dev/null
./net-p2p/litecoind/files/litecoind.logrotate:          killall -HUP litecoind
./net-p2p/bitcoind/files/bitcoind.logrotate-r1:         killall -HUP bitcoind
./net-p2p/ppcoind/files/ppcoind.logrotate:              killall -HUP ppcoind
./sys-fs/lvm2/files/clvmd.rc-2.02.39:   killall -TERM ${CLVMD_BIN} >/dev/null
./app-misc/oneko/oneko-1.2-r2.ebuild:   make_desktop_entry "killall -TERM oneko" "oneko kill" "" "Game;Amusement"
./net-proxy/privoxy/files/privoxy.logrotate:            killall -HUP privoxy 2>/dev/null || true
./sys-cluster/glusterfs/files/glusterfs.logrotate:  /usr/bin/killall -HUP glusterfs > /dev/null 2>&1 || true
./sys-cluster/glusterfs/files/glusterfs.logrotate:  /usr/bin/killall -HUP glusterd > /dev/null 2>&1 || true
./sys-cluster/glusterfs/files/glusterfs.logrotate:  /usr/bin/killall -HUP glusterfsd > /dev/null 2>&1 || true
Comment 1 Andreas Proteus 2018-08-21 20:20:08 UTC
/etc/init.d/nfs restart                                                                                                                                                                                                                
 * Stopping NFS mountd ...                                                [ ok ]
 * Stopping NFS daemon ...                                                [ ok ]
 * Unexporting NFS directories ...                                        [ ok ]
Usage: killall [OPTION]... [--] NAME...                                         
       killall -l, --list                                                       
       killall -V, --version                                                    
                                                                                
  -e,--exact          require exact match for very long names                   
  -I,--ignore-case    case insensitive process name match                       
  -g,--process-group  kill process group instead of process                     
  -y,--younger-than   kill processes younger than TIME                          
  -o,--older-than     kill processes older than TIME                            
  -i,--interactive    ask for confirmation before killing                       
  -l,--list           list all known signal names                               
  -q,--quiet          don't print complaints                                    
  -r,--regexp         interpret NAME as an extended regular expression          
  -s,--signal SIGNAL  send this signal instead of SIGTERM                       
  -u,--user USER      kill only process(es) running as USER                     
  -v,--verbose        report if the signal was successfully sent                
  -V,--version        display version information                               
  -w,--wait           wait for processes to die                                 
  -n,--ns PID         match processes that belong to the same namespaces        
                      as PID                                                    
                                                                                
 * Exporting NFS directories ...                                          [ ok ]
 * Starting NFS mountd ...                                                [ ok ]
 * Starting NFS daemon ...                                                [ ok ]
 * Starting NFS smnotify ...                                              [ ok ]
Comment 2 Jonas Stein gentoo-dev 2018-08-27 13:00:22 UTC
*** Bug 664480 has been marked as a duplicate of this bug. ***
Comment 3 Andreas Klauer 2018-09-04 10:00:14 UTC
This breaks scripts all over the place. Had to mask it locally.
Comment 4 Hank Leininger 2018-09-05 01:16:55 UTC
Agreed, same here.  Please mask 23.2 to prevent widespread breakage.
Comment 5 Larry the Git Cow gentoo-dev 2018-09-05 09:43:44 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=654f07d09646acba37e7e562423ed1aa60f4e440

commit 654f07d09646acba37e7e562423ed1aa60f4e440
Author:     Lars Wendler <polynomial-c@gentoo.org>
AuthorDate: 2018-09-05 09:42:24 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2018-09-05 09:42:24 +0000

    package.mask: Masked =sys-process/psmisc-23.2
    
    Bug: https://bugs.gentoo.org/664066

 profiles/package.mask | 5 +++++
 1 file changed, 5 insertions(+)
Comment 6 Larry the Git Cow gentoo-dev 2018-09-19 08:32:41 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27aa227016ac71f90eb8c6036ab4fb2600433b02

commit 27aa227016ac71f90eb8c6036ab4fb2600433b02
Author:     Lars Wendler <polynomial-c@gentoo.org>
AuthorDate: 2018-09-19 08:32:29 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2018-09-19 08:32:29 +0000

    sys-process/psmisc: v23.2: Attempt to fix "killall -SIG"
    
    Bug: https://bugs.gentoo.org/664066
    Package-Manager: Portage-2.3.49, Repoman-2.3.10

 .../psmisc-23.2-killall_options_parsing.patch      | 79 ++++++++++++++++++++++
 sys-process/psmisc/psmisc-23.2.ebuild              |  4 ++
 2 files changed, 83 insertions(+)
Comment 7 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2018-09-19 08:34:27 UTC
Please test psmisc-23.2 again and give feedback here. I've added an usptream patch that might fix the issue but I'd like to get some user testing first.
psmisc-23.2 is still package.masked, so in order to install it you first need to unmask it locally.
Comment 8 Andreas Proteus 2018-09-19 10:35:55 UTC
I Just tried the patched version (psmisc-23.2-killall_options_parsing.patch).
Unfortunately starting /etc/nfs still gives the same error I reported in comment #1
Comment 9 Andreas Proteus 2018-09-19 10:44:06 UTC
Created attachment 547286 [details]
Build log

See my build log where I noticed some errors despite of which the package was built.
Comment 10 Hank Leininger 2018-09-23 05:34:48 UTC
I see no change/improvement in behavior at all:

$ killall --version
killall (PSmisc) 23.2

Sending killall -NAME to a nonexistent process name, we should see 'no process found' for every signal:

$ for SIG in $(killall -l) ; do echo -n "$SIG " ; killall -${SIG} foo 2>&1 | head -n1 ; done | egrep -v Usage
INT foo: no process found
ILL foo: no process found
VTALRM foo: no process found

Sending killall -SIGNAME to a nonexistent process name, we should see 'no process found' for every signal:

$ for SIG in $(killall -l) ; do echo -n "$SIG " ; killall -SIG${SIG} foo 2>&1 | head -n1 ; done | egrep -v Usage
$
Comment 11 Hank Leininger 2018-09-23 06:04:01 UTC
...OK, I tested upstream's git HEAD and it worked correctly.  Extracted a cumulative patch of killall.c between 2.32 release and upstream HEAD, used that as a patch in a modified ebuild, and it works now:

/var/tmp/portage/sys-process/psmisc-23.2/image/usr/bin $ for SIG in $(killall -l) ; do echo -n "$SIG " ; ./killall -${SIG} foo 2>&1 | head -n1 ; done | egrep -v Usage | wc -l
31

/var/tmp/portage/sys-process/psmisc-23.2/image/usr/bin $ for SIG in $(killall -l) ; do echo -n "$SIG " ; ./killall -SIG${SIG} foo 2>&1 | head -n1 ; done | egrep -v Usage | wc -l
31

I think the difference is, there were some options-parsing patches before the particular commit to killall.c that 
psmisc-23.2-killall_options_parsing.patch is taken from.  Without those inbetween patches, the new patch still applies, but doesn't function correctly.

I will attach the cumulative updates to killall.c that I extracted.
Comment 12 Hank Leininger 2018-09-23 06:05:00 UTC
Created attachment 547546 [details, diff]
Cumulative updates to killall.c since 2.32 release.
Comment 13 Larry the Git Cow gentoo-dev 2018-09-24 11:27:34 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c1e6dc1b44372a36852071f5f35b22e686d6cea

commit 6c1e6dc1b44372a36852071f5f35b22e686d6cea
Author:     Lars Wendler <polynomial-c@gentoo.org>
AuthorDate: 2018-09-24 11:13:02 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2018-09-24 11:27:12 +0000

    sys-process/psmisc: Revbump to fix "killall -SIG".
    
    Upstream re-released version 23.2 with the killall fixes.
    
    Closes: https://bugs.gentoo.org/664066
    Package-Manager: Portage-2.3.49, Repoman-2.3.11

 sys-process/psmisc/Manifest                        |  2 +-
 .../psmisc-23.2-killall_options_parsing.patch      | 79 ----------------------
 .../{psmisc-23.2.ebuild => psmisc-23.2-r1.ebuild}  |  6 +-
 3 files changed, 2 insertions(+), 85 deletions(-)
Comment 14 Larry the Git Cow gentoo-dev 2021-11-30 10:45:19 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee9f408582a8f94577446f39b1ae3f8c85dd621b

commit ee9f408582a8f94577446f39b1ae3f8c85dd621b
Author:     Stijn Tintel <stijn@linux-ipv6.be>
AuthorDate: 2021-11-30 10:45:12 +0000
Commit:     David Seifert <soap@gentoo.org>
CommitDate: 2021-11-30 10:45:12 +0000

    net-fs/nfs-utils: fix killall usage in init script
    
    * Bug 664066 has surfaced again. Fix it properly by calling killall with
      `--signal=HUP` rather than the short form that keeps being broken.
    
    Closes: https://github.com/gentoo/gentoo/pull/23121
    Closes: https://bugs.gentoo.org/664066
    Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
    Signed-off-by: David Seifert <soap@gentoo.org>

 net-fs/nfs-utils/files/nfs.initd                                        | 2 +-
 .../nfs-utils/{nfs-utils-2.5.4-r2.ebuild => nfs-utils-2.5.4-r3.ebuild}  | 0
 2 files changed, 1 insertion(+), 1 deletion(-)