So... Here's a fun one. New customer, retrofitted ...
# lucee
q
So... Here's a fun one. New customer, retrofitted the old app to use Lucee 5.x in a container (official image). Passes all tests in dev, push it to test in ECS on AWS all tests pass, everything is fine. Build a new ECS cluster for prod, launch the exact same image and half the app fails. No rhyme or reason. It's like the extensions didn't load -- but they are baked into the container image. Since it's on ECS with Fargate, no access to the OS to poke around the logs (other than the ones I transported to /dev/stdout). Push new versions, restart the task/service, all the same thing. Futz around with it for nearly a day... Finally, say f-it, and build /another/ new cluster, same configs, everything comes up clean and all tests pass.... Ticket with AWS, and their only solution is to "add more RAM to the task."
d
While that response initially sounds dismissive, perhaps they're on to something. Maybe something is silently failing due to a lack of memory. It might be intermittent due to timing issues. If things are loading into memory too quickly, the JVM runs into memory issues and something is breaking. Also, I'm not sure that everything is actually baked into the Docker image. I believe it still "phones home" for some extensions (@Adam Cameron probably knows more about this), so if it was failing to communicate with the Lucee servers to grab any extensions, that could explain the issue too.
a
Oh god don't start me on that shitshow again (#tooLate). Yeah the std Lucee docker images aren't complete. They will phone home to install extensions when the container first comes up. And these are extensions for "built-in" CFML functionality, not third-party / after-market ones.
d
So if your docker image had issues connecting to the Lucee servers during the initial provisioning process, that could explain why things broke. For our build process, I'm using bash scripts to handle all the provisioning of the servers. Took a little time to work through, but it's been very reliable and easy for us to tweak and customize.
q
I pre-warm my images -- so everything is baked in.
But the memory thing seemed odd. Same image, different cluster worked just fine.
it /could/ be a thing. Just seemed off. I put 2GB of ram on the task. I usually run similar apps in 512MB RAM