Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression in ambiguities test #165

Closed
fingolfin opened this issue Aug 24, 2023 · 2 comments · Fixed by #166
Closed

Regression in ambiguities test #165

fingolfin opened this issue Aug 24, 2023 · 2 comments · Fixed by #166

Comments

@fingolfin
Copy link
Collaborator

I just tried to reproduce the list of ambiguities for AbstractAlgebra.jl, via

julia> using Aqua, AbstractAlgebra; Aqua.test_all(
           AbstractAlgebra;
           ambiguities=true,
           unbound_args=true,
           undefined_exports=true,
           project_extras=true,
           stale_deps=true,
           deps_compat=true,
           project_toml_formatting=true,
           piracy=false            # TODO: fix piracy
       )

Unfortunately, this just hangs in the ambiguities test. However, it works when I downgrade Aqua.jl to 0.6.3.

Using git bisect I determined that this regression was introduced in commit e391873 from PR #143 by @lgoettgens.

@fingolfin
Copy link
Collaborator Author

Some more information: this is with Julia 1.9.3 on macOS on ARM.

If I interrupt via ctrl-C, this is the stacktrace I see:

^CTest Summary:    |Time
Method ambiguity | None  5.3s
ERROR: InterruptException:
Stacktrace:
  [1] poptask(W::Base.IntrusiveLinkedListSynchronized{Task})
    @ Base ./task.jl:974
  [2] wait()
    @ Base ./task.jl:983
  [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock}; first::Bool)
    @ Base ./condition.jl:130
  [4] wait
    @ ./condition.jl:125 [inlined]
  [5] wait(x::Base.Process)
    @ Base ./process.jl:661
  [6] success(x::Base.Process)
    @ Base ./process.jl:523
  [7] success(cmd::Base.CmdRedirect)
    @ Base ./process.jl:536
  [8] _find_ambiguities(packages::Vector{Base.PkgId}; color::Nothing, exclude::Vector{Any}, detect_ambiguities_options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Aqua ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/ambiguities.jl:130
  [9] _find_ambiguities
    @ ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/ambiguities.jl:100 [inlined]
 [10] _test_ambiguities(packages::Vector{Base.PkgId}; broken::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Aqua ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/ambiguities.jl:88
 [11] _test_ambiguities
    @ ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/ambiguities.jl:87 [inlined]
 [12] #test_ambiguities#10
    @ ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/ambiguities.jl:28 [inlined]
 [13] test_ambiguities
    @ ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/ambiguities.jl:28 [inlined]
 [14] macro expansion
    @ ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/Aqua.jl:85 [inlined]
 [15] macro expansion
    @ ~/.julia/juliaup/julia-1.9.2+0.aarch64.apple.darwin14/share/julia/stdlib/v1.9/Test/src/Test.jl:1498 [inlined]
 [16] test_all(testtarget::Module; ambiguities::Bool, unbound_args::Bool, undefined_exports::Bool, project_extras::Bool, stale_deps::Bool, deps_compat::Bool, project_toml_formatting::Bool, piracy::Bool)
    @ Aqua ~/Projekte/Julia/packages/JuliaTesting/Aqua.jl/src/Aqua.jl:84

@lgoettgens
Copy link
Collaborator

Ok, so it seems that the Pipe responsible for redirecting stdout here

out = Pipe()

blocks after about 152 ambiguities are printed and then wait until something gets cleared. I try to find a workaround, that can be backported to 0.6.x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants