JuliaImages / JuliaImages/ImageFiltering.jl

Test failure if run with multiple threads

Open
#87 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
104
Forks
52
PR merge metrics
No merged PRs in 30d

Description

Split off from #86:

$ JULIA_NUM_THREADS=2 julia runtests.jl 
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.active_repl
Skipping Base.active_repl_backend
Test Summary: | Pass  Total
Border        |  102    102
[ Info: Two warnings are expected
┌ Warning: Likely overflow or conversion error detected. Consider specifying the output type, e.g., `imfilter(UInt16, img, kernel, ...)`
└ @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:625
Test Summary: | Pass  Total
1d            |   60     60
┌ Warning: Likely overflow or conversion error detected. Consider specifying the output type, e.g., `imfilter(Int32, img, kernel, ...)`
└ @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:625
Test Summary: | Pass  Total
2d widening   |    3      3
Test Summary: | Pass  Total
3d            |   18     18
Test Summary: | Pass  Total
tiling        |   10     10
Test Summary: | Pass  Total
FIR/FFT       | 1191   1191

Error thrown in threaded loop on thread 0: Base.DimensionMismatch(msg="requested indices (1:8, 0:9) and kernel indices (Base.Slice(-1:1), Base.Slice(0:0)) do not agree with indices of padded input, (Base.Slice(0:9), Base.Slice(1:8))")Borders (issue #85): Test Failed at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:335
  Expression: imfilter(A, Kernel.gaussian((1, 1), (3, 3)), Fill(0, (1, 0)))
    Expected: DimensionMismatch("requested indices (1:8, 0:9) and kernel indices (Base.Slice(-1:1), Base.Slice(0:0)) do not agree with indices of padded input, (Base.Slice(0:9), Base.Slice(1:8))")
  No exception thrown
Stacktrace:
 [1] macro expansion at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:335 [inlined]
 [2] macro expansion at /usr/local/julia/julia-1.0/usr/share/julia/stdlib/v1.0/Test/src/Test.jl:1083 [inlined]
 [3] top-level scope at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:239

Error thrown in threaded loop on thread 0: Base.DimensionMismatch(msg="requested indices (1:8, 0:9) and kernel indices (Base.Slice(-1:1), Base.Slice(0:0)) do not agree with indices of padded input, (Base.Slice(1:8), Base.Slice(0:9))")Borders (issue #85): Test Failed at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:336
  Expression: imfilter(A, Kernel.gaussian((1, 1), (3, 3)), Fill(0, (0, 1)))
    Expected: DimensionMismatch
  No exception thrown
Stacktrace:
 [1] macro expansion at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:336 [inlined]
 [2] macro expansion at /usr/local/julia/julia-1.0/usr/share/julia/stdlib/v1.0/Test/src/Test.jl:1083 [inlined]
 [3] top-level scope at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:239

Error thrown in threaded loop on thread 0: Base.DimensionMismatch(msg="requested indices (1:8, 0:9) and kernel indices (Base.Slice(-1:1), Base.Slice(0:0)) do not agree with indices of padded input, (Base.Slice(1:8), Base.Slice(1:8))")Borders (issue #85): Test Failed at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:337
  Expression: imfilter(A, Kernel.gaussian((1, 1), (3, 3)), Fill(0, (0, 0)))
    Expected: DimensionMismatch
  No exception thrown
Stacktrace:
 [1] macro expansion at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:337 [inlined]
 [2] macro expansion at /usr/local/julia/julia-1.0/usr/share/julia/stdlib/v1.0/Test/src/Test.jl:1083 [inlined]
 [3] top-level scope at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:239
Test Summary:       | Pass  Fail  Total
Borders (issue #85) |   35     3     38
ERROR: LoadError: LoadError: Some tests did not pass: 35 passed, 3 failed, 0 errored, 0 broken.
in expression starting at /home/tim/.julia/dev/ImageFiltering/test/2d.jl:238
in expression starting at /home/tim/.julia/dev/ImageFiltering/test/runtests.jl:12

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Run JULIA_NUM_THREADS=2 julia runtests.jl and start with the failing cases in test/2d.jl:335-337, reached through test/runtests.jl. Compare the threaded behavior with the expected DimensionMismatch results and inspect the imfilter call path shown in the failure. Done means the Borders tests pass when running with multiple threads.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
computer-vision
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.