#7364 src.fedoraproject.org does not send some commit notifications
Closed: Fixed 3 years ago by pingou. Opened 5 years ago by fweimer.

According to the web UI, I'm subscribed to Watch Issues, PRs, and Commits on these projects:

But I don't receive any commit notifications for libxcrypt and binutils. I do receive notifications for glibc.


Metadata Update from @bowlofeggs:
- Issue priority set to: Waiting on Assignee (was: Needs Review)
- Issue tagged with: src.fp.o

5 years ago

This is more likely an FMN issue as FMN is meant to look at this information to determine if someone wants to receive the notifications.
And you are clearly marked as watching in the API:

One case notifications are not sent is when commits are pushed via HTTPS. In this case post-receive-fedmsg hook crashes.

remote: Emitting a message to the fedmsg bus.
remote: Traceback (most recent call last):
remote:   File "/usr/share/git-core/post-receive-fedmsg", line 138, in <module>
remote:     commits = map(_build_commit, revs)
remote:   File "/usr/share/git-core/post-receive-fedmsg", line 135, in _build_commit
remote:     agent=getlogin(),
remote:   File "/usr/share/git-core/post-receive-fedmsg", line 88, in getlogin
remote:     return os.environ['USER']
remote:   File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
remote:     raise KeyError(key)
remote: KeyError: 'USER'

@puiterwijk can we set the environment varible USER when pushing via https to fix @mizdebsk 's traceback?

@jcline or @abompard would you be able to look at this? It's kinda important that watchcommits works...

As far as I can see @fweimer has a rule that should be matching here. Can we at least confirm that the email was sent?

This is my understanding of what the patch would be on pagure:

diff --git a/pagure/ui/clone.py b/pagure/ui/clone.py
index c0a8f9a32..0bcaf6243 100644
--- a/pagure/ui/clone.py       
+++ b/pagure/ui/clone.py       
@@ -95,6 +95,7 @@ def proxy_raw_git():
         # These are the vars git-http-backend needs
         "PATH_INFO": flask.request.path,
         "REMOTE_USER": remote_user,
+        "USER": remote_user,
         "REMOTE_ADDR": flask.request.remote_addr,
         "CONTENT_TYPE": flask.request.content_type,
         "QUERY_STRING": flask.request.query_string,

Well, the ideal fix would be to port https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/git/hooks/files/post-receive-fedmsg over to the "new" hook BaseRunner class in Pagure (https://pagure.io/pagure/blob/master/f/pagure/hooks/__init__.py#_60).
We've even put a warning in the code that the legacy hook system will stop working in the future: https://pagure.io/pagure/blob/master/f/pagure/hooks/__init__.py#_447.

But that patch would probably work as well, sure.

Metadata Update from @pingou:
- Issue assigned to pingou

3 years ago

I have hotfixed stg to test and I can confirm that https://pagure.io/pagure/pull-request/4855 fixes the traceback when pushing over http

Login to comment on this ticket.

Metadata
Related Pull Requests
  • #4855 Merged 3 years ago