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

segfault upon "using GSL" on Julia master #99

Closed
chriscoey opened this issue Mar 26, 2019 · 10 comments
Closed

segfault upon "using GSL" on Julia master #99

chriscoey opened this issue Mar 26, 2019 · 10 comments

Comments

@chriscoey
Copy link

I'm on Ubuntu. I didn't get this segfault until after I rebuilt Julia master a few days ago. I rebuilt again just now and I still get the segfault. I get the segfault with both GSL#v0.5.0 and GSL#master.

coey@che:~/julia$ j
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.2.0-DEV.544 (2019-03-25)
 _/ |\__'_|_|_|\__'_|  |  Commit ea0c6e9e76 (0 days old master)
|__/                   |

julia> using GSL

signal (11): Segmentation fault
in expression starting at REPL[1]:1
unknown function (ip: 0x7fc07c6770df)
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_value_phic at /home/coey/julia/src/dump.c:1625 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2043
jl_deserialize_value_array at /home/coey/julia/src/dump.c:1542
jl_deserialize_value at /home/coey/julia/src/dump.c:2034
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_value_array at /home/coey/julia/src/dump.c:1542
jl_deserialize_value at /home/coey/julia/src/dump.c:2034
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_value_array at /home/coey/julia/src/dump.c:1542
jl_deserialize_value at /home/coey/julia/src/dump.c:2034
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_value_array at /home/coey/julia/src/dump.c:1542
jl_deserialize_value at /home/coey/julia/src/dump.c:2034
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_value_array at /home/coey/julia/src/dump.c:1542
jl_deserialize_value at /home/coey/julia/src/dump.c:2034
jl_deserialize_struct at /home/coey/julia/src/dump.c:1870
jl_deserialize_value_any at /home/coey/julia/src/dump.c:1969 [inlined]
jl_deserialize_value at /home/coey/julia/src/dump.c:2166
jl_deserialize_value at /home/coey/julia/src/dump.c:1784
jl_deserialize_value_array at /home/coey/julia/src/dump.c:1542
jl_deserialize_value at /home/coey/julia/src/dump.c:2034
_jl_restore_incremental at /home/coey/julia/src/dump.c:3162
jl_restore_incremental at /home/coey/julia/src/dump.c:3221
_include_from_serialized at ./loading.jl:617
_require_search_from_serialized at ./loading.jl:713
_require at ./loading.jl:938
require at ./loading.jl:859
require at ./loading.jl:854
jl_apply_generic at /home/coey/julia/src/gf.c:2226
jl_apply at /home/coey/julia/src/julia.h:1594 [inlined]
call_require at /home/coey/julia/src/toplevel.c:398 [inlined]
eval_import_path at /home/coey/julia/src/toplevel.c:435
jl_toplevel_eval_flex at /home/coey/julia/src/toplevel.c:639
jl_toplevel_eval_flex at /home/coey/julia/src/toplevel.c:746
jl_toplevel_eval_in at /home/coey/julia/src/toplevel.c:826
eval at ./boot.jl:327
jl_apply_generic at /home/coey/julia/src/gf.c:2226
eval_user_input at /home/coey/julia/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:86
macro expansion at /home/coey/julia/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:118 [inlined]
#26 at ./task.jl:269
jl_apply_generic at /home/coey/julia/src/gf.c:2226
jl_apply at /home/coey/julia/src/julia.h:1594 [inlined]
start_task at /home/coey/julia/src/task.c:583
unknown function (ip: 0xffffffffffffffff)
Allocations: 1186985 (Pool: 1186717; Big: 268); GC: 1
Segmentation fault (core dumped)
@giordano
Copy link
Member

Any chance to try on julia v1.1 stable?

@chriscoey
Copy link
Author

I just tried it with 1.1 stable and there was no segfault with GSL recompiling. So only 1.2 master causes it.

@chriscoey
Copy link
Author

The error also happens on a different Ubuntu machine with 5 days old Julia master (Commit f611b46e72)

@simonbyrne
Copy link
Member

I updated the Travis config to test on nightly: it appears there as well.

@giordano
Copy link
Member

Would you be able to run git bisect in julia repository to search for the offending commit?

@giordano
Copy link
Member

giordano commented Mar 26, 2019

You have a hint from appveyor about the last good revision: https://ci.appveyor.com/project/simonbyrne/gsl-jl/history

@chriscoey
Copy link
Author

chriscoey commented Mar 26, 2019

OK I'm trying the bisect now

fyi during bisect I am getting OutOfMemoryError() for some commits (eg f44a37f333) before the later commits that segfault.

@chriscoey
Copy link
Author

OK bisection yielded:

c8510e31dc2af6f97358bb7f3b50ef88355feffc is the first bad commit
commit c8510e31dc2af6f97358bb7f3b50ef88355feffc
Author: Jameson Nash <vtjnash@gmail.com>
Date:   Thu Feb 7 14:22:09 2019 -0500

    internals: share slotnames table via Method
    
    Also store a few other unnecessary properties in CodeInfo,
    which some users might be interested in having.

:040000 040000 ce99966cc2a77c0546fb67cc4e6f5b11392dd84c 30d4e91efac48df7d7f62b0a42418273234a9b3a M	base
:040000 040000 4b3af633a0aa965d1594d0f5692ec4805fe667ec 7cc2215313e13bb816a3b6972ba7c3050107ee1b M	src
:040000 040000 9a61a0ede933df0c64fef3141d3c6af107724b90 c6caf524dc70b5d6afcc34448cee240d48ca1530 M	stdlib
:040000 040000 7c38d5fd8690d788579c09c6e8c0944fcdbea57b 00dbf7186646ef48c63c082d75ac2d0eee36ece5 M	test

@vtjnash

@giordano
Copy link
Member

I've opened an issue in Julia at JuliaLang/julia#31488

@giordano
Copy link
Member

giordano commented Apr 9, 2019

JuliaLang/julia#31488 has been fixed and I confirm that using GSL works for me and tests pass locally, thus I'm going to close this issue. Thanks @chriscoey for the report and the precious bisection!

@giordano giordano closed this as completed Apr 9, 2019
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

3 participants