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

"SignalError: Illegal instruction" on calling .right_kernel() #32447

Closed
maxale opened this issue Sep 1, 2021 · 7 comments
Closed

"SignalError: Illegal instruction" on calling .right_kernel() #32447

maxale opened this issue Sep 1, 2021 · 7 comments

Comments

@maxale
Copy link
Contributor

maxale commented Sep 1, 2021

I have a particular matrix on which computing .right_kernel() by Sage 9.4 results in "SignalError: Illegal instruction". Sage 9.4 is installed from sage-9.4-Ubuntu_20.04-x86_64.tar.bz2

I see the same problem in Sage 9.3, but not in Sage 9.2. The screenlog from Sage 9.4 is quoted below. The file bug_illegal_kernel.sage and the output of lscpu are attached.

┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.4, Release Date: 2021-08-22                     │
│ Using Python 3.9.5. Type "help()" for help.                        │
└────────────────────────────────────────────────────────────────────┘
sage: load("bug_illegal_kernel.sage")                                                                                                                                                                                                                                                                                        
---------------------------------------------------------------------------
SignalError                               Traceback (most recent call last)
<ipython-input-1-5e05d00e2706> in <module>
----> 1 load("bug_illegal_kernel.sage")

/usr/local/SageMath.94/local/lib/python3.9/site-packages/sage/misc/persist.pyx in sage.misc.persist.load (build/cythonized/sage/misc/persist.c:2563)()
    171 
    172     if sage.repl.load.is_loadable_filename(filename):
--> 173         sage.repl.load.load(filename, globals())
    174         return
    175 

/usr/local/SageMath.94/local/lib/python3.9/site-packages/sage/repl/load.py in load(filename, globals, attach)
    270                 add_attached_file(fpath)
    271             with open(fpath) as f:
--> 272                 exec(preparse_file(f.read()) + "\n", globals)
    273     elif ext == '.spyx' or ext == '.pyx':
    274         if attach:

<string> in <module>

/usr/local/SageMath.94/local/lib/python3.9/site-packages/sage/matrix/matrix2.pyx in sage.matrix.matrix2.Matrix.right_kernel (build/cythonized/sage/matrix/matrix2.c:31019)()
   4715 
   4716         # Go get the kernel matrix, this is where it all happens
-> 4717         M = self.right_kernel_matrix(*args, **kwds)
   4718 
   4719         ambient = R**self.ncols()

/usr/local/SageMath.94/local/lib/python3.9/site-packages/sage/matrix/matrix2.pyx in sage.matrix.matrix2.Matrix.right_kernel_matrix (build/cythonized/sage/matrix/matrix2.c:29656)()
   4316         if M is None:
   4317             try:
-> 4318                 format, M = self._right_kernel_matrix(algorithm=algorithm, proof=proof)
   4319             except AttributeError:
   4320                 pass

/usr/local/SageMath.94/local/lib/python3.9/site-packages/sage/matrix/matrix_integer_dense.pyx in sage.matrix.matrix_integer_dense.Matrix_integer_dense._right_kernel_matrix (build/cythonized/sage/matrix/matrix_integer_dense.cpp:22522)()
   2694             proof = kwds.pop('proof', None)
   2695             proof = get_proof_flag(proof, "linear_algebra")
-> 2696             K = self._rational_kernel_iml().transpose().saturation(proof=proof)
   2697             format = 'computed-iml-int'
   2698         else:

/usr/local/SageMath.94/local/lib/python3.9/site-packages/sage/matrix/matrix_integer_dense.pyx in sage.matrix.matrix_integer_dense.Matrix_integer_dense._rational_kernel_iml (build/cythonized/sage/matrix/matrix_integer_dense.cpp:32421)()
   3882         time = verbose('computing null space of %s x %s matrix using IML'%(self._nrows, self._ncols))
   3883         cdef mpz_t * m = fmpz_mat_to_mpz_array(self._matrix)
-> 3884         sig_on()
   3885         dim = nullspaceMP(self._nrows, self._ncols, m, &mp_N)
   3886         sig_off()

SignalError: Illegal instruction

Also reported on this aks question

Component: linear algebra

Reviewer: Michael Orlitzky

Issue created by migration from https://trac.sagemath.org/ticket/32447

@maxale maxale added this to the sage-9.5 milestone Sep 1, 2021
@maxale
Copy link
Contributor Author

maxale commented Sep 1, 2021

Sage code resulting in an error

@maxale
Copy link
Contributor Author

maxale commented Sep 1, 2021

Attachment: bug_illegal_kernel.sage.gz

Attachment: lscpu.log

output of lscpu

@maxale

This comment has been minimized.

@maxale

This comment has been minimized.

@sagetrac-tmonteil

This comment has been minimized.

@mkoeppe
Copy link
Contributor

mkoeppe commented Sep 1, 2021

comment:4

probably dup of #32424

@mkoeppe mkoeppe removed this from the sage-9.5 milestone Sep 1, 2021
@orlitzky
Copy link
Contributor

Reviewer: Michael Orlitzky

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants