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 #7009 (closed)

Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

BUG: Import 8kx8k.tif

Reported by: ajpatterson Owned by: mlinkert
Priority: major Milestone: OMERO-4.4
Component: Bio-Formats Version: n.a.
Keywords: n.a. Cc: jburel, cxallan
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2011-11-29 (3)

Description

If you select the file 8kx8k.tif and hit [+] you get a Processing Files dialog that keeps going for a long time, at least 30 mins on my Vistual WinXP machine.

Change History (13)

comment:1 Changed 13 years ago by ajpatterson

After cancelling the dialog any further adds get "No importable found in this selection"

comment:2 Changed 13 years ago by ajpatterson

After discussion with Chris these file have been moved out of the test-image-good/tif folder to a tiff-big-images folder as the very slow response is expected.

Leaving ticket open as cancelling the Processing Files should not cause "No importable found in this selection" problem

comment:3 follow-up: Changed 13 years ago by jburel

  • Cc jburel added
  • Component changed from Bio-Formats to Import
  • Milestone changed from OMERO-Beta4.3.3 to OME-5.0
  • Sprint 2011-10-13 (1) deleted

Following discussion with Andrew, the fact that it takes a long time is something we cannot address now.
The import UI indicates that it is possible to cancel, The "processing" box is no longer displayed but actually the "processing" is still on-going. Nothing we can do at the moment.

comment:4 Changed 13 years ago by mlinkert

  • Sprint set to 2011-11-10 (2)

comment:5 Changed 12 years ago by mlinkert

  • Owner changed from mlinkert-x to cxallan

Re-assigning to Chris, as this looks to be a bug in the importer. Let me know if I need to investigate anything in Bio-Formats (or if you want help with testing etc.).

comment:6 Changed 12 years ago by cxallan

With default memory sizes being what they are and the image in question being just one large 8K by 8K block without tiling the Bio-Formats setId() time is incredibly slow with the reader stack we are using. What happens during "processing" is that the file is evaluated for its "candidates", for which metadata must be parsed. Especially on a machine with limited resources this can be a huge problem.

As we are using the ChannelFiller and ChannelSeparator wrapper classes (for which we may be able to avoid for the purposes of the above checks) we incur at least one full plane read for the above use case as ChannelFiller has in its setId() implementation:

...
265     // NB: For some formats, LUTs are plane-specific and will
266     // only be available after opening a particular image plane.
267     reader.openBytes(0, 0, 0, 1, 1); // read a single pixel, for performance
...

comment:7 Changed 12 years ago by cxallan

  • Cc mlinkert-x added

comment:8 Changed 12 years ago by cxallan

  • Remaining Time set to 0.25

comment:9 Changed 12 years ago by cxallan

  • Status changed from new to accepted

comment:10 Changed 12 years ago by cxallan

  • Cc cxallan added; mlinkert-x removed
  • Component changed from Import to Bio-Formats
  • Owner changed from cxallan to mlinkert-x
  • Remaining Time changed from 0.25 to 1.0
  • Sprint changed from 2011-11-10 (2) to 2011-11-24 (3)

Original commit where the openBytes() call was added: [59284f3840d9ad7c7824bf69f60b5b9edd218f7a/bioformats.git].

comment:11 in reply to: ↑ 3 Changed 12 years ago by cxallan

Replying to jburel:

Following discussion with Andrew, the fact that it takes a long time is something we cannot address now.
The import UI indicates that it is possible to cancel, The "processing" box is no longer displayed but actually the "processing" is still on-going. Nothing we can do at the moment.

The Importer actions, with respect to cancellation, will be handled as part of #7206.

comment:12 Changed 12 years ago by Melissa Linkert <melissa@…>

  • Remaining Time changed from 1.0 to 0
  • Resolution set to fixed
  • Status changed from accepted to closed

(In [5e343246191e8cdee25e43993115bb9bf347277d/bioformats.git]) Ensure that a LUT is available once setId returns.

Previously, some readers for formats which stored one LUT per plane
would return null on calls to get*LookupTable?() that occurred prior to a
call to openBytes(...). Now, get*LookupTable?() will return the LUT of
the 0th plane when called immediately after setId(...).

Most importantly, this means that we can eliminate the call to openBytes
in ChannelFiller?.setId(...), the sole purpose of which was to ensure
that the LUT for plane #0 was available immediately.

Closes #7009.

comment:13 Changed 12 years ago by Melissa Linkert <melissa@…>

(In [5e343246191e8cdee25e43993115bb9bf347277d/bioformats.git]) Ensure that a LUT is available once setId returns.

Previously, some readers for formats which stored one LUT per plane
would return null on calls to get*LookupTable?() that occurred prior to a
call to openBytes(...). Now, get*LookupTable?() will return the LUT of
the 0th plane when called immediately after setId(...).

Most importantly, this means that we can eliminate the call to openBytes
in ChannelFiller?.setId(...), the sole purpose of which was to ensure
that the LUT for plane #0 was available immediately.

Closes #7009.

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.256245 sec.)

We're Hiring!