[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