[ome-users] tile-access problems with certain ndpi-files
David Gault (Staff)
d.gault at dundee.ac.uk
Wed Jan 31 16:53:36 GMT 2018
Hi Felix,
Thank you for providing the sample file and carrying out additional testing. I was able to reproduce the issue as reported using the latest Bio-Formats release and the file provided.
This looks like it may be the same as a previous issue which had been reported on GitHub - https://github.com/openmicroscopy/bioformats/issues/2544
I have updated the existing Trello card with the details of this report and I will try to spend some further time debugging the issue. You can follow the progress on the Trello card at https://trello.com/c/YMsm1dzp/64-ndpi-to-tiff-conversion-is-failling
With Thanks,
David Gault
On 30 Jan 2018, at 18:18, MEYENHOFER Felix <felix.meyenhofer at unifr.ch<mailto:felix.meyenhofer at unifr.ch>> wrote:
Hello
when accessing a certain magnification (one that requires to access the lowest pixels of the resolution pyramid), with the omero viewer, the server fails to generate and consequently cannot deliver the tiles.
OMERO.web.log contains the following error:
2018-01-30 17:47:58,730 WARNI [ omero.gateway] (proc.08522) debug():4507 InternalException on <class 'omeroweb.webclient.webclient_gateway.OmeroWebSafeCallWrapper'> to <6febc192-51e6-4901-a08d-1d6fdb91698bomero.api.RenderingEngine> renderCompressed((object #0 (::omero::romio::PlaneDef)
{
slice = 0
x = 0
y = 0
z = 0
t = 0
region = object #1 (::omero::romio::RegionDef)
{
x = 15360
y = 44032
width = 1024
height = 1024
}
stride = 0
}, <ServiceOptsDict: [...]
Traceback [...]
File "[...]OMERO.server/lib/python/omero_api_RenderingEngine_ice.py", line 905, in renderCompressed
return _M_omero.api.RenderingEngine._op_renderCompressed.invoke(self, ((_def, ), _ctx))
InternalException: exception ::omero::InternalException
{
serverStackTrace = ome.conditions.InternalException: Wrapped Exception: (java.lang.RuntimeException):
java.io.IOException
at omeis.providers.re.data.PlaneFactory.createPlane(PlaneFactory.java:223)
at omeis.providers.re.HSBStrategy.getWavelengthData(HSBStrategy.java:104)
at omeis.providers.re.HSBStrategy.makeRenderingTasks(HSBStrategy.java:284)
at omeis.providers.re.HSBStrategy.render(HSBStrategy.java:380)
at omeis.providers.re.HSBStrategy.renderAsPackedInt(HSBStrategy.java:344)
at omeis.providers.re.Renderer.renderAsPackedInt(Renderer.java:557)
at ome.services.RenderingBean.renderAsPackedInt(RenderingBean.java:522)
at ome.services.RenderingBean.renderCompressed(RenderingBean.java:552)
at sun.reflect.GeneratedMethodAccessor979.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy103.renderCompressed(Unknown Source)
at sun.reflect.GeneratedMethodAccessor979.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at ome.security.basic.BasicSecurityWiring.invoke(BasicSecurityWiring.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at ome.services.blitz.fire.AopContextInitializer.invoke(AopContextInitializer.java:43)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy103.renderCompressed(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1019.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at ome.services.blitz.util.IceMethodInvoker.invoke(IceMethodInvoker.java:172)
at ome.services.throttling.Callback.run(Callback.java:56)
at ome.services.throttling.InThreadThrottlingStrategy.callInvokerOnRawArgs(InThreadThrottlingStrategy.java:56)
at ome.services.blitz.impl.AbstractAmdServant.callInvokerOnRawArgs(AbstractAmdServant.java:140)
at ome.services.blitz.impl.RenderingEngineI.renderCompressed_async(RenderingEngineI.java:352)
at sun.reflect.GeneratedMethodAccessor1018.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at omero.cmd.CallContext.invoke(CallContext.java:78)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy104.renderCompressed_async(Unknown Source)
at omero.api._RenderingEngineTie.renderCompressed_async(_RenderingEngineTie.java:298)
at omero.api._RenderingEngineDisp.___renderCompressed(_RenderingEngineDisp.java:998)
at omero.api._RenderingEngineDisp.__dispatch(_RenderingEngineDisp.java:2363)
at IceInternal.Incoming.invoke(Incoming.java:221)
at Ice.ConnectionI.invokeAll(ConnectionI.java:2536)
at Ice.ConnectionI.dispatch(ConnectionI.java:1145)
at Ice.ConnectionI.message(ConnectionI.java:1056)
at IceInternal.ThreadPool.run(ThreadPool.java:395)
at IceInternal.ThreadPool.access$300(ThreadPool.java:12)
at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:832)
at java.lang.Thread.run(Thread.java:748)
serverExceptionClass = ome.conditions.InternalException
message = Wrapped Exception: (java.lang.RuntimeException):
java.io.IOException
}
So I took the file [1] and checked how the bio-formats library deals with it using fiji. When trying to open series-1 I got:
"java.lang.IllegalArgumentException: Array size too large: 35304 x 86184 x 1".
Nothing new here [2]. So I try cropping on opening (which seem how RenderingEngine is accessing the data anyway) using a bounding box: 0,0,1000,1000. This fails telling me via dialog: "sorry, there was an I/O problem during import. switching scijava log level DEBUG I get:
java.io.IOException
at loci.formats.services.JPEGTurboServiceImpl.getTile(JPEGTurboServiceImpl.java:329)
at loci.formats.services.JPEGTurboServiceImpl.getTile(JPEGTurboServiceImpl.java:235)
at loci.formats.in.NDPIReader.openBytes(NDPIReader.java:191)
at loci.formats.ChannelFiller.openBytes(ChannelFiller.java:156)
at loci.formats.ChannelFiller.openBytes(ChannelFiller.java:148)
at loci.formats.ChannelSeparator.openBytes(ChannelSeparator.java:198)
at loci.formats.ChannelSeparator.openBytes(ChannelSeparator.java:159)
at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:334)
at loci.formats.DimensionSwapper.openBytes(DimensionSwapper.java:233)
at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:334)
at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:334)
at loci.plugins.util.ImageProcessorReader.openProcessors(ImageProcessorReader.java:186)
at loci.plugins.in.ImagePlusReader.readProcessors(ImagePlusReader.java:422)
at loci.plugins.in.ImagePlusReader.readPlanes(ImagePlusReader.java:387)
at loci.plugins.in.ImagePlusReader.readImage(ImagePlusReader.java:282)
at loci.plugins.in.ImagePlusReader.readImages(ImagePlusReader.java:243)
at loci.plugins.in.ImagePlusReader.readImages(ImagePlusReader.java:221)
at loci.plugins.in.ImagePlusReader.openImagePlus(ImagePlusReader.java:116)
at loci.plugins.in.Importer.readPixels(Importer.java:149)
at loci.plugins.in.Importer.run(Importer.java:86)
at loci.plugins.LociImporter.run(LociImporter.java:78)
at ij.IJ.runUserPlugIn(IJ.java:221)
at ij.IJ.runPlugIn(IJ.java:185)
at ij.Executer.runCommand(Executer.java:137)
at ij.Executer.run(Executer.java:66)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NegativeArraySizeException
at org.libjpegturbo.turbojpeg.TJDecompressor.decompress(TJDecompressor.java:338)
at loci.formats.services.JPEGTurboServiceImpl.getTile(JPEGTurboServiceImpl.java:322)
... 25 more
So before drilling deeper. Does anyone already have a guess about what this might be?
[1]https://drive.switch.ch/index.php/s/xYo5nzkEflj04eT
[2]http://lists.openmicroscopy.org.uk/pipermail/ome-users/2015-March/005142.html
Best regards,
Felix
_______________________________________________
ome-users mailing list
ome-users at lists.openmicroscopy.org.uk<mailto:ome-users at lists.openmicroscopy.org.uk>
http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
The University of Dundee is a registered Scottish Charity, No: SC015096
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openmicroscopy.org.uk/pipermail/ome-users/attachments/20180131/2670ec2a/attachment.html>
More information about the ome-users
mailing list