{"thread":{"id":"50143","subject":"git-send-email warnings & process dying of signal 11","startedAt":"2019-01-02T00:01:51Z","lastAt":"2019-01-04T06:25:38Z","messageCount":3,"participants":["Rafał Miłecki","Carlo Arenas"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"366024","messageId":"1e4ac3d5-f6f5-bcce-2f09-0519934289b9@milecki.pl","threadId":"50143","inReplyTo":null,"subject":"git-send-email warnings & process dying of signal 11","fromName":"Rafał Miłecki","fromEmail":"rafal@milecki.pl","sentAt":"2019-01-01T22:45:49Z","receivedAt":"2019-01-02T00:01:51Z","isPatch":false,"sender":{"key":"rafal@milecki.pl","avatar":null},"body":"Hello & Happy New Year!\n\nI've recently switched from openSUSE 42.3 (perl 5.18.2 & git 2.13.7) to\nthe openSUSE Tumbleweed (perl 5.28.1 & git 2.20.1) and send-email\ndoesn't work for me anymore.\n\nFWIW it doesn't seem like a git regression. I've manually installed\n2.13.7 in my new OS and it also fails.\n\nIt basically fails with the:\nWarning: unable to close filehandle __ANONIO__ properly: Bad file descriptor at /usr/lib/git/git-send-email line 812.\nWarning: unable to close filehandle __ANONIO__ properly: Bad file descriptor at /usr/lib/git/git-send-email line 812.\nerror: git-send-email died of signal 11\n\nRelevant perl source:\n    802  sub ask {\n    803          my ($prompt, %arg) = @_;\n    804          my $valid_re = $arg{valid_re};\n    805          my $default = $arg{default};\n    806          my $confirm_only = $arg{confirm_only};\n    807          my $resp;\n    808          my $i = 0;\n    809          return defined $default ? $default : undef\n    810                  unless defined $term->IN and defined fileno($term->IN) and\n    811                         defined $term->OUT and defined fileno($term->OUT);\n    812          while ($i++ < 10) {\n    813                  $resp = $term->readline($prompt);\n    814                  if (!defined $resp) { # EOF\n    815                          print \"\\n\";\n    816                          return defined $default ? $default : undef;\n    817                  }\n    818                  if ($resp eq '' and defined $default) {\n    819                          return $default;\n    820                  }\n    821                  if (!defined $valid_re or $resp =~ /$valid_re/) {\n    822                          return $resp;\n    823                  }\n    824                  if ($confirm_only) {\n    825                          my $yesno = $term->readline(\n    826                                  # TRANSLATORS: please keep [y/N] as is.\n    827                                  sprintf(__(\"Are you sure you want to use <%s> [y/N]? \"), $resp));\n    828                          if (defined $yesno && $yesno =~ /y/i) {\n    829                                  return $resp;\n    830                          }\n    831                  }\n    832          }\n    833          return;\n    834  }\n\nIt seems that the \"return defined\" line causes warnings.\n\nI don't know perl but I tried patching /usr/lib/git/git-send-email with\nthe attached diff and got a following output:\n\nWarning: unable to close filehandle __ANONIO__ properly: Bad file descriptor at /usr/lib/git/git-send-email line 812.\nWarning: unable to close filehandle __ANONIO__ properly: Bad file descriptor at /usr/lib/git/git-send-email line 812.\nterm: Term::ReadLine=HASH(0x56138dd97c50)\n*** buffer overflow detected ***: /usr/bin/perl terminated\nerror: git-send-email died of signal 6\n\nIt makes me suspect that maybe readline() call causes a crash.\n\nDoes this report make sense? Is there anything else I can provide?\n\n--- /usr/lib/git/git-send-email.orig    2019-01-01 23:38:35.980954492 +0100\n+++ /usr/lib/git/git-send-email 2019-01-01 23:37:58.964956240 +0100\n@@ -810,7 +810,9 @@\n                 unless defined $term->IN and defined fileno($term->IN) and\n                        defined $term->OUT and defined fileno($term->OUT);\n         while ($i++ < 10) {\n+               print STDERR \"term: $term\\n\";\n                 $resp = $term->readline($prompt);\n+               print STDERR \"readline done\\n\";\n                 if (!defined $resp) { # EOF\n                         print \"\\n\";\n                         return defined $default ? $default : undef;\n"},{"id":"366079","messageId":"19f3c27ed059f5556131b3e0d2faafce@milecki.pl","threadId":"50143","inReplyTo":"1e4ac3d5-f6f5-bcce-2f09-0519934289b9@milecki.pl","subject":"Re: git-send-email warnings & process dying of signal 11","fromName":"Rafał Miłecki","fromEmail":"rafal@milecki.pl","sentAt":"2019-01-03T07:22:49Z","receivedAt":"2019-01-03T08:02:33Z","isPatch":false,"sender":{"key":"rafal@milecki.pl","avatar":null},"body":"On 2019-01-01 23:45, Rafał Miłecki wrote:\n> Hello & Happy New Year!\n> \n> I've recently switched from openSUSE 42.3 (perl 5.18.2 & git 2.13.7) to\n> the openSUSE Tumbleweed (perl 5.28.1 & git 2.20.1) and send-email\n> doesn't work for me anymore.\n> \n> FWIW it doesn't seem like a git regression. I've manually installed\n> 2.13.7 in my new OS and it also fails.\n> \n> It basically fails with the:\n> Warning: unable to close filehandle __ANONIO__ properly: Bad file\n> descriptor at /usr/lib/git/git-send-email line 812.\n> Warning: unable to close filehandle __ANONIO__ properly: Bad file\n> descriptor at /usr/lib/git/git-send-email line 812.\n> error: git-send-email died of signal 11\n\nIt appears to be a problem with (my?) perl. I've tried reporting it:\nhttps://rt.perl.org/Public/Bug/Display.html?id=133750\n"},{"id":"366131","messageId":"CAPUEspgC92S-oRbjzU79UDPR1BrrvLKPeNwTOrq1iYw-nadxKQ@mail.gmail.com","threadId":"50143","inReplyTo":"19f3c27ed059f5556131b3e0d2faafce@milecki.pl","subject":"Re: git-send-email warnings & process dying of signal 11","fromName":"Carlo Arenas","fromEmail":"carenas@gmail.com","sentAt":"2019-01-04T06:25:22Z","receivedAt":"2019-01-04T06:25:38Z","isPatch":false,"sender":{"key":"carenas@gmail.com","avatar":"https://avatars.githubusercontent.com/u/76036?v=4"},"body":"one important point to consider when tracking this bug is that perl is\nnot crashing, but is told to abort by some instrumentation (most\nlikely gcc's fortify) and as shown by :\n\n*** buffer overflow detected ***: /usr/bin/perl terminated\n\nCarlo\n"}]}