Jeff King <peff@xxxxxxxx> 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 :>