When Imapd Is Maxed Out Of Maxthread Processes, Does The Main Thread Still Check For Events On LISTEN Socket?
(Doc ID 2735531.1)
Last updated on MARCH 29, 2022
Applies to:Oracle Communications Messaging Server - Version 8.1.0 and later
Information in this document applies to any platform.
The following parameters are set:
Those imapd processes with 52 LWPs have reached maxthreads (the difference between 52 and 45 is the overhead, like JMQ and ENS threads).
Recently, when there were over 400 connections from a single user all hung waiting for the lock held by the reconstruct on that user's INBOX, *ALL* the imapd processes were at maxthreads.
Running "imsconnutil -k -u" on that user resulted in the connections going from "ACTIVE" to "close pending" (or something similar to that) because they can't close until the thread waiting for the lock finally acquires the lock (but it did not free up the threads).
During this time, attempts to connect to port 143 would hang. If tried repeatedly, a banner might eventually appear.
It is believed that this is because the OS is still sending connections to the processes which are at maxthreads.
A process in that state can't actually process the connection because there are no free threads and it cannot create any more.
When imapd gets to maxthreads and cannot start any more, shouldn't it stop accepting connections, so new connections would be sent to processes that can handle them?
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document