Problem is fixed with the attached patch.
diff -r -u --new-file old/portmap-5/Makefile new/portmap-5/Makefile
--- old/portmap-5/Makefile      2005-12-09 11:49:57.000000000 -0500
+++ new/portmap-5/Makefile      2005-12-13 10:32:43.000000000 -0500
@@ -74,6 +74,11 @@
 #
 ZOMBIES = -DIGNORE_SIGCHLD     # AIX 4.x, HP-UX 9.x
 
+# Under heavy I/O, sometimes portmap dies w/ SIGPIPE.  Enable next macro to
+# fix.
+#
+BROKEN_PIPE = -DIGNORE_SIGPIPE
+
 # Uncomment the following macro if your system does not have u_long.
 #
 # ULONG        =-Du_long="unsigned long"
@@ -120,8 +125,8 @@
 SHELL  = /bin/sh
 
 COPT   = $(CONST) $(HOSTS_ACCESS) $(CHECK_PORT) \
-       $(SYS) -DFACILITY=$(FACILITY) $(ULONG) $(ZOMBIES) $(SA_LEN) \
-       $(LOOPBACK) $(SETPGRP)
+       $(SYS) -DFACILITY=$(FACILITY) $(ULONG) $(ZOMBIES) $(BROKEN_PIPE) \
+       $(SA_LEN) $(LOOPBACK) $(SETPGRP)
 CFLAGS = -Wall $(COPT) -O2 $(NSARCHS)
 OBJECTS        = portmap.o pmap_check.o from_local.o $(AUX)
 
diff -r -u --new-file old/portmap-5/portmap.c new/portmap-5/portmap.c
--- old/portmap-5/portmap.c     2005-12-09 11:49:57.000000000 -0500
+++ new/portmap-5/portmap.c     2005-12-13 10:32:43.000000000 -0500
@@ -312,6 +312,11 @@
 #else
        (void)signal(SIGCHLD, reap);
 #endif
+#ifdef IGNORE_SIGPIPE                  /* Michael Peek <[EMAIL PROTECTED]> */
+       (void)signal(SIGPIPE, SIG_IGN);
+#else
+       (void)signal(SIGPIPE, reap);
+#endif
        svc_run();
        syslog(LOG_ERR, "run_svc returned unexpectedly");
        abort();
     0.044061 accept(4, {sa_family=AF_INET, sin_port=htons(57806), 
sin_addr=inet_addr("127.0.0.1")}, [16]) = 6
     0.042895 poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 35000) = 1
     0.040004 read(5, 
"\x80\x00\x00\x28\x6c\x53\x9c\x38\x00\x00\x00\x00\x00\x00"..., 400) = 44
     0.000104 write(5, 
"\x00\x00\x01\x8c\x6c\x53\x9c\x38\x00\x00\x00\x01\x00\x00"..., 400) = 400
     0.000073 write(5, 
"\x80\x00\x00\x70\x00\x00\x00\x11\x00\x00\x03\x8d\x00\x00"..., 116) = -1 EPIPE 
(Broken pipe)
     0.000050 --- SIGPIPE (Broken pipe) @ 0 (0) ---
     0.000061 close(5)                  = 0

Reply via email to