[ome-users] tile-access problems with certain ndpi-files

MEYENHOFER Felix felix.meyenhofer at unifr.ch
Thu Feb 1 09:05:42 GMT 2018


Hi David

thanks for looking into this. Let me know if I can do something more. 

Best regards, 

Felix
> On 31 Jan 2018, at 17:53, David Gault (Staff) <d.gault at dundee.ac.uk> wrote:
> 
> 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> 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
>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
> 
> 
> The University of Dundee is a registered Scottish Charity, No: SC015096
> _______________________________________________
> ome-users mailing list
> ome-users at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users



More information about the ome-users mailing list