On Sat, Apr 28, 2018 at 10:40:01AM +0200, Philip Guenther wrote:
> On Sat, 28 Apr 2018, Otto Moerbeek wrote:
> > On Fri, Apr 27, 2018 at 09:12:36PM -0400, Rupert Gallagher wrote:
> >
> > > The lack of information originates from "mountd -d". When it terminates
> > > because of an error, it should log the name of the last function and its
> > > parameters.
> >
> > Wrap your lines.
> >
> > Well, ktrace does that for system calls. What I'm seeing is that a
> > socket is closed and mountd tries to write to it and then gets
> > SIGPIPE because of that. But I do not know yet what's cause and effect.
>
> Well, since it's handling TCP connections mountd should be ignoring
> SIGPIPE, no?
Yes, I was pondering that already.
Worth a try (I cannot reproduce, not having Windows 10 Pro),
-Otto
>
> Index: mountd.c
> ===================================================================
> RCS file: /data/src/openbsd/src/sbin/mountd/mountd.c,v
> retrieving revision 1.85
> diff -u -p -r1.85 mountd.c
> --- mountd.c 23 Dec 2015 21:32:52 -0000 1.85
> +++ mountd.c 28 Apr 2018 08:39:46 -0000
> @@ -295,6 +295,7 @@ main(int argc, char *argv[])
>
> signal(SIGCHLD, (void (*)(int)) check_child);
> signal(SIGHUP, (void (*)(int)) new_exportlist);
> + signal(SIGPIPE, SIG_IGN);
>
> if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, socks) == -1) {
> syslog(LOG_ERR, "socketpair: %m");