No daily E-Mail-Notifications received after updating the XWikiPreferences-Object

Hello Vincent @vmassol, hello Clemens @ClemensRobbenhaar,

sorry for the late reply, I was in vacation :smiley:

Of course, I did restart the XWiki, even the whole Linux-Server.

I have read a bit in the code, and there are two threads that send the mail in the background; both should be running for the mails to be send.

a) can you check the log for β€œERROR” messages? If they come somewhere from the org.xwiki.mail.internal, either from the AbstractMailRunnable, PrepareMailRunnable or SendMailRunnable they should contain a stack trace telling you why these threads died.

b) on a test machine you can set the org.xwiki.mail.internal and also the org.xwiki.shutdown to DEBUG for more diagnostic output. This can be set in the WEB-INF/classes/logback.xml. The shutdown should already have an entry there where you just replace the level="info" by level="debug", for the other add a line

   <logger name="org.xwiki.mail.internal" level="debug"/>

and restart the test server.
Maybe shut the test server down immediately after the startup to see if you get messages like "Mail Prepare Thread has been stopped" and "Mail Sender Thread has been stopped" in the log, and before that some Mail Prepare Thread was forcefully stopped and Mail Sender Thread was forcefully stopped. If you then can trigger the problem, these messages might be missing.

c) You can try to get a stack trace from the server and looking if there are threads named Mail Prepare Thread and Mail Sender Thread. If they are missing, you need to restart the server as mail sending is broken. As in a) there should be an error message in the log.

d) Finally, if the issue appears and there are no ERROR messages in the log before (it might be quite some time before you notice it), then as the last option it is possible that the threads did not stop due to a regular Exception but an unexpected Error. As far as I can see this is not logged. It might be some class loader foo, but I am just guessing. In that case I am running out of good advice, it seems one has to patch the source code to log these Errors, too.

If you can reliably reproduce the issue on a test server, and end up at option d) (i.e. threads go missing and nothing in the log), then using a patched code on the test server might be an option, however.