Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #4989 (closed)

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

BUG:Concurrency on pixelBuffer

Reported by: atarkowska Owned by: cxallan
Priority: minor Milestone: OMERO-Beta4.3
Component: Bio-Formats Version: n.a.
Keywords: n.a. Cc: mlinkert
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2011-04-21 (10)

Description (last modified by cxallan)

2011-04-18 13:43:45,223 WARN  [        ome.services.util.ServiceHandler] (l.Server-0) Unknown exception thrown.

java.lang.RuntimeException: File is neither valid JP2 file nor valid JPEG 2000 codestream
        at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.initializeRead(J2KReadState.java:697)
        at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.<init>(J2KReadState.java:209)
        at com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageReader.readRaster(J2KImageReader.java:519)
        at loci.formats.services.JAIIIOServiceImpl.readRaster(JAIIIOServiceImpl.java:171)
        at loci.formats.codec.JPEG2000Codec.decompress(JPEG2000Codec.java:214)
        at loci.formats.tiff.TiffCompression.decompress(TiffCompression.java:237)
        at loci.formats.tiff.TiffParser.getTile(TiffParser.java:612)
        at loci.formats.tiff.TiffParser.getSamples(TiffParser.java:778)
        at loci.formats.in.MinimalTiffReader.openBytes(MinimalTiffReader.java:268)
        at ome.io.bioformats.BfPixelsWrapper.getTile(BfPixelsWrapper.java:371)
        at ome.io.bioformats.BfPixelBuffer.getTileDirect(BfPixelBuffer.java:409)
        at ome.io.bioformats.BfPixelBuffer.getTile(BfPixelBuffer.java:397)
        at ome.io.bioformats.BfPyramidPixelBuffer.getTile(BfPyramidPixelBuffer.java:614)
        at omeis.providers.re.data.PlaneFactory.createPlane(PlaneFactory.java:216)
        at omeis.providers.re.HSBStrategy.getWavelengthData(HSBStrategy.java:105)
        at omeis.providers.re.HSBStrategy.makeRenderingTasks(HSBStrategy.java:216)
        at omeis.providers.re.HSBStrategy.render(HSBStrategy.java:311)
        at omeis.providers.re.HSBStrategy.renderAsPackedInt(HSBStrategy.java:275)
        at omeis.providers.re.Renderer.renderAsPackedInt(Renderer.java:510)
        at ome.services.RenderingBean.renderAsPackedInt(RenderingBean.java:466)
        at ome.services.RenderingBean.renderCompressed(RenderingBean.java:515)
        at sun.reflect.GeneratedMethodAccessor718.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)

Change History (7)

comment:1 Changed 8 years ago by Chris Allan <callan@…>

(In [af17df0bdb475af44f9a0016da22ba564a7716d9/ome.git] on branch develop) Attempt to address concurrency issues with pyramid pixel buffer. (See #4989)

comment:2 Changed 8 years ago by cxallan

  • Status changed from new to accepted

comment:3 Changed 8 years ago by cxallan

  • Cc mlinkert-x added
  • Component changed from General to Bio-Formats
  • Description modified (diff)
  • Remaining Time changed from 0.25 to 0.5

comment:4 Changed 8 years ago by Chris Allan <callan@…>

(In [ed2d3ac7e6de527c94ef765e254dcd0147e16e64/bioformats.git]) JPEG 2000 decode thread safety. (See #4989)

Further review may be needed but for now we will need to instantiate a
new J2KImageReader for each decode. With the global JAIIOService, the
current implementation leads to race conditions within the
J2KImageReader itself, causing all manner of havoc when used in long
running, multi-threaded environments like the OMERO server. Added a
loose test case that exhibits the problem when/if we want to adjust this
again or find an alternative solution.

comment:6 Changed 8 years ago by cxallan

  • Remaining Time changed from 0.5 to 0
  • Status changed from accepted to closed

comment:7 Changed 8 years ago by Chris Allan <callan@…>

(In [ed2d3ac7e6de527c94ef765e254dcd0147e16e64/bioformats.git]) JPEG 2000 decode thread safety. (See #4989)

Further review may be needed but for now we will need to instantiate a
new J2KImageReader for each decode. With the global JAIIOService, the
current implementation leads to race conditions within the
J2KImageReader itself, causing all manner of havoc when used in long
running, multi-threaded environments like the OMERO server. Added a
loose test case that exhibits the problem when/if we want to adjust this
again or find an alternative solution.

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.88177 sec.)

We're Hiring!