Ticket #1154 (closed defect: fixed)
Opened 2012-05-04T14:48:00-05:00
Last modified 2012-05-18T16:48:10-05:00
Simultaneous image openings are problematic
Reported by: | bdezonia | Owned by: | bdezonia |
---|---|---|---|
Priority: | major | Milestone: |
|
Component: | I/O | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
Open a big dataset (such as T1 head). While it is opening try opening blobs. One of the images loads as expected. The other takes minutes before it appears on the screen.
(One thing to test: true with File Open or just Open Samples?)
Change History
comment:1 Changed 2012-05-08T15:08:49-05:00 by bdezonia
comment:2 Changed 2012-05-08T15:56:25-05:00 by bdezonia
It's not specifically a Image Fetcher thread. But it is a thread stuck in a TIMED_WAITING state. Thread has no discernable name except that it starts with "ImageJ". Not sure what to whitelist or how.
comment:3 Changed 2012-05-18T16:48:10-05:00 by bdezonia
- Status changed from new to closed
- Resolution set to fixed
With commit 4cceb5569b8f660c6be89cd209f1ae8a6b65a54c long thread waits have been eliminated by having each LegacyPlugin run inside a new thread whose threadgroup is specified. WaitForPluginThreads() now only checks that threads hatched within the context of my new threadgroup are still running.
This results in a quick speedup opening multiple images simultaneously. Until the menu creation slowing bug is fixed this is not readily apparent.
Debugging with print statements it is apparent that the first image (T1) cannot load because it is stuck in LegacyPlugin::waitForPluginThreads(). Apparently a thread related to Blobs is being seen as alive in T1's thread queue.
Its acting like the Image Fetcher whitelisting is failing in this multiple plugin run setting. And thus T1 is waiting for Blob's ImageFetcher to terminate. This is speculation though. Debug further.