Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
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 13 years ago

Closed 13 years ago

Last modified 13 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 13 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 13 years ago by cxallan

  • Status changed from new to accepted

comment:3 Changed 13 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 13 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 13 years ago by cxallan

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

comment:7 Changed 13 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.69608 sec.)

We're Hiring!