oscar-system / Singular.jl

Julia package for the Singular library
Other
32 stars 33 forks source link

Segmentation fault for `isone(zero(Rx))` #261

Closed ahumenberger closed 4 years ago

ahumenberger commented 4 years ago

The following piece of code throws a segmentation fault. (Singular.jl v0.3.2, Singular v4.2.1-4)

R, (x,) = Singular.PolynomialRing(Singular.QQ, ["x"])
evaluate(x, [zero(R)])
signal (11): Segmentation fault: 11
in expression starting at REPL[3]:1
_ZL7p_IsOneP8spolyrecP8ip_sring at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZZ21singular_define_ringsRN5jlcxx6ModuleEENK3$_9clEP8spolyrecP8ip_sring at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZNSt3__1L8__invokeIRZ21singular_define_ringsRN5jlcxx6ModuleEE3$_9JP8spolyrecP8ip_sringEEEDTclclsr3std3__1E7forwardIT_Efp_Espclsr3std3__1E7forwardIT0_Efp0_EEEOSA_DpOSB_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZNSt3__128__invoke_void_return_wrapperIiE6__callIJRZ21singular_define_ringsRN5jlcxx6ModuleEE3$_9P8spolyrecP8ip_sringEEEiDpOT_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZNSt3__110__function12__alloc_funcIZ21singular_define_ringsRN5jlcxx6ModuleEE3$_9NS_9allocatorIS5_EEFiP8spolyrecP8ip_sringEEclEOS9_OSB_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZNSt3__110__function6__funcIZ21singular_define_ringsRN5jlcxx6ModuleEE3$_9NS_9allocatorIS5_EEFiP8spolyrecP8ip_sringEEclEOS9_OSB_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZNKSt3__110__function12__value_funcIFiP8spolyrecP8ip_sringEEclEOS3_OS5_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZNKSt3__18functionIFiP8spolyrecP8ip_sringEEclES2_S4_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZN5jlcxx6detail17ReturnTypeAdapterIiJP8spolyrecP8ip_sringEEclEPKvNS_13WrappedCppPtrES9_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
_ZN5jlcxx6detail11CallFunctorIiJP8spolyrecP8ip_sringEE5applyEPKvNS_13WrappedCppPtrES9_ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/deps/usr/lib/libsingularwrap.dylib (unknown line)
p_IsOne at /Users/ahumenberger/.julia/packages/CxxWrap/94t40/src/CxxWrap.jl:590 [inlined]
isone at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/src/poly/poly.jl:116 [inlined]
^ at /Users/ahumenberger/.julia/packages/Singular/5YqNQ/src/poly/poly.jl:409
evaluate at /Users/ahumenberger/.julia/packages/AbstractAlgebra/NyIUy/src/generic/MPoly.jl:3613
jl_apply at /Users/julia/buildbot/worker/package_macos64/build/src/./julia.h:1692 [inlined]
do_call at /Users/julia/buildbot/worker/package_macos64/build/src/interpreter.c:369
eval_body at /Users/julia/buildbot/worker/package_macos64/build/src/interpreter.c:0
jl_interpret_toplevel_thunk at /Users/julia/buildbot/worker/package_macos64/build/src/interpreter.c:911
jl_toplevel_eval_flex at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:814
jl_toplevel_eval_flex at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:764
jl_toplevel_eval at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:823 [inlined]
jl_toplevel_eval_in at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:843
eval at ./boot.jl:331
eval_user_input at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
run_backend at /Users/ahumenberger/.julia/packages/Revise/BqeJF/src/Revise.jl:1184
jl_apply at /Users/julia/buildbot/worker/package_macos64/build/src/./julia.h:1692 [inlined]
do_call at /Users/julia/buildbot/worker/package_macos64/build/src/interpreter.c:369
eval_body at /Users/julia/buildbot/worker/package_macos64/build/src/interpreter.c:0
jl_interpret_toplevel_thunk at /Users/julia/buildbot/worker/package_macos64/build/src/interpreter.c:911
jl_toplevel_eval_flex at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:814
jl_toplevel_eval at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:823 [inlined]
jl_toplevel_eval_in at /Users/julia/buildbot/worker/package_macos64/build/src/toplevel.c:843
eval at ./boot.jl:331
eval_user_input at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
macro expansion at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:118 [inlined]
#26 at ./task.jl:358
jl_apply at /Users/julia/buildbot/worker/package_macos64/build/src/./julia.h:1692 [inlined]
start_task at /Users/julia/buildbot/worker/package_macos64/build/src/task.c:687
Allocations: 35705175 (Pool: 35691062; Big: 14113); GC: 35
zsh: segmentation fault  julia
thofma commented 4 years ago

Thanks. I can reproduce on linux. Crashes also for 0.3.1 and 0.3.0 (before the recent binary changes).

thofma commented 4 years ago

To reproduce:

julia> R, (x,) = Singular.PolynomialRing(Singular.QQ, ["x"])
(Singular Polynomial Ring (QQ),(x),(dp(1),C), spoly{n_Q}[x])

julia> isone(zero(R))

signal (11): Segmentation fault
in expression starting at REPL[4]:1
n_IsOne at /workspace/destdir/include/singular/coeffs/coeffs.h:470 [inlined]
p_IsOne at /workspace/destdir/include/singular/polys/monomials/p_polys.h:1981 [inlined]
operator() at /workspace/srcdir/libsingular-julia-0.1.0/rings.cpp:120 [inlined]
_M_invoke at /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/7.1.0/bits/std_function.h:302
operator() at /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/7.1.0/bits/std_function.h:706 [inlined]
operator() at /workspace/destdir/include/jlcxx/module.hpp:47 [inlined]
apply at /workspace/destdir/include/jlcxx/module.hpp:72
p_IsOne at /home/thofmann/tmp/singwrap/packages/CxxWrap/ZOkSN/src/CxxWrap.jl:590 [inlined]
isone at /home/thofmann/tmp/singwrap/dev/Singular/src/poly/poly.jl:116
unknown function (ip: 0x7f1bcb04125f)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:117
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:206
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:157 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:566
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:660
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:840
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:790
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:883
eval at ./boot.jl:331
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398

Not sure where the error is. Note that it is better to debug this on 0.3.2, since then the wrapper is found in Singular/deps/....

tthsqe12 commented 4 years ago

This is a bug with singular itself https://github.com/Singular/Singular/pull/1028

thofma commented 4 years ago

@ahumenberger Could you do a ]up and try again?

tthsqe12 commented 4 years ago

@thofma when I do

(@v1.4) pkg> add Singular
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
  Installed Singular ─ v0.3.2
   Updating `~/.julia/environments/v1.4/Project.toml`
  [bcd08a7b] + Singular v0.3.2
   Updating `~/.julia/environments/v1.4/Manifest.toml`
  [9e28174c] + BinDeps v1.0.1
  [631607c0] + CMake v1.2.0
  [1f15a43c] + CxxWrap v0.11.0
  [e8aa6df9] + GLPK_jll v4.65.0+0
  [1914dd2f] + MacroTools v0.5.5
  [bcd08a7b] + Singular v0.3.2
  [30578b45] + URIParser v0.4.1
  [1493ae25] + lib4ti2_jll v1.6.9+1
  [3eaa8342] + libcxxwrap_julia_jll v0.8.0+0
  [10745b16] + Statistics 
   Building Singular → `~/.julia/packages/Singular/5YqNQ/deps/build.log`

I get v0.3.2 which is still tied to e7e39839d32320823bf9689c97c5071650497b8e in deps/build.jl

thofma commented 4 years ago

Ah, sorry, we have to do a new release first. Can you try after ]dev Singular?

thofma commented 4 years ago

We just released version 0.4.0, so after ]up, this should also be fixed for @ahumenberger

tthsqe12 commented 4 years ago

This actually works now with the latest version (0.4.1)