We’re gradually migrating our SaaS from Railo (4.5) to Lucee (currently 5.3.3.62 running on Debian 10 with Java 11 and Tomcat 9).
On the remaining bits which are still running on Railo we have a cfm page that is run (called from a Java service via HTTP) regularly and does some behind-time batch processing. It uses cfthread to run the work on a separate thread and then polls the thread status every 500ms waiting for thread to finish and writes to output to keep the AJP connection between Apache and Tomcat alive (timeout is 5 mins but the batch job can take longer than that).
This all works nicely except that every now and again (say once every day or 2), the cfthread status that we poll is set to “WAITING” which is unexpected because the code run by the thread does not use cfthread itself (docs say “WAITING” means cfthread action=“join”). When we’ve looked at the stack trace of the thread at the time it’s returned “WAITING” we don’t see the same path each time so it’s not one particular thing that appears to cause this.
So the Adobe CFML docs say “WAITING” is the the status of a thread that has itself issued cfthread action=“join”. Is that still the case with Lucee? Is it possible for a thread to have status “WAITING” for any other reason?
We can update our code to handle the “WAITING” status (and also terminate the thread if we find it’s continuously waiting for too long) but just want to check if this is possibly a Railo bug that we won’t need to worry about on Lucee.
Thanks,
Gary.