bin/155034: [PATCH] dd(1) dies on SIGUSR1; should print info
Chris Rees
utisoft at gmail.com
Fri Feb 25 16:20:06 UTC 2011
>Number: 155034
>Category: bin
>Synopsis: [PATCH] dd(1) dies on SIGUSR1; should print info
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Feb 25 16:20:05 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Chris Rees
>Release: FreeBSD 8.1-RELEASE-p2 i386
>Organization:
>Environment:
System: FreeBSD zeus.bayofrum.net 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #0: Wed Feb 23 16:10:57 UTC 2011 root at zeus.bayofrum.net:/usr/obj/usr/src/sys/ZEUS i386
>Description:
[1] describes how SIGUSR1 can be used instead of SIGINFO to get the current status of dd in GNU coreutils, and when I unsuspectingly used SIGUSR1 to query FreeBSD dd just now I killed it...
I understand that there are differences between systems, but I think that I received a rather harsh punishment here!
[1] http://www.gnu.org/software/coreutils/manual/coreutils.html#dd-invocation
>How-To-Repeat:
[crees at zeus]~% dd if=/dev/random of=/dev/null &
[1] 9693
[crees at zeus]~% kill -USR1 9693
[crees at zeus]~%
[1] User signal 1 dd if=/dev/random of=/dev/null
[crees at zeus]~% fg
fg: No current job.
[crees at zeus]~% j
[crees at zeus]~%
>Fix:
--- dd-sigusr1.patch begins here ---
Index: dd.c
===================================================================
RCS file: /exports/cvsroot-freebsd/src/bin/dd/dd.c,v
retrieving revision 1.43
diff -u -r1.43 dd.c
--- dd.c 15 Aug 2004 19:10:05 -0000 1.43
+++ dd.c 25 Feb 2011 15:31:58 -0000
@@ -90,6 +90,7 @@
setup();
(void)signal(SIGINFO, summaryx);
+ (void)signal(SIGUSR1, summaryx);
(void)signal(SIGINT, terminate);
atexit(summary);
--- dd-sigusr1.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list