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

MEYENHOFER Felix felix.meyenhofer at unifr.ch
Tue Jan 30 18:18:05 GMT 2018


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 


More information about the ome-users mailing list