Just as documentation and FYI to the community. I ran into a number of
issues getting Lucee to install on DigitalOcean VMs (Specifically, CentOS
7.2 x64) automatically during droplet creation.
The problems I was seeing:
Lucee installer hanging while trying to setup mod_proxy/mod_cfml
Lucee taking a long time to boot, stuck on messages like
“org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned
for TLDs yet contained no TLDs…” though I’ve seen it stop elsewhere.
After much head banging, I think the issue is due to the use of /dev/random
which is a blocking system call. On DigitalOcean droplets at least,
/dev/random takes a long time to get seeded, and therefore Lucee can
unexpectedly hang during install or startup. This issue may happen on any
VM which does not generate a lot of entropy naturally, not just
There are multiple workarounds I tried:
*1) Redirecting /dev/random to /dev/urandom: *
This ‘worked’ but it requires a reboot of the server (I could not
successfully apply the rule without a reboot, which I do not want to have
Telling the JVM to use /dev/urandom by adding the following to
/opt/lucee/tomcat/bin/setenv.sh: " -Djava.security.egd=file:/dev/./urandom"
CATALINA_OPTS="-Xms256m -Xmx512m -javaagent:lib/lucee-inst.jar
Although this only fixed boot times, it did not fix the installer hang.
3) (My Preferred Solution) Install HAVEGED
I installed the haveged library to generate entropy for /dev/random via the
CPU, as documented here:
Specifically, these commands for my installation:
su -c ‘rpm -Uvh
yum -y install haveged
service haveged start
#start haveged on boot
chkconfig haveged on