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

Varargs-related subtype abort #39521

Closed
maleadt opened this issue Feb 4, 2021 · 3 comments
Closed

Varargs-related subtype abort #39521

maleadt opened this issue Feb 4, 2021 · 3 comments
Assignees
Labels
regression Regression in behavior compared to a previous version types and dispatch Types, subtyping and method dispatch
Milestone

Comments

@maleadt
Copy link
Member

maleadt commented Feb 4, 2021

Tuple{Type{Base.PermutedDimsArrays.PermutedDimsArray{Float32, 3, _A, _B, Array{Float32, 3}}} where _B where _A, DataType, DataType} <: Tuple{Vararg{V, N}} where V where N

julia: /home/tim/Julia/src/julia/src/subtype.c:1887: jl_subtype_env: Assertion `obvious_subtype == 3 || obvious_subtype == subtype || jl_has_free_typevars(x) || jl_has_free_typevars(y)' failed.

signal (6): Aborted
in expression starting at none:1
jl_subtype_env at /home/tim/Julia/src/julia/src/subtype.c:1887
jl_f_issubtype at /home/tim/Julia/src/julia/src/builtins.c:444

Reproduces on release-1.6 branch (e.g., https://s3.amazonaws.com/julialangnightlies/assert_pretesting/linux/x64/1.6/julia-8ceeb68753-linux64.tar.gz) but not on master (e.g., https://s3.amazonaws.com/julialangnightlies/pretesting/linux/x64/1.7/julia-20224a6686-linux64.tar.gz). Are we missing a backport? cc @KristofferC; I'll see about bisecting this, and also on master.

@maleadt maleadt added regression Regression in behavior compared to a previous version types and dispatch Types, subtyping and method dispatch labels Feb 4, 2021
@maleadt
Copy link
Member Author

maleadt commented Feb 4, 2021

Slightly shorter:
Tuple{Type{Tuple{A}} where A, DataType, DataType} <: Tuple{Vararg{B}} where B

This happens as part of the CUDA.jl test suite, and didn't on 1.5, so tentatively adding to the milestone.

@maleadt maleadt added this to the 1.6 blockers milestone Feb 4, 2021
@JeffBezanson JeffBezanson self-assigned this Feb 4, 2021
@vtjnash
Copy link
Member

vtjnash commented Feb 4, 2021

FWIW, we have:

(lldb) p obvious_subtype
(int) $0 = 0
(lldb) p subtype
(int) $1 = 1

@jagot
Copy link
Contributor

jagot commented Feb 8, 2021

This is amazing, I had just jumped ship from the beta (where I encountered no problems) to the RC-1 (where I crashed with this) and thought to myself "oh )(#%, how will I ever produce a MWE from this?" because it crashed without any stacktrace, somewhere in my solver. Then I find that you've already fixed it 😍 and it works on the latest nightly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression Regression in behavior compared to a previous version types and dispatch Types, subtyping and method dispatch
Projects
None yet
Development

No branches or pull requests

4 participants