Your message dated Mon, 16 Jan 2006 16:02:19 -0800
with message-id <[EMAIL PROTECTED]>
and subject line Bug#342709: fixed in portmap 5-17
has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--------------------------------------
Received: (at submit) by bugs.debian.org; 9 Dec 2005 17:38:26 +0000
>From [EMAIL PROTECTED] Fri Dec 09 09:38:26 2005
Return-path: <[EMAIL PROTECTED]>
Received: from tortoise.tiem.utk.edu ([160.36.46.64] ident=Debian-exim)
by spohr.debian.org with esmtp (Exim 4.50)
id 1EkmCQ-0002QP-25
for [EMAIL PROTECTED]; Fri, 09 Dec 2005 09:38:26 -0800
Received: from peek by tortoise.tiem.utk.edu with local (Exim 4.50)
id 1EkmCP-0002Cl-4O
for [EMAIL PROTECTED]; Fri, 09 Dec 2005 12:38:25 -0500
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: "Michael S. Peek" <[EMAIL PROTECTED]>
To: Debian Bug Tracking System <[EMAIL PROTECTED]>
Subject: portmap: Portmap dies w/ SIGPIPE during heavy I/O
X-Mailer: reportbug 3.8
Date: Fri, 09 Dec 2005 12:38:25 -0500
Message-Id: <[EMAIL PROTECTED]>
Sender: "Michael S. Peek" <[EMAIL PROTECTED]>
Delivered-To: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02
(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Level:
X-Spam-Status: No, hits=-4.9 required=4.0 tests=BAYES_00,HAS_PACKAGE,PORN_4
autolearn=no version=2.60-bugs.debian.org_2005_01_02
Package: portmap
Version: 5-9
Severity: important
I have a heterogeneous network of Un*x boxes, of which several are identical
Debian boxes, networked together using NIS (the server is a Solaris-8 box if
that matters) and mounting/exporting NFS via automount.
During heavy I/O, portmap dies, leaving no error messages in the log file.
This takes NFS down with it, cauing a loss of availability to the other
machines in the network.
By "heavy I/O", I mean the following: I can consistently kill portmap in a
matter of hours by running enough (six seems to do it) cp commands of large
(800+MB) files in infinite loops, while having other machines mount and
unmount directories served by this machine via NFS (which causes calls to
portmap). I need not copy the files over NFS -- merely copying them from one
directory to another on the internal hard drive is sufficient.
Specifically, on the local machine, the machine on which I intend to kill
portmap, I open up six xterms, and in each type the following:
while true; do cp <some huge file> <somewhere else> ; done
Where both source and destination are on the local drive. Once the local host
becomes good ans sluggish, I ssh into several remote machines and run the
following:
while true; do umount <some NFS dir> ; mount <some NFS dir> ; done
I don't know if all of that is actually *necessary* to reproduce the problem,
but it seems to work consistently. If I leave the machine be, portmap seems
to run forever. If I'm not doing heavy I/O, but merely having other hosts
mount/unmount NFS (causing calls to portmap), portmap runs forever. It only
seems to die *during* a call to portmap *while* the machine is doing I/O. (It
may only take 30 minutes, or it may take several hours, but during each of my
tests, I can begin testing when I leave work and have portmap broken by
morning.)
Running strace, I was able to find that portmap dies of a SIGPIPE while
writing to the network connection. (Snippets of strace output included
below.) I've performed these tests several (about 10) times and the output is
the same.
An example snippet from strace:
------------------------------------------------------------------------------
9553 15:17:58.333626 accept(4, {sa_family=AF_INET, sin_port=htons(46428),
sin_addr=inet_addr("127.0.0.1")}, [16]) = 5
9553 15:17:58.360418 poll([{fd=3,
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=4,
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND, revents=POLLIN|POLLRDNORM}, {fd=5,
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND, revents=POLLIN|POLLRDNORM},
{fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}], 8, -1) = 2
9553 15:17:58.367775 accept(4, {sa_family=AF_INET, sin_port=htons(46429),
sin_addr=inet_addr("127.0.0.1")}, [16]) = 6
9553 15:17:58.367911 poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 35000) =
1
9553 15:17:58.367974 read(5,
"\x80\x00\x00\x28\x7b\x9c\xf4\xf8\x00\x00\x00\x00\x00\x00"..., 400) = 44
9553 15:17:58.369828 write(5,
"\x00\x00\x01\x8c\x7b\x9c\xf4\xf8\x00\x00\x00\x01\x00\x00"..., 400) = 400
9553 15:17:58.375245 write(5,
"\x80\x00\x00\x20\x00\x00\x00\x11\x00\x00\x03\xd2\x00\x00"..., 36) = -1 EPIPE
(Broken pipe)
9553 15:17:58.377843 --- SIGPIPE (Broken pipe) @ 0 (0) ---
------------------------------------------------------------------------------
Another example snippet from strace:
------------------------------------------------------------------------------
17358 06:27:52.325025 accept(4, {sa_family=AF_INET, sin_port=htons(36450),
sin_addr=inet_addr("127.0.0.1")}, [16]) = 6
17358 06:27:52.325109 poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 35000) =
1
17358 06:27:52.325148 read(5,
"\x80\x00\x00\x28\x77\xf5\xf2\x75\x00\x00\x00\x00\x00\x00"..., 400) = 44
17358 06:27:52.325211 write(5,
"\x00\x00\x01\x8c\x77\xf5\xf2\x75\x00\x00\x00\x01\x00\x00"..., 400) = 400
17358 06:27:52.325299 write(5,
"\x80\x00\x00\x20\x00\x00\x00\x11\x00\x00\x02\x7d\x00\x00"..., 36) = 36
17358 06:27:52.325431 poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND,
revents=POLLIN|POLLRDNORM}, {fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND,
revents=POLLIN|POLLRDNORM}, {fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND,
revents=POLLIN|POLLRDNORM}, {fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND,
revents=POLLIN|POLLRDNORM}, {fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}], 9,
-1) = 4
17358 06:27:52.325500 recvmsg(3, {msg_name(16)={sa_family=AF_INET,
sin_port=htons(56537), sin_addr=inet_addr("www.xxx.yyy.zzz")},
msg_iov(1)=[{"\x43\x96\x90\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01"...,
8800}], msg_controllen=24, {cmsg_len=24, cmsg_level=SOL_IP, cmsg_type=, ...},
msg_flags=0}, 0) = 56
17358 06:27:52.325590 getpid() = 17358
17358 06:27:52.325629 open("/etc/hosts.allow", O_RDONLY) = 7
17358 06:27:52.325675 fstat64(7, {st_mode=S_IFREG|0644, st_size=20926, ...}) = 0
17358 06:27:52.325733 mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4016b000
17358 06:27:52.325772 read(7, "################################"..., 4096) =
4096
17358 06:27:52.411990 close(7) = 0
17358 06:27:52.412034 munmap(0x4016b000, 4096) = 0
17358 06:27:52.412091 clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x40021b88)
= 18081
17358 06:27:52.412206 wait4(-1, <unfinished ...>
17358 06:28:03.860962 <... wait4 resumed> NULL, 0, NULL) = -1 ECHILD (No child
processes)
17358 06:28:03.861011 sendmsg(3, {msg_name(16)={sa_family=AF_INET,
sin_port=htons(56537), sin_addr=inet_addr("www.xxx.yyy.zzz")},
msg_iov(1)=[{"\x43\x96\x90\x0b\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"...,
28}], msg_controllen=24, {cmsg_len=24, cmsg_level=SOL_IP, cmsg_type=, ...},
msg_flags=0}, 0) = 28
17358 06:28:03.861103 accept(4, {sa_family=AF_INET, sin_port=htons(36451),
sin_addr=inet_addr("127.0.0.1")}, [16]) = 7
17358 06:28:03.861188 poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 35000) =
1
17358 06:28:03.861226 read(5, "", 400) = 0
17358 06:28:03.861266 close(5) = 0
17358 06:28:03.861332 poll([{fd=6, events=POLLIN, revents=POLLIN}], 1, 35000) =
1
17358 06:28:03.861367 read(6,
"\x80\x00\x00\x28\x44\x09\x28\x0d\x00\x00\x00\x00\x00\x00"..., 400) = 44
17358 06:28:03.861432 write(6,
"\x00\x00\x01\x8c\x44\x09\x28\x0d\x00\x00\x00\x01\x00\x00"..., 400) = 400
17358 06:28:03.861490 write(6,
"\x80\x00\x00\x20\x00\x00\x00\x11\x00\x00\x02\x7d\x00\x00"..., 36) = -1 EPIPE
(Broken pipe)
17358 06:28:03.861536 --- SIGPIPE (Broken pipe) @ 0 (0) ---
------------------------------------------------------------------------------
(Not being a guru, not understanding the internals of portmap, and not
understanding network programming, my opinions should probably be taken with a
grain of salt. But...) A few solutions that come to mind are:
1) If it's possible to check the network connection before writing, that would
prevent SIGPIPE.
2) Have portmap ignore SIGPIPE, assuming that portmap is capable of
recovering gracefully on it's own, or...
3) Installing an event handler to intercept SIGPIPE and allow portmap the
opportunity to recover gracefully.
Thanks for all your hard work. Debian rocks because of people like you.
Michael Peek
P.S. Full strace output can be made available (about 1-3k in size per file)
and I am available for testing patched packages.
-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.8-2-686
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Versions of packages portmap depends on:
ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries an
ii libwrap0 7.6.dbs-8 Wietse Venema's TCP wrappers libra
-- no debconf information
---------------------------------------
Received: (at 342709-close) by bugs.debian.org; 17 Jan 2006 00:11:52 +0000
>From [EMAIL PROTECTED] Mon Jan 16 16:11:52 2006
Return-path: <[EMAIL PROTECTED]>
Received: from katie by spohr.debian.org with local (Exim 4.50)
id 1EyeIl-0007yh-Bx; Mon, 16 Jan 2006 16:02:19 -0800
From: Anibal Monsalve Salazar <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
X-Katie: $Revision: 1.65 $
Subject: Bug#342709: fixed in portmap 5-17
Message-Id: <[EMAIL PROTECTED]>
Sender: Archive Administrator <[EMAIL PROTECTED]>
Date: Mon, 16 Jan 2006 16:02:19 -0800
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02
(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Level:
X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER
autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-CrossAssassin-Score: 4
Source: portmap
Source-Version: 5-17
We believe that the bug you reported is fixed in the latest version of
portmap, which is due to be installed in the Debian FTP archive:
portmap_5-17.diff.gz
to pool/main/p/portmap/portmap_5-17.diff.gz
portmap_5-17.dsc
to pool/main/p/portmap/portmap_5-17.dsc
portmap_5-17_alpha.deb
to pool/main/p/portmap/portmap_5-17_alpha.deb
portmap_5-17_i386.deb
to pool/main/p/portmap/portmap_5-17_i386.deb
portmap_5-17_sparc.deb
to pool/main/p/portmap/portmap_5-17_sparc.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Anibal Monsalve Salazar <[EMAIL PROTECTED]> (supplier of updated portmap
package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.7
Date: Tue, 17 Jan 2006 08:59:01 +1100
Source: portmap
Binary: portmap
Architecture: source i386 alpha sparc
Version: 5-17
Distribution: unstable
Urgency: low
Maintainer: Anibal Monsalve Salazar <[EMAIL PROTECTED]>
Changed-By: Anibal Monsalve Salazar <[EMAIL PROTECTED]>
Description:
portmap - The RPC portmapper
Closes: 333125 334758 340158 342709
Changes:
portmap (5-17) unstable; urgency=low
.
* Fixed "Portmap dies w/ SIGPIPE during heavy I/O", closes: #342709.
Patch by Michael S. Peek <[EMAIL PROTECTED]>.
* Fixed "init script needlessly executed twice (and it informs the
user about it too)", closes: #340158, #334758. Patch by Joey Hess
<[EMAIL PROTECTED]>.
* Added Swedish debconf translation, closes: #333125. Patch by
Daniel Nylander <[EMAIL PROTECTED]>.
Files:
32ce92a6d712b72fa0ad4f58de5fbb85 637 net standard portmap_5-17.dsc
8b0d93319ae503eb45d10c3146b40f6a 21465 net standard portmap_5-17.diff.gz
726e852fee72c0c1a6c1151999c8d0d5 29870 net standard portmap_5-17_i386.deb
a324bec8316062f22f82b4bbd211bbe0 29660 net standard portmap_5-17_sparc.deb
3c036fddc8f9e6023c2551ab999a3069 31680 net standard portmap_5-17_alpha.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFDzDBEipBneRiAKDwRAnAaAJ0e8B9fo8XqJduZdQgHI0MsQ0OUHgCghsHa
3OF8TZNneQcFd97Fm0Ofofc=
=9Hw2
-----END PGP SIGNATURE-----
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]