DragonFly bugs List (threaded) for 2006-07
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: Broken pipe error
:Petr Janda wrote:
:> Ok, it seems that I found a bug.
:>
:> elevator# man ppp
:> zcat: error writing to output: Broken pipe
:> zcat: /usr/share/man/cat8/ppp.8.gz: uncompress failed
:
:Do you get that for all man pages or just ppp(8)?
:
:Sascha
:
:--
:http://yoyodyne.ath.cx
The error is quite simply due to the fact that the pager program
(more) exited without reading all the input from the pipe. It
only occurs sometimes because it depends on whether the pipe
direct-maps zcat's (gunzip's) write to the pager program's read.
But, of course, the pager program exited because the user quit out
of it before it read all the input from zcat.
I think the solution is to modify the 'man' program to pass the '-q'
option to zcat (gunzip), and to modify gunzip to do a
signal(SIGPIPE, SIG_IGN) when used with the -q option.
Petr, please try rebuilding the 'man' program and the gzip program
using this patch. Please tell me if it stops the errors. Here is
the build sequence after applying the patch:
cd /usr/src/gnu/usr.bin/man
make clean obj all install
cd /usr/src/usr.bin/gzip
make clean obj all install
Patch is included below.
-Matt
Matthew Dillon
<dillon@xxxxxxxxxxxxx>
Index: gnu/usr.bin/man/Makefile.inc
===================================================================
RCS file: /cvs/src/gnu/usr.bin/man/Makefile.inc,v
retrieving revision 1.2
diff -u -r1.2 Makefile.inc
--- gnu/usr.bin/man/Makefile.inc 17 Jun 2003 04:25:46 -0000 1.2
+++ gnu/usr.bin/man/Makefile.inc 14 Jul 2006 18:14:49 -0000
@@ -22,7 +22,7 @@
refer= /usr/bin/refer
grap= # no grap
pic= /usr/bin/pic
-zcat= /usr/bin/zcat
+zcat= /usr/bin/zcat -q
compress= /usr/bin/gzip -c
compext= .gz
Index: usr.bin/gzip/gzip.c
===================================================================
RCS file: /cvs/src/usr.bin/gzip/gzip.c,v
retrieving revision 1.5
diff -u -r1.5 gzip.c
--- usr.bin/gzip/gzip.c 31 Jan 2005 19:28:57 -0000 1.5
+++ usr.bin/gzip/gzip.c 14 Jul 2006 18:17:11 -0000
@@ -314,6 +314,7 @@
break;
case 'q':
qflag = 1;
+ signal(SIGPIPE, SIG_IGN);
break;
case 'r':
rflag = 1;
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]