On Tue, Nov 03, 2020 at 06:26:58PM +0000, Joseph Myers wrote: > On Mon, 2 Nov 2020, Jakub Jelinek via Gcc wrote: > > > It isn't that easy (because update_version_git checks the gcc trunk and > > so I had to insert a sh invocation in which I've tweaked it), but it worked, > > thanks. But something is really wrong with the hooks, as the gcc-cvs mail > > for the trunk daily bump wasn't sent again (r10, r9 and r8 changes did). > > I think any issue with an email not sent to gcc-cvs should be raised with > overseers or postmaster; they'll need to check logs at the exact time to > see if the email was ever submitted by the hooks to the MTA (and at least > part of the mail sending from the hooks is I think asynchronous so any > issues might not be reported back to the git commit command). If it was > submitted to the MTA, the problem is with the MTA or mailman. If it was > not submitted to the MTA, Joel might be able to advise on how to > instrument the process of email sending from the hooks to see where it > went wrong.
As I didn't hear from overseers yet and we've seen again multiple missing mails, after discussion with Martin Liska we've applied following hack to log the mail addresses and mail subjects that are being passed to sendmail.postfix, and a short while ago we got another case of missing mail. And it didn't show up in the log file either: gcc-...@gcc.gnu.org [gcc r11-4793] core: Rename DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN gcc-...@gcc.gnu.org [gcc r11-4794] Add PC as control register gcc-...@gcc.gnu.org [gcc r11-4795] Combine new calculated ranges with existing range. gcc-...@gcc.gnu.org [gcc r11-4796] rework PRE PHI translation cache gcc-...@gcc.gnu.org [gcc r11-4798] c++: Propagate attributes to clones in duplicate_decls [PR67453] As you can see, the r11-4797 commit is missing from that list and didn't make gcc-cvs either. But git log certainly shows that commit in between: commit 556ab5125912fa2233986eb19d6cd995cf7de1d2 Author: Iain Sandoe <i...@sandoe.co.uk> Date: Fri Jul 31 21:05:28 2020 +0100 Darwin: Darwin 20 is to be macOS 11 (Big Sur). So, I'm afraid it must fail or bypass this code path somewhere earlier in the hooks. diff --git a/hooks/post_receive.py b/hooks/post_receive.py index 3761c00..f368559 100644 --- a/hooks/post_receive.py +++ b/hooks/post_receive.py @@ -16,7 +16,7 @@ from init import init_all_globals from updates.emails import EmailQueue from updates.factory import new_update from utils import debug, warn - +import traceback def post_receive_one(ref_name, old_rev, new_rev, refs, submitter_email): """post-receive treatment for one reference. @@ -44,8 +44,12 @@ def post_receive_one(ref_name, old_rev, new_rev, refs, submitter_email): " old_rev = %s" % old_rev, " new_rev = %s" % new_rev) return - update.send_email_notifications() - + try: + update.send_email_notifications() + except Exception as e: + with open("/tmp/gcc-git-mail.log", "a") as f: + f.write(str(e) + '\n') + f.write(traceback.format_exc() + '\n') def post_receive(updated_refs, submitter_email): """Implement the post-receive hook for all given updated_refs. diff --git a/hooks/updates/emails.py b/hooks/updates/emails.py index 706124c..81f4beb 100644 --- a/hooks/updates/emails.py +++ b/hooks/updates/emails.py @@ -272,6 +272,9 @@ class Email(object): else: # pragma: no cover (do not want real emails during testing) sendmail(self.email_info.email_from, email_recipients, e_msg.as_string(), 'localhost') + with open("/tmp/gcc-git-mail.log", "a") as f: + f.write(e_msg['To'] + ' ' + e_msg['Subject'] + '\n') + f.close() if self.filer_cmd is not None: self.__call_filer_cmd() Jakub