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

Testing Arrow asserts in subtyping on 1.9 #49354

Closed
KristofferC opened this issue Apr 14, 2023 · 4 comments · Fixed by #49376
Closed

Testing Arrow asserts in subtyping on 1.9 #49354

KristofferC opened this issue Apr 14, 2023 · 4 comments · Fixed by #49376
Assignees
Labels
bug Indicates an unexpected problem or unintended behavior types and dispatch Types, subtyping and method dispatch
Milestone

Comments

@KristofferC
Copy link
Member

KristofferC commented Apr 14, 2023

(jl_sshwyM) pkg> add Arrow; test Arrow
...
testing: dictencode keyword
testing: nesteddictencode keyword
Assertion failed: (obvious_subtype == 3 || obvious_subtype == subtype || jl_has_free_typevars(x) || jl_has_free_typevars(y)), function ijl_subtype_env, file subtype.c, line 1946.

[21676] signal (6): Abort trap: 6
in expression starting at /Users/kristoffercarlsson/.julia/packages/Arrow/P0wVk/test/runtests.jl:46
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)

Seems to work fine on master. Regression introduced in one of the backports it seems.

Ref: https://s3.amazonaws.com/julialang-reports/nanosoldier/pkgeval/by_hash/9aa7669_vs_7b39515/Arrow.primary.log

@KristofferC KristofferC added this to the 1.9 milestone Apr 14, 2023
@maleadt
Copy link
Member

maleadt commented Apr 14, 2023

julia> function fromarrow end

julia> x = Tuple{typeof(fromarrow), Type{Union{Missing, NamedTuple{(:c,), Tuple{String}}}}, Missing}

julia> y = Tuple{typeof(fromarrow), Type{Union{Missing, T}}, T} where T<:NamedTuple

julia> x <: y
julia: /home/tim/Julia/src/julia/src/subtype.c:1961: ijl_subtype_env: Assertion `obvious_subtype == 3 || obvious_subtype == subtype || jl_has_free_typevars(x) || jl_has_free_typevars(y)' failed.

@maleadt
Copy link
Member

maleadt commented Apr 14, 2023

2a2068d2677eae3fe2101c89f9ed6c98e51f3a62 is the first bad commit
commit 2a2068d2677eae3fe2101c89f9ed6c98e51f3a62
Author: N5N3 <2642243996@qq.com>
Date:   Thu Feb 2 11:41:26 2023 +0800

    Subtype: avoid false alarm caused by eager `forall_exists_subtype`. (#48441)

ref #48441, cc @N5N3

@N5N3 N5N3 added bug Indicates an unexpected problem or unintended behavior types and dispatch Types, subtyping and method dispatch and removed bisect wanted labels Apr 14, 2023
@N5N3 N5N3 self-assigned this Apr 14, 2023
@N5N3
Copy link
Member

N5N3 commented Apr 14, 2023

This looks quite similar to #48935 (comment), simple_meet fails to give Union{Missing, @NamedTuple{c::String}} ∩ NamedTuple = @NamedTuple{c::String}}.
Before #48441, we check Missing <: T before the over-estimation, thus there's no problem.

This case is not hard to fix, but I'm afraid there're more remaining issues.

@KristofferC
Copy link
Member Author

This case is not hard to fix, but I'm afraid there're more remaining issues.

This is the one that comes up on PkgEval so we could at least start with fixing this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior types and dispatch Types, subtyping and method dispatch
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants