Islandora-Devops / isle-buildkit

Provides a number of Docker images which can be used to build an Islandora site. See also https://github.com/Islandora-Devops/isle-dc
https://www.islandora.ca/
MIT License
13 stars 23 forks source link

Processing JP2s errors in FITS because of jpylyzer #352

Open noahwsmith opened 1 day ago

noahwsmith commented 1 day ago

As an example

fits-1  | 2024-10-25 17:41:23,675 ERROR - (Fits:684) - Tool error processing file: pitt_31735056286804-0267.jp2.jp2
fits-1  | null
fits-1  | java.lang.reflect.InvocationTargetException: null
fits-1  |   at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
fits-1  |   at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
fits-1  |   at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
fits-1  |   at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
fits-1  |   at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
fits-1  |   at edu.harvard.hul.ois.fits.tools.ToolBelt.createToolClassInstance(ToolBelt.java:174) ~[fits-1.6.0.jar:1.6.0]
fits-1  |   at edu.harvard.hul.ois.fits.tools.ToolBelt.init(ToolBelt.java:127) ~[fits-1.6.0.jar:1.6.0]
fits-1  |   at edu.harvard.hul.ois.fits.tools.ToolBelt.<init>(ToolBelt.java:56) ~[fits-1.6.0.jar:1.6.0]
fits-1  |   at edu.harvard.hul.ois.fits.Fits.<init>(Fits.java:231) ~[fits-1.6.0.jar:1.6.0]
fits-1  |   at edu.harvard.hul.ois.fits.Fits.<init>(Fits.java:129) ~[fits-1.6.0.jar:1.6.0]
fits-1  |   at edu.harvard.hul.ois.fits.service.pool.FitsWrapper.<init>(FitsWrapper.java:46) ~[classes/:2.1.0]
fits-1  |   at edu.harvard.hul.ois.fits.service.pool.FitsWrapperFactory.create(FitsWrapperFactory.java:26) ~[classes/:2.1.0]
fits-1  |   at edu.harvard.hul.ois.fits.service.pool.FitsWrapperFactory.create(FitsWrapperFactory.java:19) ~[classes/:2.1.0]
fits-1  |   at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:70) ~[commons-pool2-2.11.1.jar:2.11.1]
fits-1  |   at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571) ~[commons-pool2-2.11.1.jar:2.11.1]
fits-1  |   at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298) ~[commons-pool2-2.11.1.jar:2.11.1]
fits-1  |   at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223) ~[commons-pool2-2.11.1.jar:2.11.1]
fits-1  |   at edu.harvard.hul.ois.fits.service.servlets.FitsServlet.sendFitsExamineResponse(FitsServlet.java:366) ~[classes/:2.1.0]
fits-1  |   at edu.harvard.hul.ois.fits.service.servlets.FitsServlet.doPost(FitsServlet.java:300) ~[classes/:2.1.0]
fits-1  |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) ~[servlet-api.jar:4.0.FR]
fits-1  |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[servlet-api.jar:4.0.FR]
fits-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-websocket.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:765) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[catalina.jar:9.0.84]
fits-1  |   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-coyote.jar:9.0.84]
fits-1  |   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-coyote.jar:9.0.84]
fits-1  |   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) ~[tomcat-coyote.jar:9.0.84]
fits-1  |   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794) ~[tomcat-coyote.jar:9.0.84]
fits-1  |   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-coyote.jar:9.0.84]
fits-1  |   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-util.jar:9.0.84]
fits-1  |   at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-util.jar:9.0.84]
fits-1  |   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.84]
fits-1  |   at java.lang.Thread.run(Thread.java:840) ~[?:?]
fits-1  | Caused by: edu.harvard.hul.ois.fits.exceptions.FitsToolException: jpylyzer cannot be used on this system
fits-1  |   at edu.harvard.hul.ois.fits.tools.jpylyzer.Jpylyzer.<init>(Jpylyzer.java:77) ~[fits-1.6.0.jar:1.6.0]
fits-1  |   ... 44 more

relevant error:

Caused by: edu.harvard.hul.ois.fits.exceptions.FitsToolException: jpylyzer cannot be used on this system

Which seems to correspond to https://github.com/harvard-lts/fits/issues/389, which despite the title of the issue seems boil down to the fact that our container needs to have a working python, with that library, and Fits needs to be able to run it.

nigelgbanks commented 21 hours ago

@noahwsmith should be sorted by this pull https://github.com/Islandora-Devops/isle-buildkit/pull/353