|
increasing this to High Priority, James still wont shutdown while (at least) a
POP3 connection exists, even if it is inactive. I suspect this is Avalon related, as connection services are provided by avalon. Its a Pain, and will be a bigger pain in a high load situation The POP3 (and the other protocol services) shutdown problems are not quite the
same as the SpoolManager. Those problems are due to some issues in the ConnectionManager being used. ConnectionManager changes in my proposal later today (ran a little bit late with this one) should resolve that issue once and for all. The SpoolManager code now implements dispose(), and calls destroy() for each of the mailets. But it has a more serious problem than can be disastrous. Specifically, there is a potential race condition in the SpoolManager between the worker threads that actually process the mail and the action of the dispose () method, which destroys the mailets. That's bad. Not sure how critical this issue is, as it only affects systems using mailets with non-trivial destroy() methods. And it only manifests itself on shutdown and, even then, only some of the time. "there is a potential race condition in the SpoolManager between
the worker threads that actually process the mail and the action of the dispose() method, which destroys the mailets" JamesSpoolManager.dispose() now tells the spooler threads to terminate and then waits (up to 1 minute) for them to complete. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
must be killed.