ManyuBishnoi
ManyuBishnoi

Reputation: 349

Gerrit not sending emails

I have set up a Gerrit server and trying to make it send emails (for all events). But for some reason Gerrit doesn't send any emails. error_logs shows absolutely no data, that means it is not even trying to send emails.

Here is relevant part of my project.config for All-Projects:

[notify "demo"]
    email = [email protected]
    type = all  

Here is my gerrit.config:

[gerrit]  
    basePath = git  
    canonicalWebUrl = http://hostname:8443/  
[database]  
    type = h2  
    database = db/ReviewDB  
    connectionPool = true  
    poolLimit = 128  
[index]  
    type = LUCENE  
[auth]  
    type = LDAP  
[ldap]  
    poolDebug = all  
    server = ldap://nod.company.com  
    accountBase = cn=users,dc=company,dc=com  
    accountEmailAddress = mail  
    referral = follow  
[sendemail]  
    smtpServer = relay.company.com  
     smtpServerPort = 25  
     smtpUser = my_username  
[container]  
     user = gerrit2  
     javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre  
     heapLimit = 2g  
[sshd]  
     listenAddress = *:29419  
     maxConnectionPerUser = 256  
[automerge]  
     botEmail = [email protected]  
[download]  
     scheme = ssh  
[httpd]  
     listenUrl = http://*:8443/  
     maxThreads = 128  
[cache]  
         directory = cache  
[gitweb]  
     cgi = /usr/share/gitweb/gitweb.cgi 

Environment: Ubuntu 14.04 and Gerrit 2.11.6.

I have tried to send emails from command line on this server and that works just fine.

All of my individual projects on Gerrit inherit access rights from All-Projects. I even tried adding the email section to each individual project but that didn't help either.

My colleague, who has his own Gerrit server that is able to send emails, looked into my issue and couldn't figure out what's wrong with my server. We both have same Linux version, Gerrit version, gerrit.config and project.config.

Upvotes: 3

Views: 6423

Answers (3)

RobertL
RobertL

Reputation: 76

I had this problem after a recent Gerrit update (from 2.15 -> 3.2).

I checked the postfix logs in /var/log/maillog and they clearly showed that after the machine was rebooted following the Gerrit update no more mails arrived here.

Looking further into <gerrit-path>/logs/error_log (I had to look in rollated files) showed me that there seemed to be a problem with our mail template and also gave me the path to the offending file.

We previously used a custom mail template from https://gist.github.com/orgads/d8a61a1c10efeb7a4fafbcb6374167c3, the format of which seems to no longer be valid. I replaced this with the .soy.example file provided by Gerrit which fixed the issue.

Upvotes: 1

solstice333
solstice333

Reputation: 3659

For me, since I was trying to test emails by getting them to send to my own email, I had to go to settings (Gerrit 2.15.17 BTW), then preferences, under email notifications, select "every comment" in the dropdown menu.

Upvotes: 0

ManyuBishnoi
ManyuBishnoi

Reputation: 349

Ok, found the issues and fixed them. I had two issues, sharing for user reference.

  1. I installed sendmail utility when logged in as a user other than smtpUser account mentioned in gerrit.config. After that I forgot to add the sendmail utility to /opt and hence the smtpUser's account from gerrit.config was not able to access the sendmail utility. Once I shared the sendmail utility with all user accounts, gerrit started sending emails.

    To summarize, make sure the user account mentioned under smtpUser has sendmail available to it. Thanks everyone for your time.

  2. gerrit wont send the email ONLY to the user that is also the smtpUser in gerrit.config. I was testing it by sending emails to only me, and hence it didnt work. I had to change to project config to add an email address other than my own email account.
    I dont know if this is a gerrit bug or a gerrit feature. If a feature then not sure what is the use case for this !!

I hope this info helps other guys out there.

Upvotes: 2

Related Questions