Jeff King <[email protected]> wrote:
> On Tue, Mar 21, 2017 at 03:49:21PM +0000, Roger Pau Monné wrote:
>
> > I'm trying to use git send-email with msmtp, and I have added the following
> > to
> > my .gitconfig:
> >
> > [sendemail]
> > smtpserver = "/usr/local/bin/msmtp"
> >
> > This seems to work fine, except that sometimes git dies unexpectedly after
> > queuing a patch to msmtp:
> >
> > Died at /usr/local/Cellar/git/2.12.0/libexec/git-core/git-send-email line
> > 1350, <FIN> line 3.
Hi Roger, can you also enable msmtp logging and debugging?
logfile /path/to/log # in ~/.msmtprc
And "msmtp --debug" in the command line
> That line looks like it's the "close" on the pipe. If it's dying racily
> that could mean that msmtp for some reason is not eating all of the
> data and we're getting EPIPE (though that seems weird, since we're just
> dumping the message until EOF). Or possibly msmtp is sometimes exiting
> non-zero.
>
> Capturing an "strace" for a failing run would be helpful. If that's not
> possible, something like this patch might help diagnose it:
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index eea0a517f..32d34f995 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -1346,7 +1346,10 @@ EOF
> exec($smtp_server, @sendmail_parameters) or die $!;
> }
> print $sm "$header\n$message";
Perhaps also:
print $sm "$header\n$message" or
die "print failed to $smtp_server: $!";
> - close $sm or die $!;
> + if (!close($sm)) {
> + die $! ? "unable to write to $smtp_server: $!"
> + : "smtp program '$smtp_server' exited non-zero:
> $?"
Parentheses please :>