Repository navigation
fix: move image_assembler and precompute_slide to the image-tools images - #27
Merged
Merged
Conversation
…age-tools images The image-assembler-plugin 1.4.0-dev0 and precompute-slide-plugin 1.7.0-dev0 images pin preadator 0.3.0.dev1. Its worker initializer reads each worker's name with a zero-timeout get on a shared queue, so a worker that loses the queue's lock to a sibling gets queue.Empty and the process pool breaks. Under load this failed 10/30 assembler and 12/30 precompute runs on the BBBC001 data. image-assembler-tool 1.4.3 uses the stdlib ProcessPoolExecutor and no preadator: 0/150 under the same load. precompute-slide-tool 1.7.3-dev0 uses preadator 0.4.0.dev2, which still has the zero-timeout get in a nested ProcessManager, so it fails far less often (2/90) but not never. 1.7.2 cannot be used: it fails on the deflate-compressed TIFF the new assembler writes (ADOBE_DEFLATE needs imagecodecs). The new precompute-slide's imageType values are Intensity and Segmentation instead of image and segmentation, so the bbbc workflows pass Intensity. The doc and manifest links point at the image-tools repository the tools moved to.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #26.
What
image_assembler.cwl:polusai/image-assembler-plugin:1.4.0-dev0→polusai/image-assembler-tool:1.4.3. The new image uses the stdlib process pool and no preadator. Its options and output are unchanged.precompute_slide.cwl:polusai/precompute-slide-plugin:1.7.0-dev0→polusai/precompute-slide-tool:1.7.3-dev0. ItsimageTypevalues are nowIntensity/Segmentation, sobbbc.wicandbbbc.pypassIntensity, and the input's label says so.Why
Both old images install preadator 0.3.0.dev1, whose worker start-up races on a zero-timeout queue read and breaks the process pool intermittently (Nicholas-Schaub/preadator#12). Under load that failed 10/30 assembler and 12/30 precompute runs.
Choices a reviewer should know
ADOBE_DEFLATEneedsimagecodecs). 1.7.3-dev0 reads it.ProcessManager, so it can still fail, at a much lower rate. That ends when preadator releases a fix and precompute-slide-tool is rebuilt on it.Measured (CI cannot show a failure rate)
Each tool on the BBBC001 intermediates, 3 runs in parallel:
image-assembler-tool:1.4.3precompute-slide-tool:1.7.3-dev0The whole workflow through Sophios with cwltool, 6 runs each, 3 at a time:
bbbc.wic: 6/6.bbbc.py: 5/6. The one failure was the remaining precompute race.