Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.
For more information and upcoming events around #dominoforever, please visit our Destination Domino Page
Why is it so complicated to kill a single hanging http thread?
Or the http task?
If you kill the http task that is waiting for something until the end of times, you kill the whole server.
Unfortenately, this topic isn't that easy as the HTTP worker thread that is going wild (e.g. in an infinite loop) could hold resources/locks even if you are not aware of them.
See these articles for a discussion:
https://www.baeldung.com/java-thread-stop
https://docs.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html
But what I would like to see is that Domino is able to kill the HTTP task after a configured timeout value when shutting down/restarting the whole server or the HTTP task.
Currently it keeps hanging in an infinitely loop posting messages to the server console that the HTTP task is still executing code and you need to call the admin to kill all server processes. That is a pretty bad developer experience and can take much time to have the server running again.
Karsten Lehmann, Mindoo
It seems that Thomas Hampel has never been faced the real production Domino XPages environment as a developer and maintainer, that's where his clever 'fix-n-go' advice comes from.
The root cause could vary wildly, it could be a bug in third-party software (including Domino), or developer – written code, and may be in production when it happens. Regardless of the root cause, there at times need to kill the thread. Today, the only way to kill the thread is to kill HTTP entirely which is bad, especially in production environments.
In addition: We need a way to kill the http task from the Domino console when a worker task has gone wild. Currently the only way to handle that situation seems to be killing the http task on the OS level -- very bad.
Wouldn't it be better to fix the root cause rather than just killing a worker thread ?