Failed to allocate message queue resource
Kim Greene
I came upon a strange situation with my test Domino server I have on an iSeries (ok, IBM i) server. When I configured this test server, I neglected to select the option to have the server automatically start when TCP/IP is started. The iSeries was IPLed over the weekend for some maintenance work. When I went to access my server today, I had to start it. Right after starting it, I thought, "I need to change the autostart parameter so this situation doesn't happen in the future".
I issued a CHGDOMSVR command right after starting the server, which lead me to a really strange situation. The server appeared as if it had started normally, however I was unable to access it. Upon examining the messages on the console, I saw this message:
"Warning! Failed to allocate message queue resource; post-crash/fault recovery shutdown system disabled."
The server was hung, so I dumped the server call stacks, for futher debug purposes (from option 16 from the WRKDOMSVR command). A consistent theme I saw in the call stacks for the threads that were hung was:
QDOMINO801 LIBNOTES OSSEM 0000000001 OSLockReadFRWSemWithInfo
QDOMINO801 LIBNOTES OSSEM 0000000032 OSLockReadFRWSemInt
QDOMINO801 LIBNOTES OSSEM 0000000001 WaitOnNativeSemaphoreCounted
QDOMINO801 LIBNOTES OSSEM 0000000025 WaitOnNativeSemaphore
QDOMINO801 LIBNOTES OSSEM 0000000017 WaitForThreadSem
QSYS QP0WPTHR QP0WCOND 0000000049 pthread_cond_wait
QSYS QP0WPINT QP0WSCOND 0000000086 wait__20Qp0wPthreadConditionFP7Qp0wTcbP9Qp0wMutex
After dumping the call stacks, I ended the Domino server, *CNTRLD, of course. This did nothing, the server was hung. I next did a *IMMED end on my test server. The interesting thing is that the status of the Domino server showed *ENDED, however when I used option 9 to look at the active server jobs, I saw that the Server job was stil active.
The console was now showing "- Child stopped by signal -1".
I tried ending the server with the *IMMED option, and received error LNT0922.
Message: Error 11 has occured trying to end the Domino sever, DOMTEST1, the error code is 11.
Cause: Error trying to end server DOMTEST1 immediately. Subsystem is QUSRNOTES/DOMTEST1.
Recovery: Save this job log and contact your service representative.
Well, that would be me!! At this point I had to do an ENDJOBABN to get the Server job ended. This did the trick.
Interestingly enough, when I tried to do a CHGDOMSVR command on the server with the server and the subsystem ended, I received a CPD680B message.
Message: Error detected in prompt override program command string.
Cause: An error was detected in the command string created in the prompt override program QNNINPOP in QDOMINO801. Processing of the command will not be affected by this error.
Recovery: After prompting is complete, see the previously listed messages in the job log to determine the cause of the error or see the CL topic in the Information Center book for more informaiton on prompt override programs.
Override what?!? I checked the job log and saw these messages:
Character 's' not valid following string ' 'Kim' '.
Character ' ' ' not valid following string 'Frankie '.
A matching apostrophe not found.
A matching parenthesis not found.
Command not valid.
What it was complaining about was the title of my server, which is "Kim's Test Domino Server on Frankie". Interestingly enough, the CFGDOMSVR command had no issue with me putting this in for the server's title when I configured it, however the CHGDOMSR command wouldn't accept it.
I was able to get the autostart parameter changed by qualifying the specific parameters I needed on the CHGDOMSVR command:
CHGDOMSVR SERVER(domtest1) AUTOSTART(*yes)
The moral of the story is never issue the CHGDOMSVR command against a Domino server when it's just starting. The normal function of the CHGDOMSVR command is that it will let you change this paramter while the server is active. The trick is that the server needs to be actually started when the command is issued. There is a glitch when the server is starting where this command gets really messed up.

