ColdFusion 2016 (I know) on linux… Error starting...
# adobe
d
ColdFusion 2016 (I know) on linux… Error starting pdfg service…. Thoughts??
Copy code
HTTP ERROR 500
Problem accessing /PDFgServlet/verify. Reason:

    Server Error
Caused by:
javax.servlet.ServletException: javax.servlet.ServletException: PDFgServlet@9ac5bab0==coldfusion.pdf.service.remote.PDFGServlet,jsp=null,order=-1,inst=false
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:503)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:745)
Caused by: javax.servlet.ServletException: PDFgServlet@9ac5bab0==coldfusion.pdf.service.remote.PDFGServlet,jsp=null,order=-1,inst=false
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:691)
	at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:519)
	at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:803)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:530)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	... 10 more
Caused by: java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
	at java.util.ArrayList$Itr.next(ArrayList.java:851)
	at coldfusion.pdf.service.CFPDFGServicePool.createPDFgServicesPool(CFPDFGServicePool.java:91)
	at coldfusion.pdf.service.CFPDFGServicePool.<init>(CFPDFGServicePool.java:53)
	at coldfusion.pdf.service.CFPDFGServicePool.getServicePoolInstance(CFPDFGServicePool.java:59)
	at coldfusion.pdf.service.CFPDFGServiceManager.initPDFServiceManager(CFPDFGServiceManager.java:77)
	at coldfusion.pdf.service.remote.PDFGServlet.init(PDFGServlet.java:228)
	at javax.servlet.GenericServlet.init(GenericServlet.java:244)
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:670)
	... 28 more
Caused by:
javax.servlet.ServletException: PDFgServlet@9ac5bab0==coldfusion.pdf.service.remote.PDFGServlet,jsp=null,order=-1,inst=false
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:691)
	at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:519)
	at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:803)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:530)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:503)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
	at java.util.ArrayList$Itr.next(ArrayList.java:851)
	at coldfusion.pdf.service.CFPDFGServicePool.createPDFgServicesPool(CFPDFGServicePool.java:91)
	at coldfusion.pdf.service.CFPDFGServicePool.<init>(CFPDFGServicePool.java:53)
	at coldfusion.pdf.service.CFPDFGServicePool.getServicePoolInstance(CFPDFGServicePool.java:59)
	at coldfusion.pdf.service.CFPDFGServiceManager.initPDFServiceManager(CFPDFGServiceManager.java:77)
	at coldfusion.pdf.service.remote.PDFGServlet.init(PDFGServlet.java:228)
	at javax.servlet.GenericServlet.init(GenericServlet.java:244)
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:670)
	... 28 more
Caused by:
java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
	at java.util.ArrayList$Itr.next(ArrayList.java:851)
	at coldfusion.pdf.service.CFPDFGServicePool.createPDFgServicesPool(CFPDFGServicePool.java:91)
	at coldfusion.pdf.service.CFPDFGServicePool.<init>(CFPDFGServicePool.java:53)
	at coldfusion.pdf.service.CFPDFGServicePool.getServicePoolInstance(CFPDFGServicePool.java:59)
	at coldfusion.pdf.service.CFPDFGServiceManager.initPDFServiceManager(CFPDFGServiceManager.java:77)
	at coldfusion.pdf.service.remote.PDFGServlet.init(PDFGServlet.java:228)
	at javax.servlet.GenericServlet.init(GenericServlet.java:244)
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:670)
	at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:519)
	at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:803)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:530)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:503)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:745)
Powered by Jetty:// 9.4.12.v20180830
m
Was it running ok before or is this new? Because I had this issue when I installed the mini-installer because it was missing some library or other. When I did the full install, it ran.
Granted, that was on Windows, and CF2021 but still, similar kinds of errors
d
Brand new.. just installed it
m
Wondering if it is a rights/auth issue. Is the engine running with the correct access permissions to hit /PDFgServelet/verify?
d
From the server log…
Copy code
214  [main] INFO  org.eclipse.jetty.server.Server  - jetty-9.4.12.v20180830; built: 2018-08-30T13:59:14.071Z; git: 27208684755d94a92186989f695db2d7b21ebc51; jvm 1.8.0_112-b15
241  [main] INFO  org.eclipse.jetty.deploy.providers.ScanningAppProvider  - Deployment monitor [file:///opt/coldfusionaddonservices/webapps/] at interval 1
399  [main] INFO  org.eclipse.jetty.server.session  - DefaultSessionIdManager workerName=node0
399  [main] INFO  org.eclipse.jetty.server.session  - No SessionScavenger set, using defaults
399  [main] INFO  org.eclipse.jetty.server.session  - node0 Scavenging every 600000ms
419  [main] INFO  org.eclipse.jetty.server.handler.ContextHandler  - Started o.e.j.w.WebAppContext@30a3107a{PDFgServlet,/PDFgServlet,file:///opt/coldfusionaddonservices/webapps/PDFgServlet/,AVAILABLE}{/PDFgServlet}
427  [main] INFO  org.eclipse.jetty.server.AbstractConnector  - Started ServerConnector@355d8700{HTTP/1.1,[http/1.1]}{10.150.160.151:8989}
428  [main] INFO  org.eclipse.jetty.server.AbstractConnector  - Started ServerConnector@7d3a22a9{HTTP/1.1,[http/1.1]}{127.0.0.1:8989}
428  [main] INFO  org.eclipse.jetty.server.Server  - Started @1047ms
54579 [qtp627185331-18] WARN  org.eclipse.jetty.server.handler.ContextHandler.PDFgServlet  - unavailable
java.util.ConcurrentModificationException
m
Yeah, I mean that's just saying the servlet isn't running. Weird. A bit out of my range if I'm being honest. @priyank_adobe I know this is out of support but just with a quick scan of the errors, anything come to mind?
b
It would appear to be related internal lack of synchronization on a shared array list. This error implies the PDF service pool is stored internally as a List one thread modified the list while another thread was looping over it. Race conditions like this are usually a little hard to reproduce, so if you get it every time you are either extremely lucky or unlucky 😆
Copy code
Caused by:
java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
	at java.util.ArrayList$Itr.next(ArrayList.java:851)
	at coldfusion.pdf.service.CFPDFGServicePool.createPDFgServicesPool(CFPDFGServicePool.java:91)
p
@dfgrumpy You can follow this article and install the packages. https://helpx.adobe.com/coldfusion/pdf-generation-in-coldfusion.html
e
Someone isnt using CFLOCK on a busy box.. Naughty Naughty. Seriously, lock your stack, cache your query and or invest in more hardware. Threshing like this happens when your BOX is trying to do too much with too little, be it you have a big PDF file, a crap ton of other actions happening or both. First, lock your pdf generation code, second cache your query, third refactor your pdf generation into smaller pages, and then combine all the pages into a single pdf after everything is generated. if you do not have the resources, such as you are budget constrained and have a 10K page PDF, look at third party pdf tools like pdftk which you can use a cfexecute to run.
d
@Evil Ware Not sure what you are referring to. You clearly didn’t read my comment at the beginning. The error outputs above are from trying to start the pdfg service.
e
well after a night of drinking I appologizefor that. On your linux box, which distro? I ask as SElinux on RHEL clones and ACL rules on UBUNTU will mess up the pdf start service. I would try disabling SElinux temporaily and starting the service, seeing if it starts, if it does then its a permissions config issue with selinux, if its ubuntu, you have to set the ACL for the install group, to the same group running the application interface. IE if you are using www-data for the user, then www-data usergroup needs permissions to run the /opt/COLDFUSION directory. You could also take a look at the var/log/messages or var/log/security and see what is happening with the service trying to start