V0.36.6: Pulse and alert is sent twice - once in German, once in English

Hi,
since we updated to v0.36.6 we get every pulse and every altert twice, once in english and once in German.

Any idea what happened? Thanks for any help, it starts to annoy my users :smiley:

Hi @EvaS

Please post “Diagnostic Info” from Admin > Troubleshooting.
How many instances are you running?
How many lines do you see in the log, when it’s sending the alerts? Admin > Troubleshooting > Logs.

I cannot reproduce this, but I can see that the localization setting isn’t being respected, which indicates it is getting the language used for emails from the user.language value from JVM (which comes from the OS, unless defined). Still figuring out what’s going wrong here, and will open an issue on that.

Hi @flamber thanks for the quick reply!

The diagnostics info:

{
  "browser-info": {
    "language": "en-US",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0",
    "vendor": ""
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.8+10",
    "java.vendor": "AdoptOpenJDK",
    "java.vendor.url": "https://adoptopenjdk.net/",
    "java.version": "11.0.8",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.8+10",
    "os.name": "Linux",
    "os.version": "4.19.112+",
    "user.language": "en",
    "user.timezone": "Europe/Berlin"
  },
  "metabase-info": {
    "databases": [
      "mysql",
      "googleanalytics",
      "postgres"
    ],
    "hosting-env": "unknown",
    "application-database": "mysql",
    "application-database-details": {
      "database": {
        "name": "MySQL",
        "version": "5.7.25-google-log"
      },
      "jdbc-driver": {
        "name": "MariaDB Connector/J",
        "version": "2.6.2"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2020-09-15",
      "tag": "v0.36.6",
      "branch": "release-0.36.x",
      "hash": "cb258fb"
    },
    "settings": {
      "report-timezone": "Europe/Berlin"
    }
  }
}

about the lines in the logs:
I think it is only one line:

Although for this I created a new pulse and received it only once. Maybe the doubling only occours for old pulses that were created before the version update? I can have a look tomorrow morning (the old pulses and alerts are created at 7 am in the morning and my logs don´t go back that far …)

@EvaS Interesting. Yeah, nothing sticks out to me.

Just a couple of questions, which will help me debugging this:

  1. Which version did you upgrade from?
  2. Are you running multiple instance (horizontal scaling, load balancing)?
  3. What have you configured for Admin > Settings > Localization > Language?
  4. And do you have a different user language set :gear: > Account Settings > Language?

We might have to enable more debug logging, since that should tell us a lot more information about the card being executed and the actual email-sending, but let’s see about that tomorrow.

Hi @flamber, sorry for the late reply, my child was sick yesterday. I just checked the log files for tomorrow morning (I again received an alarm twice at 7 in the morning), but around that time there is nothing in the log files:


its maybe not ideal to send an alarm in the middle of the daily update and sync process, but it works, although I can´t see it in the logs.

As far as I remember we updated from 0.31
I think we run only one instance, but I am checking right now …
The default language is german and my user language is set to be the default language.

Thanks for your help, cheers, Eva

ok just got confirmation, we have indeed one instance.
Thanks, Eva

@EvaS Sorry, was a bit occupied with other things.

I have not been able to reproduce. I have tried starting with same language and timezones as you.
Please also check the source of the emails, which usually has information about where and when it originated from.

Can you start with the following extra debug options?
JAR - example:

java -Dlog4j.configuration="https://log4j.us/templates/metabase?trace=metabase.pulse,metabase.email,metabase.task.send-pulses" -jar metabase.jar

Docker - add this environmental variable to the docker run ... command:

... -e JAVA_OPTS="-Dlog4j.configuration=https://log4j.us/templates/metabase?trace=metabase.pulse,metabase.email,metabase.task.send-pulses" ...