Notes/Domino Fix List
SPR # MGAN5WWMZQFixed in 6.0.5 release



Product Area: Server Technical Area: Server Administration Platform: Win NT

SPR# MGAN5WWMZQ - Corrected error handling for the main router thread, so that we don't leave the function without freeing the semaphore. This was causing another thread in the router to hang on the semaphore.

Technote Number: 1174411

Problem:
This issue was reported to Quality Engineering and has been addressed in Domino
6.0.5 and 6.5.4.

Excerpt from the Lotus Notes and Domino Release 6.0.5 / 6.5.4 MR fix list
(available at http://www.ibm.com/developerworks/lotus):
Server Administration
SPR# MGAN5WWMZQ - Corrected error handling for the main router thread, so that
we don't leave the function without freeing the semaphore. This was causing
another thread in the router to hang on the semaphore.

A possible workaround would be to enable the server to route journalled
messages to a mail-in database, also known as "Remote Journaling".
It has also been determined that the problem occurs only when the server in
question is doing mail transferring. If the Domino server is configured only
to deliver mail messages, the problem does not occur.

Supporting Information:
The problem is caused by incorrect logic around the use of a semaphore that
causes a thread to hang itself. Specifically, the main router thread was
waiting on a semaphore owned by the Journaling thread. The Journaling thread
showed that it, too, was waiting on the semaphore. In other words, the
Journaling thread was waiting on a sem that it already owned.

Stack showing main router thread waiting on semaphore:

NTDLL! 77f6839b()
KERNEL32! 77f04f49()
OSLockSemInt(SEM * 0x03800096, int 0x00000001) line 2843
OSLockSem(SEM * 0x03800096) line 2659
JournallingConfigUpdate(int * 0x0012da44, ROUTERCTX * 0x037ff690, int
0x00000000) line 2491
RouterCheckJournallingStatus(void * * 0x0045aa80 _hMessageFile, unsigned short
0x0003, MAILQUEUE * 0x0012f3f4, tagTIMEDATE * 0x0012f0d0, int 0x00000000) line
2877 + 19 bytes
AddInMain(void * 0x00400000, int 0x00000001, char * * 0x00cf17b4) line 1268 +
36 bytes
NROUTER! NotesMain@8 line 79
NROUTER! main line 244 + 13 bytes
NROUTER! main line 117 + 19 bytes
NROUTER! mainCRTStartup + 197 bytes
KERNEL32! 77f1bbb5()
More >



Last Modified on 12/08/2013

Go back