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

CHOLMOD version warning is invisible due to undefined STDERR #12841

Closed
fweimer opened this issue Aug 28, 2015 · 5 comments
Closed

CHOLMOD version warning is invisible due to undefined STDERR #12841

fweimer opened this issue Aug 28, 2015 · 5 comments
Milestone

Comments

@fweimer
Copy link

fweimer commented Aug 28, 2015

The warning added in #10362 is not visible with julia-0.4.0-0.1.20150823git.fc23.x86_64 because the STDERR variable (referenced from warn) is not yet available. This results in a cryptic backtrace:

fatal: error thrown and no exception handler available.
Base.InitError(mod=:CHOLMOD, error=UndefVarError(var=:STDERR))
rec_backtrace at /usr/bin/../lib64/julia/libjulia.so (unknown line)
jl_throw at /usr/bin/../lib64/julia/libjulia.so (unknown line)
jl_undefined_var_error at /usr/bin/../lib64/julia/libjulia.so (unknown line)
unknown function (ip: 0x7f5cc56d586d)
unknown function (ip: 0x7f5cd1d940a1)
jl_apply_generic at /usr/bin/../lib64/julia/libjulia.so (unknown line)
unknown function (ip: 0x7f5cc575fa30)
unknown function (ip: 0x7f5cc5760279)
jl_apply_generic at /usr/bin/../lib64/julia/libjulia.so (unknown line)
jl_module_run_initializer at /usr/bin/../lib64/julia/libjulia.so (unknown line)
unknown function (ip: 0x7f5cd181c921)
unknown function (ip: 0x7f5cd1814f5c)
julia_init at /usr/bin/../lib64/julia/libjulia.so (unknown line)
unknown function (ip: 0x401763)
__libc_start_main at /usr/bin/../lib64/libc.so.6 (unknown line)
unknown function (ip: 0x4017b9)
unknown function (ip: (nil))
@jdlangs
Copy link
Contributor

jdlangs commented Aug 28, 2015

Since #12742 has been merged, this will no longer crash on master, but it will display that UndefVarError instead of the intended warning message. The simplest fix would be to just make those warnings errors. Then they'll be caught and displayed and still not break the initialization.

A more proper solution down the road should be to introduce primitive STDOUT/STDERR objects early that will work in __init__ functions.

@fweimer
Copy link
Author

fweimer commented Aug 28, 2015

I'm not sure if making those warnings errors would be a good thing for distributions like Fedora. They would need to have an exact run-time dependency on the suitesparse version which was used to compile Julia, and that would complicate package updates.

@KristofferC
Copy link
Member

I interpret @phobon saying "Then they'll be caught and displayed and still not break the initialization." as that making it an error would be fine, since errors inside __init__ for CHOLMOD are now being caught.

@nalimilan
Copy link
Member

Indeed, the warning wouldn't be good either for distributions. If a new SuiteSparse version isn't backward-compatible, it should upgrade the SOVERSION, so that packagers know they need to rebuild all dependencies. Let's discuss this in #10362, and keep the present issue for fixing the segfault.

@fweimer fweimer changed the title CHOLMOD version check is invisible due to undefined STDERR CHOLMOD version warning is invisible due to undefined STDERR Aug 29, 2015
nalimilan added a commit that referenced this issue Sep 7, 2015
The check introduced in #10362 is actually too strict,
as ABI break only happen with mismatches in the major
version. Warning on minor version differences means
distributions cannot update SuiteSparse without
rebuiling Julia (#12841).

Also fix the incorrect wording introuced in 25eb444:
this message corresponds to the case where the version is
different, not necessarily older.
@nalimilan
Copy link
Member

#13000 changes the check to be only about the major version.

@vtjnash vtjnash added this to the 0.4.x milestone Sep 9, 2015
nalimilan added a commit that referenced this issue Sep 9, 2015
The check introduced in #10362 is actually too strict,
as ABI break only happen with mismatches in the major
version. Warning on minor version differences means
distributions cannot update SuiteSparse without
rebuiling Julia (#12841). We also require at least
libcholmod 2.1.1.

Call dlsym_e instead of dlsym, which raises an error instead
of returning C_NULL.

Also fix the incorrect wording introuced in 25eb444:
this message corresponds to the case where the version is
different, not necessarily older.
vtjnash added a commit that referenced this issue Jun 14, 2016
this expands the IO definitions that were in Core.Inference,
and makes them more generically pluggable into the Base IO subsystem

fix #12841
vtjnash added a commit that referenced this issue Jun 14, 2016
this expands the IO definitions that were in Core.Inference,
and makes them more generically pluggable into the Base IO subsystem

fix #12841
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

No branches or pull requests

5 participants