bugGNU Octave - Bugs: bug #51950, sparse qr may return a malformed...

 
 

bug #51950: sparse qr may return a malformed sparse matrix R with out of bounds entries

Submitted by:  Joseph Young <josyoun>
Submitted on:  Wed 06 Sep 2017 02:50:40 AM UTC  
 
Category:  Octave Function Severity:  4 - Important
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Confirmed Assigned to:  None
Originator Name:  josyoun Open/Closed:  Open
Release:  4.2.1 Operating System:  GNU/Linux

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Sun 13 Oct 2019 05:16:30 PM UTC, comment #26: 

There is a patch in bug #57033 that switches to using the SPQR API.

Marking this bug as dependent on that bug.

Markus Mützel <mmuetzel>
Project Member
Sun 23 Dec 2018 04:03:39 PM UTC, comment #25: 

@Hartmut: Thanks for re-testing.  I marked this as "won't fix" for the 5.0 release (https://wiki.octave.org/Bug_Fix_List_-_5.0_Release#Bugs_marked_as_Crash).  It seems that the fix is rather clear--writing a whole bunch of code to use the SQPR API--and there isn't enough time for that right now.

Rik <rik5>
Project Administrator
Sat 22 Dec 2018 10:08:50 PM UTC, comment #24: 

I STILL see a segfault once in a while, when trying the code line from comment #0 in a recent Octave 5.0.1 (hg-id 9644c0b7efd8).

Hartmut <hardy>
Wed 21 Mar 2018 02:03:35 PM UTC, comment #23: 

@Kenneth: you can try to build the mex interface in SuiteSparse/SPQR/MATLAB. The SPQR library uses 64bit integers, only. Therefore, you have to compile octave with --enable-64, I guess. See https://octave.org/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html

Marco Caliari <caliari>
Project Member
Wed 21 Mar 2018 10:06:20 AM UTC, comment #22: 

I'm afraid I'm not knowledgeable enough to contribute to the proposed long term solution (nor do I have time, for that matter).

Is there a "dirty" patch we can come up with to circumvent this problem?

This is currently blocking us from moving forward with running a large MATLAB program on top of Octave instead.

With some pointers, I may be able to come up with a patch for this myself, for example by trying to implement to deletion of extra rows  that get added (unless that has been ruled out already as a potential fix/workaround, that's not clear to me).

Another option is that we somehow dance around this in the application code. How crazy would it be to try and avoid calling sparse_qr by using non-sparse matrices?
I have to check how large the matrices are we're dealing with here, that's probably an important factor...

Kenneth Hoste <kehoste>
Fri 09 Feb 2018 05:22:34 PM UTC, comment #21: 

There is a potential Google Summer of Code project to write an interface to SPQR (https://wiki.octave.org/Summer_of_Code_Project_Ideas#SPQR_Interface).  This is the best long term solution.

There is no mentor for this project yet, and no guarantee that Octave will be chosen as a GSOC awardee this year, or that a student will choose this project.  So, by all means this would be a good place to dive in.

Rik <rik5>
Project Administrator
Fri 09 Feb 2018 08:53:31 AM UTC, comment #20: 

@Kenneth: I think that writing the interface to SPQR is the right long term solution. Is there already a mex interface to it to start to play with?

Marco Caliari <caliari>
Project Member
Thu 08 Feb 2018 02:32:05 PM UTC, comment #19: 

Any progress on this, or any further information?

Is there a way to dance around this issue in one way or another (patch Octave program, or even patch Octave code & rebuild)?

Can I help in any way? I should mention that I'm not an expert in linear algebra or Octave, but I'm not afraid to take a deep dive...

Kenneth Hoste <kehoste>
Sun 24 Sep 2017 04:36:03 AM UTC, comment #18: 

Writing an interface to SQPR for Octave would probably make a good Summer of Code project.

Rik <rik5>
Project Administrator
Sat 09 Sep 2017 06:51:55 PM UTC, comment #17: 
Dmitri A. Sergatskov <dasergatskov>
Sat 09 Sep 2017 06:30:51 PM UTC, comment #16: 

CSParse, CXSparse, SPQR are all parts of SuiteSparse.

SPQR is described in T. Davis paper:

 http://dl.acm.org/authorize?6504334

(it is also included in SuiteSparse docs).

Most of Suite sparse libraries are described in T.D. pub at:

http://faculty.cse.tamu.edu/davis/publications.html

Dmitri.

Dmitri A. Sergatskov <dasergatskov>
Sat 09 Sep 2017 05:56:34 PM UTC, comment #15: 

Good analysis.  One question, is it always the case that the inserted rows can safely be deleted?  In the example we are using, the R matrix has three fully empty rows between the last row with an entry at (2,2) and the next entry at (6,6).  Collapsing null rows is a fairly easy operation and if the entry at (6,6) were moved to (3,6) everything would work out correctly.

Second, Tim Davis, author of SuiteSparse has moved from the U. of Florida to Texas A&M.  The overview page for SuiteSparse is now at http://faculty.cse.tamu.edu/davis/suitesparse.html.  According to this page, Matlab has moved QR to rely on the SuiteSparse library.  Given that Octave already uses SuiteSparse in some capacity, maybe we should just switch to a different library.  Is there a comparison table between CSparse, CXSparse, and SuiteSparse in terms of things like memory usage, efficiency, speed, etc.?

Rik <rik5>
Project Administrator
Sat 09 Sep 2017 06:04:22 AM UTC, comment #14: 

From what I can tell, Octave doesn't call cs_qr_mex.  However, it appears to parrot how that file is constructed.  For example, the comments in sparse-qr.cc about whether or not the double transpose to sort is necessary.  This double transpose can also be found in cs_qr_mex.c.  That said, I don't know the history of the files, so I don't know for sure.

Anyway, it looks like a number of things are going on that are simultaneously breaking.  At its core, though, it's not clear to me that cs_qr can correctly compute what Octave currently asks for it.  As I mentioned before, p78 of Tim Davis' book Direct Methods for Sparse Linear Systems notes that extra rows can be added when the matrix is structurally rank-deficient.  For how he calls the routine, this isn't too much of a problem since he generally doesn't form Q.  Rather, he keeps around the Householder reflectors and then uses them.  In that way, it doesn't really matter if the extra rows are there because if we solve when the factorization we can always remove the extra zeros from the solution later.  In our case, this doesn't work since we want Q.

The easiest way to see why is to use cs_qr_mex.c from CXSparse along with cs_qright.  Also, comment out the row/column check in cs_qr_mex.c to make this simpler:

      //if (m &lt; n) mexErrMsgTxt (&quot;A must have # rows &gt;= # columns&quot;) ;

Anyway, we can ask CXSparse for the QR factorization with the following code:

% Create the matrix
A=sparse(5,6);A(3,1)=0.8;A(2,2)=1.4;A(1,6)=-0.5;

% Find the factorization
[V beta p R q]= cs_qr(A);

% Find Q
Q = cs_qright(V,beta,p,speye(size(V,1)));

Here, we get:

octave:6&gt; full(Q)
ans =

   0.00000   0.00000   0.00000   0.00000   0.00000  -1.00000   0.00000   0.00000
   0.00000  -1.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
  -1.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   1.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   1.00000
   0.00000   0.00000   1.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   1.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   1.00000   0.00000   0.00000   0.00000

octave:7&gt; full(R)
ans =

  -0.80000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000  -1.40000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.50000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000

Or really:

R =

Compressed Column Sparse (rows = 8, cols = 6, nnz = 3 [6.2%])

  (1, 1) -&gt; -0.80000
  (2, 2) -&gt; -1.4000
  (6, 6) -&gt;  0.50000

This is where we see the element in the (6,6) position.  Notice, that these matrices are much bigger than what we want.  We want Q to be 5x5 and R to be 5x6, but we added three rows.  Now, I believe the current QR factorization code in Octave just truncates these matrices.  Note:
octave:107&gt; [qqq rrr]=qr(A)
qqq =

   0.00000   0.00000   0.00000  -0.50000   0.00000
   0.00000  -1.00000   0.00000  -0.50000   0.00000
  -1.00000   0.00000   0.00000  -0.50000   0.00000
   0.00000   0.00000   0.00000  -0.50000   0.00000
   0.00000   0.00000   0.00000  -0.50000   0.00000

rrr =

Compressed Column Sparse (rows = 5, cols = 6, nnz = 3 [10%])

  (1, 1) -&gt; -0.80000
  (2, 2) -&gt; -1.4000
  (6, 6) -&gt;  0.50000

This is bad for two reasons.  One, the (6,6) element can't exist in a 5x6 matrix.  Two, we have an all zero column in Q, so Q is not unitary (Q'*Q=I).

Now, can this be fixed?  I'm really not sure.  We can't safely truncate R since adding additional rows may very well mean that nonzero elements are pushed into the extra rows in the factorization.  Without changing the algorithm, I'm not sure this can be prevented.  Again, if we don't need Q, this is not necessarily a problem since we can still solve linear systems using the Householder reflectors directly and then truncate the result.  However, there are situations where we want Q.

One possible, bad, fix is to play a game with a Dulmage-Mendelsohn permutation of R.  Basically, the DM permutation permutes things to try and obtain a block diagonal structure.  We know that we should have this in R, so it should be safe to use.  For example, the following code kind of fixes cs_qr_mex:

% Computes the QR factorization in a slightly odd way that sort of handles
% structurally rank deficient matrices.
function [Q R]=myqr(A)

    % Determine the size of the matrix
    [m n]=size(A);

    % Find the QR factorization
    [V beta p R q]= cs_qr(A);

    % Find Q
    Q = cs_qright(V,beta,p,speye(size(V,1)));

    % Find the Dulmage-Mendelsohn permutation of R
    [p q]=dmperm(R);

    % Reorder the rows of R and the columns of Q.  The goal here is to move the
    % elements of R up in the case where it's structurually rank deficient
    % while keeping the block diagonal structure.
    Q=Q(:,p);
    R=R(p,:);

    % Truncate the size of Q and R
    Q = Q(1:m,1:m);
    R = R(1:m,1:n);
end

For example, if we try the code:

% Create the matrix
A=sparse(5,6);A(3,1)=0.8;A(2,2)=1.4;A(1,6)=-0.5;

% Find the factorization
[Q R]=myqr(A);

We get:

octave:2&gt; Q
Q =

Compressed Column Sparse (rows = 5, cols = 5, nnz = 3 [12%])

  (3, 1) -&gt; -1
  (2, 2) -&gt; -1.0000
  (1, 3) -&gt; -1

octave:3&gt; R
R =

Compressed Column Sparse (rows = 5, cols = 6, nnz = 3 [10%])

  (1, 1) -&gt; -0.80000
  (2, 2) -&gt; -1.4000
  (3, 6) -&gt;  0.50000

which is almost what we want.  Basically, the R matrix now looks good, but Q is messed up.  Note, Q is not unitary and has zero columns.  However, here, A=QR.  Anyway, it works because it essentially replaces the old factorization A=QR with A=QP'PR where P is a permutation designed to move everything above the added rows.  I think this would be better than what Octave currently does, but it's not a great solution.

Likely a better solution would be to migrate the code from CXSparse to SPQR, which uses a different algorithm where this isn't an issue.  I believe MATLAB already uses SPQR; it's faster; and Octave is already using codes from SuiteSparse.

Anyway, if someone has an easier solution, I'd like to hear.  Thanks for taking a look at things.

Joseph Young <josyoun>
Thu 07 Sep 2017 08:09:19 AM UTC, comment #13: 

@Joseph: if I understand it correctly, octave calls the cs_qr_mex file and the result is wrong, while a direct call to the library (last part of your comment, in which it should be R(3,6) = -0.5 and not R(6,3) = -0.5) would give the right result?

Marco Caliari <caliari>
Project Member
Thu 07 Sep 2017 06:42:59 AM UTC, comment #12: 

This is likely an issue inherited from the original cs_qr_mex file.  This call is a little wonky:

octave:2&gt; A=sparse(5,6);A(3,1)=0.8;A(2,2)=1.4;A(1,6)=-0.5;
octave:3&gt; [V beta p R q]= cs_qr(A)
error: cs_qr: A must have # rows &gt;= # columns

If we add the additional row to force it to work:

octave:4&gt; A=[A;sparse(1,6)]
A =

Compressed Column Sparse (rows = 6, cols = 6, nnz = 3 [8.3%])

  (3, 1) -&gt;  0.80000
  (2, 2) -&gt;  1.4000
  (1, 6) -&gt; -0.50000

octave:5&gt; [V beta p R]= cs_qr(A)
V =

Compressed Column Sparse (rows = 9, cols = 6, nnz = 6 [11%])

  (1, 1) -&gt;  1.6000
  (2, 2) -&gt;  2.8000
  (3, 3) -&gt;  1
  (4, 4) -&gt;  1
  (5, 5) -&gt;  1
  (6, 6) -&gt; -1

beta =

   0.78125
   0.25510
   0.00000
   0.00000
   0.00000
   2.00000

p =

   3   2   7   8   9   1   4   5   6

R =

Compressed Column Sparse (rows = 9, cols = 6, nnz = 3 [5.6%])

  (1, 1) -&gt; -0.80000
  (2, 2) -&gt; -1.4000
  (6, 6) -&gt;  0.50000

Notice that we have the magical (6,6) element.  However:

octave:6&gt; [q r]=qr(full(A))
q =

   0   0   1   0   0   0
   0   1   0   0   0   0
   1  -0   0   0   0   0
   0  -0  -0   1   0   0
   0  -0  -0  -0   1   0
   0  -0  -0  -0  -0   1

r =

   0.80000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   1.40000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000  -0.50000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000

Candidly, it shouldn't be there.  What's happening?  Other than cs_qr_mex.c likely having a bug, there is documentation in cs_qr.m:

If A is structurally rank deficient, additional empty rows may have been added to V and R.

In other words, CXSparse can and will add additional rows to R when it deems fit.  This is discussed on page 78 in Tim Davis' book Direct Methods for Sparse Linear Systems:

The cs_qr function uses the symbolic analysis computed by cs_sqr: the column elimination tree S-&gt;parent, column preordering S-&gt;q, row permutation S-&gt;pinv, the S-&gt;leftmost array, the number of nonzeros in R and V (S-&gt;unz and S-&gt;lnz, respectively), and the number of rows S-&gt;m2 after adding fictitious rows if A is structurally rank deficient.

Here's an example of the call in C:

#include &quot;cs.h&quot;

int main() {
    // Create a 5x6 matrix with a max of 10 values.  Allocate memory for the
    // values and denote that we're using triplet form.
    cs * A = cs_spalloc(5,6,10,1,1);

    // Set the entries of A
    cs_entry(A,2,0,0.8);
    cs_entry(A,1,1,1.4);
    cs_entry(A,0,5,-0.5);
    #if 1
    cs_entry(A,0,2,0.0);
    cs_entry(A,0,3,0.0);
    cs_entry(A,0,4,0.0);
    #endif

    // Convert A to a compressed matrix
    cs * Ac = cs_compress(A);

    // Perform a symbolic QR factorization of A.  The 0 means natural ordering
    // and the 1 means we're doing a sparse qr factorization.
    css * As = cs_sqr(0,Ac,1);

    // Perform a QR factorization of A
    csn * QR = cs_qr(Ac,As);

    // Free memory from A and Ac
    cs_spfree(A);
    cs_spfree(Ac);

    // Free the symbolic factorization
    cs_sfree(As);

    // Free the QR factorization
    cs_nfree(QR);
}

In gdb we can see:

(gdb) print QR[0].U[0]
$4 = {nzmax = 3, m = 8, n = 6, p = 0x100203550, i = 0x100203580,
  x = 0x100203320, nz = -1}
(gdb) print QR[0].U[0].p[0] @ 7
$5 = {0, 1, 2, 2, 2, 2, 3}
(gdb) print QR[0].U[0].i[0] @ 3
$6 = {0, 1, 2}
(gdb) print QR[0].U[0].x[0] @ 3
$7 = {-0.80000000000000004, -1.3999999999999999, -0.5}

In other words, we have

R(1,1) = -0.8
R(2,2) = -1.4
R(6,3) = -0.5

which is what we want except for that R has size 8 x 6 since CXSparse added 3 fictitious rows since we were structurally rank deficient.

How do we fix this?  Unless I'm missing something, I can't seem to find a routine in CXSparse that drops the fictitious rows automatically.  We can probably just calculate the size by hand and ignore what comes out in the cs matrix since the number of rows may be greater than what we want.

Joseph Young <josyoun>
Thu 07 Sep 2017 05:04:48 AM UTC, comment #11: 

SuiteSparse comes with all kind of demos and even matlab'smex files.
In cs_qr_mex.c I see:

    if (nargout > 5 || nargin != 1)
    {
        mexErrMsgTxt ("Usage: [V,beta,p,R,q] = cs_qr(A)") ;
    }
    order = (nargout == 5) ? 3 : 0 ;        /* determine ordering */
    m = mxGetM (pargin [0]) ;
    n = mxGetN (pargin [0]) ;
    if (m < n) mexErrMsgTxt ("A must have # rows >= # columns") ;

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Wed 06 Sep 2017 11:50:57 PM UTC, comment #10: 

Unfortunately, it doesn't seem to be the sorting.  I commented out the sort code and then re-ran the example

r =

Compressed Column Sparse (rows = 5, cols = 6, nnz = 6 [20%])

  (1, 1) -> -0.80000
  (2, 2) -> -1.4000
  (3, 3) -> -0
  (4, 4) -> -0
  (5, 5) -> -0
  (6, 6) ->  0.50000

So the extra zeros are not dropped, but the problem remains at location (6,6).

Maybe we aren't calling QR correctly, or we've discovered some weird longstanding bug in the library.  Someone who understands the CSPARSE library needs to help out here.

The call is at line 208 of sparse_qr.cc

      BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
      S = CXSPARSE_DNAME (_sqr) (order, &A, 1);
      N = CXSPARSE_DNAME (_qr) (&A, S);
      END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;

Rik <rik5>
Project Administrator
Wed 06 Sep 2017 11:27:51 PM UTC, comment #9: 

The code in question is at line 271 of sparse-qr.cc

    template <>
    SparseMatrix
    sparse_qr<SparseMatrix>::sparse_qr_rep::R (bool econ) const
    {
#if defined (HAVE_CXSPARSE)

      // Drop zeros from R and sort
      // FIXME: Is the double transpose to sort necessary?

      BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
      CXSPARSE_DNAME (_dropzeros) (N->U);
      CXSPARSE_DNAME () *D = CXSPARSE_DNAME (_transpose) (N->U, 1);
      CXSPARSE_DNAME (_spfree) (N->U);
      N->U = CXSPARSE_DNAME (_transpose) (D, 1);
      CXSPARSE_DNAME (_spfree) (D);
      END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;

      octave_idx_type nc = N->U->n;
      octave_idx_type nz = N->U->nzmax;

      SparseMatrix ret ((econ ? (nc > nrows ? nrows : nc) : nrows), nc, nz);

      for (octave_idx_type j = 0; j < nc+1; j++)
        ret.xcidx (j) = N->U->p[j];

      for (octave_idx_type j = 0; j < nz; j++)
        {
          ret.xridx (j) = N->U->i[j];
          ret.xdata (j) = N->U->x[j];
        }

      return ret;

I used gdb to step through the code and display ret before it is returned.

display-sparse-array ret
sparse object: {<MSparse<double>> = {<Sparse<double>> = {
      _vptr.Sparse = 0x7f75c48174e0 <vtable for SparseMatrix+16>, rep = 0x606000e4f500,
      dimensions = {rep = 0x6030003b0db0}}, <No data fields>}, <No data fields>}
dimensions.rep[0] = ndims: 2
dims: {5, 6}

dimensions.rep[1] = 6
rep = {d = 0x6030003b0e00, r = 0x6030003b0dd0, c = 0x606000e4f4a0, nzmx = 3, nrows = 5,
  ncols = 6, count = {count = 1}}
rep.d = {-0.80000000000000004, -1.3999999999999999, 0.5}
rep.r = {0, 1, 5}
rep.c = {0, 1, 2, 2, 2, 2, 3}
(gdb) p N->U->i[2]
$26 = 5
(gdb) p N->U->i[1]
$27 = 1
(gdb) p N->U->i[0]
$28 = 0

So it is the output of the library code in N that is the problem.  I don't know if we are not feeding the QR factorization the right values, or whether it is this sort routine that is the problem

      BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
      CXSPARSE_DNAME (_dropzeros) (N->U);
      CXSPARSE_DNAME () *D = CXSPARSE_DNAME (_transpose) (N->U, 1);
      CXSPARSE_DNAME (_spfree) (N->U);
      N->U = CXSPARSE_DNAME (_transpose) (D, 1);
      CXSPARSE_DNAME (_spfree) (D);
      END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;

Rik <rik5>
Project Administrator
Wed 06 Sep 2017 10:50:16 PM UTC, comment #8: 

I tested some old versions of Octave with Marco's test case and the problem exists all the way back to Octave 3.2.4, and probably before that as well but I don't have any earlier versions.

The code is in liboctave/numeric/sparse-qr.[h|cc].  This doesn't appear to be a problem with the full version which is in liboctave/numeric/qr.[h|cc].

I tried the full version

A=zeros(5,6);A(3,1)=0.8;A(2,2)=1.4;A(1,6)=-0.5;[q r]=qr(A);r
r =

  -0.80000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   1.40000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.50000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000

The difference is element (3,6) which is missing in the sparse version

A=sparse(5,6);A(3,1)=0.8;A(2,2)=1.4;A(1,6)=-0.5;[q r]=qr(A);r
r =

Compressed Column Sparse (rows = 5, cols = 6, nnz = 3 [10%])

  (1, 1) -> -0.80000
  (2, 2) -> -1.4000
  (6, 6) ->  0.50000

full (r)
ans =

  -0.80000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000  -1.40000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000

Rik <rik5>
Project Administrator
Wed 06 Sep 2017 07:53:30 PM UTC, comment #7: 

@Mike, I found a similar example

A=sparse(5,6);A(3,1)=0.8;A(2,2)=1.4;A(1,6)=-0.5;[q r]=qr(A);r
r =

Compressed Column Sparse (rows = 5, cols = 6, nnz = 3 [10%])

  (1, 1) -> -0.80000
  (2, 2) -> -1.4000
  (6, 6) ->  0.50000

so an extra element in position (6, 6). If you run qr on full(A), you discover that the element 0.50000 should be in position (3, 6).

Marco Caliari <caliari>
Project Member
Wed 06 Sep 2017 07:35:28 PM UTC, comment #6: 

Here is an exact test case for someone to investigate with:

A = sparse ([1, 3, 5], [2, 3, 6], ...
            [ 0.03535703796050893, ...
             -0.094869220215099748, ...
              0.1570058435544345]);
[~, R] = qr (A);   ## ← this returns bad R with OOB elements
qr (R)             ## ← this crashes

Mike Miller <mtmiller>
Project Administrator
Wed 06 Sep 2017 07:23:28 PM UTC, comment #5: 

Marco - I agree, I think the matrix has to be the result of a QR factorization.

In particular, qr may return an R matrix that is malformed, that has entries that are out of bounds. For example

>> A = sprandn (5, 6, 0.1);
>> [~, R] = qr (A)
>> R
R =

Compressed Column Sparse (rows = 5, cols = 6, nnz = 3 [10%])

  (2, 2) -> -0.486301514709148
  (5, 5) -> -0.0638896858969156
  (6, 6) ->  0.290030632873829

Notice the size of the matrix R is 5×6, but it has an element at index (6,6). This matrix crashes the subsequent qr(R) because it contains an element that is out-of-bounds.

So the real bug here is that qr may return an R matrix with an element like this shown above. I don't have the knowledge of the algorithm or the libraries involved to dig further at the moment, someone want to look into this?

Mike Miller <mtmiller>
Project Administrator
Wed 06 Sep 2017 05:50:18 PM UTC, comment #4: 

I can confirm also on the default branch (26ec2e264826). There are actually a couple different ways this error can occur. I sometimes get a SIGSEGV, with a backtrace like this (similar to the original, but with debug information):

#0  0x00007ff436f6e90f in _int_free (av=0x7ff43728eb00 <main_arena>, p=0x555555bb5500, have_lock=0) at malloc.c:4052
#1  0x00007ff43299501e in cs_dl_free (p=p@entry=0x555555bb5510) at ../Source/cs_malloc.c:24
#2  0x00007ff43299354d in cs_dl_idone (p=0x555555bb3630, C=C@entry=0x0, w=0x555555bb5510, ok=1) at ../Source/cs_util.c:101
#3  0x00007ff432992539 in cs_dl_etree (A=A@entry=0x7fffffff9bd0, ata=ata@entry=1) at ../Source/cs_etree.c:29
#4  0x00007ff43299483e in cs_dl_sqr (order=order@entry=0, A=A@entry=0x7fffffff9bd0, qr=qr@entry=1) at ../Source/cs_sqr.c:73
#5  0x00007ff4389a03e1 in octave::math::sparse_qr<SparseMatrix>::sparse_qr_rep::sparse_qr_rep (this=0x5555558bd490, a=..., order=0) at ../liboctave/numeric/sparse-qr.cc:203
#6  0x00007ff4389aae5e in octave::math::sparse_qr<SparseMatrix>::sparse_qr (this=0x7fffffffa7c0, a=..., order=0) at ../liboctave/numeric/sparse-qr.cc:2133
#7  0x00007ff4258023cb in Fqr (args=..., nargout=2) at ../libinterp/dldfcn/qr.cc:295
...

Sometimes it throws a SIGSEGV with a backtrace looking like this:

#0  0x00007fcf1365218f in cs_dl_transpose (A=A@entry=0x7fffffff9bd0, values=values@entry=0) at ../Source/cs_transpose.c:20
#1  0x00007fcf1364ed39 in cs_dl_counts (A=A@entry=0x7fffffff9bd0, parent=0x555555bb3630, post=post@entry=0x555555bc2260, ata=ata@entry=1) at ../Source/cs_counts.c:27
#2  0x00007fcf13651866 in cs_dl_sqr (order=order@entry=0, A=A@entry=0x7fffffff9bd0, qr=qr@entry=1) at ../Source/cs_sqr.c:75
#3  0x00007fcf1965d3e1 in octave::math::sparse_qr<SparseMatrix>::sparse_qr_rep::sparse_qr_rep (this=0x5555558bd490, a=..., order=0) at ../liboctave/numeric/sparse-qr.cc:203
#4  0x00007fcf19667e5e in octave::math::sparse_qr<SparseMatrix>::sparse_qr (this=0x7fffffffa7c0, a=..., order=0) at ../liboctave/numeric/sparse-qr.cc:2133
#5  0x00007fcf064bf3cb in Fqr (args=..., nargout=2) at ../libinterp/dldfcn/qr.cc:295
...

And sometimes it exits with a SIGABRT with a backtrace looking like this:

#1  0x00007f57a8c0f42a in __GI_abort () at abort.c:89
#2  0x00007f57a8c4bc00 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7f57a8d40d78 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007f57a8c51fc6 in malloc_printerr (action=3, str=0x7f57a8d3d9c9 "realloc(): invalid next size", ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5049
#4  0x00007f57a8c5513c in _int_realloc (av=av@entry=0x7f57a8f72b00 <main_arena>, oldp=oldp@entry=0x555555c30790, oldsize=oldsize@entry=36336, nb=nb@entry=27088) at malloc.c:4290
#5  0x00007f57a8c56719 in __GI___libc_realloc (oldmem=0x555555c307a0, bytes=27080) at malloc.c:3083
#6  0x00007f57a4679051 in cs_dl_realloc (p=0x555555c307a0, n=n@entry=3385, size=size@entry=8, ok=ok@entry=0x7fffffff9b50) at ../Source/cs_malloc.c:32
#7  0x00007f57a46771d9 in cs_dl_sprealloc (A=A@entry=0x555555c04980, nzmax=3385, nzmax@entry=0) at ../Source/cs_util.c:26
#8  0x00007f57a46766c5 in cs_dl_fkeep (A=0x555555c04980, fkeep=fkeep@entry=0x7f57a46761b0 <cs_nonzero>, other=other@entry=0x0) at ../Source/cs_fkeep.c:23
#9  0x00007f57a46761de in cs_dl_dropzeros (A=<optimized out>) at ../Source/cs_dropzeros.c:8
#10 0x00007f57aa6849b4 in octave::math::sparse_qr<SparseMatrix>::sparse_qr_rep::R (this=0x5555558bd490, econ=econ@entry=false) at ../liboctave/numeric/sparse-qr.cc:281
#11 0x00007f57aa68ef8f in octave::math::sparse_qr<SparseMatrix>::R (this=this@entry=0x7fffffffa7c0, econ=econ@entry=false) at ../liboctave/numeric/sparse-qr.cc:2198
#12 0x00007f57974e6413 in Fqr (args=..., nargout=<optimized out>) at ../libinterp/dldfcn/qr.cc:305
...

Mike Miller <mtmiller>
Project Administrator
Wed 06 Sep 2017 04:13:25 PM UTC, comment #3: 

I confirm the problem in 4.2.1. It seems to me that in order to trigger the bug you need r rectangular and with some zeros on the diagonal. I have no problem with

A = sprandn(5, 6, 1);[q r] = qr(A);[q r] = qr(r);

(no zeros on the diagonal of r) or

A = sprandn(5, 5, 0.1);[q r] = qr(A);[q r] = qr(r);

(r is square). But, it is strange to me that I have no problem with

r = sprandn(5, 6, 0.1);r = triu(r);[q r] = qr(r);

It seems that r has to be the result of a qr factorization and not a simple upper triangular rectangular matrix with some zeros on the diagonal. Strange.

Marco Caliari <caliari>
Project Member
Wed 06 Sep 2017 03:41:19 AM UTC, comment #2: 

hg_id = 8e4abfaadd97

it crashes like that when linked to a reference blas;
hangs with 100% cpu load with threaded atlas
runs OK(?) with libopenblas(p).so

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Wed 06 Sep 2017 03:11:08 AM UTC, comment #1: 

I  also get the segfault with hg id = 16fae04366b2
the first run seems to always run and the second time it segfaults.

Doug Stewart <dastew>
Wed 06 Sep 2017 02:50:40 AM UTC, original submission:  

I receive a moderately reliable segfault during a sparse QR factorization.  Sometimes, it takes a few tries, but the following code segfaults Octave for me when a few times:

A=sprandn(50,100,0.1); [q r]=qr(A); [q r]=qr(r);

This gives:

octave:1> A=sprandn(50,100,0.1); [q r]=qr(A); [q r]=qr(r);

      • Error in `/usr/bin/octave-cli-4.2.1': free(): invalid next size (normal): 0x0000004b8670ee90 ***

======= Backtrace: =========
/lib64/libc.so.6(+0x72a78)[0x7fc20a7d7a78]
/lib64/libc.so.6(+0x788d6)[0x7fc20a7dd8d6]
/lib64/libc.so.6(+0x7911e)[0x7fc20a7de11e]
/usr/lib64/libcxsparse.so.0(cs_di_free+0x2d)[0x7fc2072c75cd]
/usr/lib64/libcxsparse.so.0(cs_di_idone+0x3f)[0x7fc2072c56ef]
/usr/lib64/libcxsparse.so.0(cs_di_sqr+0xee)[0x7fc2072c6c8e]
/usr/lib64/octave/4.2.1/liboctave.so.4(_ZN6octave4math9sparse_qrI12SparseMatrixE13sparse_qr_repC1ERKS2_i+0x110)[0x7fc20b9f72d0]
/usr/lib64/octave/4.2.1/liboctave.so.4(_ZN6octave4math9sparse_qrI12SparseMatrixEC1ERKS2_i+0x4d)[0x7fc20ba013bd]
/usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/qr.oct(_Z3FqrRK17octave_value_listi+0x2e3)[0x7fc1fdfa79c3]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN14octave_builtin17do_multi_index_opEiRK17octave_value_listPKNSt7__cxx114listI13octave_lvalueSaIS5_EEE+0x5f5)[0x7fc20cb690f5]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN14octave_builtin7subsrefERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4listI17octave_value_listSaIS9_EEEiPKNS8_I13octave_lvalueSaISE_EEE+0x16b)[0x7fc20cb67beb]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN12octave_value7subsrefERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4listI17octave_value_listSaIS9_EEEiPKNS8_I13octave_lvalueSaISE_EEE+0x39)[0x7fc20cc83289]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN21tree_index_expression6rvalueEiPKNSt7__cxx114listI13octave_lvalueSaIS2_EEE+0xcf6)[0x7fc20cd600b6]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN21tree_multi_assignment6rvalueEi+0x14f)[0x7fc20cd32adf]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN21tree_multi_assignment7rvalue1Ei+0x61)[0x7fc20cd31c01]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN6octave14tree_evaluator15visit_statementER14tree_statement+0x112)[0x7fc20cd46da2]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN6octave14tree_evaluator20visit_statement_listER19tree_statement_list+0x49)[0x7fc20cd45ce9]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN6octave11interpreter9main_loopEv+0x1ac)[0x7fc20d0b156c]
/usr/lib64/octave/4.2.1/liboctinterp.so.4(_ZN6octave11interpreter7executeEv+0x788)[0x7fc20d0b26a8]
/usr/bin/octave-cli-4.2.1(+0x1123)[0x4b8567b123]
/lib64/libc.so.6(__libc_start_main+0xfc)[0x7fc20a78570c]
/usr/bin/octave-cli-4.2.1(+0x1409)[0x4b8567b409]
======= Memory map: ========
4b8567a000-4b8567c000 r-xp 00000000 fd:00 2151318                        /usr/bin/octave-cli-4.2.1
4b8587b000-4b8587c000 r--p 00001000 fd:00 2151318                        /usr/bin/octave-cli-4.2.1
4b8587c000-4b8587d000 rw-p 00002000 fd:00 2151318                        /usr/bin/octave-cli-4.2.1
4b8626c000-4b8675b000 rw-p 00000000 00:00 0                              [heap]
7fc1f8000000-7fc1f8021000 rw-p 00000000 00:00 0
7fc1f8021000-7fc1fc000000 ---p 00000000 00:00 0
7fc1fdf9a000-7fc1fdfb7000 r-xp 00000000 fd:00 2418076                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/qr.oct
7fc1fdfb7000-7fc1fe1b6000 ---p 0001d000 fd:00 2418076                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/qr.oct
7fc1fe1b6000-7fc1fe1b8000 r--p 0001c000 fd:00 2418076                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/qr.oct
7fc1fe1b8000-7fc1fe1b9000 rw-p 0001e000 fd:00 2418076                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/qr.oct
7fc1fe1b9000-7fc1fe1cc000 r-xp 00000000 fd:00 2418099                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/__init_gnuplot__.oct
7fc1fe1cc000-7fc1fe3cc000 ---p 00013000 fd:00 2418099                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/__init_gnuplot__.oct
7fc1fe3cc000-7fc1fe3cd000 r--p 00013000 fd:00 2418099                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/__init_gnuplot__.oct
7fc1fe3cd000-7fc1fe3ce000 rw-p 00014000 fd:00 2418099                    /usr/lib64/octave/4.2.1/oct/x86_64-pc-linux-gnu/__init_gnuplot__.oct
7fc1fe3ce000-7fc1fe775000 r--p 00000000 fd:00 10881272                   /usr/lib64/locale/locale-archive
7fc1fe775000-7fc200776000 rw-p 00000000 00:00 0
7fc200776000-7fc200780000 r-xp 00000000 fd:00 2480693                    /lib64/libnss_files-2.23.so
7fc200780000-7fc200980000 ---p 0000a000 fd:00 2480693                    /lib64/libnss_files-2.23.so
7fc200980000-7fc200981000 r--p 0000a000 fd:00 2480693                    /lib64/libnss_files-2.23.so
7fc200981000-7fc200982000 rw-p 0000b000 fd:00 2480693                    /lib64/libnss_files-2.23.so
7fc200982000-7fc20098d000 r-xp 00000000 fd:00 2480712                    /lib64/libnss_nis-2.23.so
7fc20098d000-7fc200b8c000 ---p 0000b000 fd:00 2480712                    /lib64/libnss_nis-2.23.so
7fc200b8c000-7fc200b8d000 r--p 0000a000 fd:00 2480712                    /lib64/libnss_nis-2.23.so
7fc200b8d000-7fc200b8e000 rw-p 0000b000 fd:00 2480712                    /lib64/libnss_nis-2.23.so
7fc200b8e000-7fc200ba3000 r-xp 00000000 fd:00 2480702                    /lib64/libnsl-2.23.so
7fc200ba3000-7fc200da2000 ---p 00015000 fd:00 2480702                    /lib64/libnsl-2.23.so
7fc200da2000-7fc200da3000 r--p 00014000 fd:00 2480702                    /lib64/libnsl-2.23.so
7fc200da3000-7fc200da4000 rw-p 00015000 fd:00 2480702                    /lib64/libnsl-2.23.so
7fc200da4000-7fc200da6000 rw-p 00000000 00:00 0
7fc200da6000-7fc200dad000 r-xp 00000000 fd:00 2480701                    /lib64/libnss_compat-2.23.so
7fc200dad000-7fc200fac000 ---p 00007000 fd:00 2480701                    /lib64/libnss_compat-2.23.so
7fc200fac000-7fc200fad000 r--p 00006000 fd:00 2480701                    /lib64/libnss_compat-2.23.so
7fc200fad000-7fc200fae000 rw-p 00007000 fd:00 2480701                    /lib64/libnss_compat-2.23.so
7fc200fae000-7fc200fc2000 r-xp 00000000 fd:00 2398771                    /usr/lib64/libbsd.so.0.8.3
7fc200fc2000-7fc2011c2000 ---p 00014000 fd:00 2398771                    /usr/lib64/libbsd.so.0.8.3
7fc2011c2000-7fc2011c3000 r--p 00014000 fd:00 2398771                    /usr/lib64/libbsd.so.0.8.3
7fc2011c3000-7fc2011c4000 rw-p 00015000 fd:00 2398771                    /usr/lib64/libbsd.so.0.8.3
7fc2011c4000-7fc2011c5000 rw-p 00000000 00:00 0
7fc2011c5000-7fc2011ce000 r-xp 00000000 fd:00 2125469                    /usr/lib64/libpciaccess.so.0.11.1
7fc2011ce000-7fc2013ce000 ---p 00009000 fd:00 2125469                    /usr/lib64/libpciaccess.so.0.11.1
7fc2013ce000-7fc2013cf000 r--p 00009000 fd:00 2125469                    /usr/lib64/libpciaccess.so.0.11.1
7fc2013cf000-7fc2013d0000 rw-p 0000a000 fd:00 2125469                    /usr/lib64/libpciaccess.so.0.11.1
7fc2013d0000-7fc2013fa000 r-xp 00000000 fd:00 2148533                    /lib64/libudev.so.1.6.3
7fc2013fa000-7fc2015fa000 ---p 0002a000 fd:00 2148533                    /lib64/libudev.so.1.6.3
7fc2015fa000-7fc2015fb000 r--p 0002a000 fd:00 2148533                    /lib64/libudev.so.1.6.3
7fc2015fb000-7fc2015fc000 rw-p 0002b000 fd:00 2148533                    /lib64/libudev.so.1.6.3
7fc2015fc000-7fc201608000 r-xp 00000000 fd:00 2154637                    /usr/lib64/libnuma.so.1.0.0
7fc201608000-7fc201807000 ---p 0000c000 fd:00 2154637                    /usr/lib64/libnuma.so.1.0.0
7fc201807000-7fc201808000 r--p 0000b000 fd:00 2154637                    /usr/lib64/libnuma.so.1.0.0
7fc201808000-7fc201809000 rw-p 0000c000 fd:00 2154637                    /usr/lib64/libnuma.so.1.0.0
7fc201809000-7fc20180e000 r-xp 00000000 fd:00 2124072                    /usr/lib64/libXdmcp.so.6.0.0
7fc20180e000-7fc201a0e000 ---p 00005000 fd:00 2124072                    /usr/lib64/libXdmcp.so.6.0.0
7fc201a0e000-7fc201a0f000 r--p 00005000 fd:00 2124072                    /usr/lib64/libXdmcp.so.6.0.0
7fc201a0f000-7fc201a10000 rw-p 00006000 fd:00 2124072                    /usr/lib64/libXdmcp.so.6.0.0
7fc201a10000-7fc201a13000 r-xp 00000000 fd:00 2123080                    /usr/lib64/libXau.so.6.0.0
7fc201a13000-7fc201c12000 ---p 00003000 fd:00 2123080                    /usr/lib64/libXau.so.6.0.0
7fc201c12000-7fc201c13000 r--p 00002000 fd:00 2123080                    /usr/lib64/libXau.so.6.0.0
7fc201c13000-7fc201c14000 rw-p 00003000 fd:00 2123080                    /usr/lib64/libXau.so.6.0.0
7fc201c14000-7fc201c16000 r-xp 00000000 fd:00 2143945                    /usr/lib64/libevent_pthreads-2.1.so.6.0.2
7fc201c16000-7fc201e15000 ---p 00002000 fd:00 2143945                    /usr/lib64/libevent_pthreads-2.1.so.6.0.2
7fc201e15000-7fc201e16000 r--p 00001000 fd:00 2143945                    /usr/lib64/libevent_pthreads-2.1.so.6.0.2
7fc201e16000-7fc201e17000 rw-p 00002000 fd:00 2143945                    /usr/lib64/libevent_pthreads-2.1.so.6.0.2
7fc201e17000-7fc201e73000 r-xp 00000000 fd:00 2143966                    /usr/lib64/libevent-2.1.so.6.0.2
7fc201e73000-7fc202072000 ---p 0005c000 fd:00 2143966                    /usr/lib64/libevent-2.1.so.6.0.2
7fc202072000-7fc202074000 r--p 0005b000 fd:00 2143966                    /usr/lib64/libevent-2.1.so.6.0.2
7fc202074000-7fc202075000 rw-p 0005d000 fd:00 2143966                    /usr/lib64/libevent-2.1.so.6.0.2
7fc202075000-7fc2020b3000 r-xp 00000000 fd:00 2161844                    /usr/lib64/libhwloc.so.5.6.8
7fc2020b3000-7fc2022b3000 ---p 0003e000 fd:00 2161844                    /usr/lib64/libhwloc.so.5.6.8
7fc2022b3000-7fc2022b4000 r--p 0003e000 fd:00 2161844                    /usr/lib64/libhwloc.so.5.6.8
7fc2022b4000-7fc2022b5000 rw-p 0003f000 fd:00 2161844                    /usr/lib64/libhwloc.so.5.6.8
7fc2022b5000-7fc2022b7000 r-xp 00000000 fd:00 2481994                    /lib64/libutil-2.23.so
7fc2022b7000-7fc2024b6000 ---p 00002000 fd:00 2481994                    /lib64/libutil-2.23.so
7fc2024b6000-7fc2024b7000 r--p 00001000 fd:00 2481994                    /lib64/libutil-2.23.so
7fc2024b7000-7fc2024b8000 rw-p 00002000 fd:00 2481994                    /lib64/libutil-2.23.so
7fc2024b8000-7fc20254a000 r-xp 00000000 fd:00 2184995                    /usr/lib64/libopen-pal.so.20.2.0
7fc20254a000-7fc20274a000 ---p 00092000 fd:00 2184995                    /usr/lib64/libopen-pal.so.20.2.0
7fc20274a000-7fc20274f000 r--p 00092000 fd:00 2184995                    /usr/lib64/libopen-pal.so.20.2.0
7fc20274f000-7fc202753000 rw-p 00097000 fd:00 2184995                    /usr/lib64/libopen-pal.so.20.2.0
7fc202753000-7fc202759000 rw-p 00000000 00:00 0
7fc202759000-7fc2027dd000 r-xp 00000000 fd:00 2186102                    /usr/lib64/libopen-rte.so.20.1.0
7fc2027dd000-7fc2029dc000 ---p 00084000 fd:00 2186102                    /usr/lib64/libopen-rte.so.20.1.0
7fc2029dc000-7fc2029de000 r--p 00083000 fd:00 2186102                    /usr/lib64/libopen-rte.so.20.1.0
7fc2029de000-7fc2029e1000 rw-p 00085000 fd:00 2186102                    /usr/lib64/libopen-rte.so.20.1.0
7fc2029e1000-7fc2029e2000 rw-p 00000000 00:00 0
7fc2029e2000-7fc202a22000 r-xp 00000000 fd:00 2172689                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libquadmath.so.0.0.0
7fc202a22000-7fc202c21000 ---p 00040000 fd:00 2172689                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libquadmath.so.0.0.0
7fc202c21000-7fc202c22000 r--p 0003f000 fd:00 2172689                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libquadmath.so.0.0.0
7fc202c22000-7fc202c23000 rw-p 00040000 fd:00 2172689                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libquadmath.so.0.0.0
7fc202c23000-7fc202c83000 r-xp 00000000 fd:00 2349536                    /lib64/libncurses.so.6.0
7fc202c83000-7fc202e83000 ---p 00060000 fd:00 2349536                    /lib64/libncurses.so.6.0
7fc202e83000-7fc202e87000 r--p 00060000 fd:00 2349536                    /lib64/libncurses.so.6.0
7fc202e87000-7fc202e88000 rw-p 00064000 fd:00 2349536                    /lib64/libncurses.so.6.0
7fc202e88000-7fc202e8f000 r-xp 00000000 fd:00 2481982                    /lib64/librt-2.23.so
7fc202e8f000-7fc20308e000 ---p 00007000 fd:00 2481982                    /lib64/librt-2.23.so
7fc20308e000-7fc20308f000 r--p 00006000 fd:00 2481982                    /lib64/librt-2.23.so
7fc20308f000-7fc203090000 rw-p 00007000 fd:00 2481982                    /lib64/librt-2.23.so
7fc203090000-7fc203091000 r-xp 00000000 fd:00 2493802                    /usr/lib64/libsuitesparseconfig.so.0.0.0
7fc203091000-7fc203290000 ---p 00001000 fd:00 2493802                    /usr/lib64/libsuitesparseconfig.so.0.0.0
7fc203290000-7fc203291000 r--p 00000000 fd:00 2493802                    /usr/lib64/libsuitesparseconfig.so.0.0.0
7fc203291000-7fc203292000 rw-p 00001000 fd:00 2493802                    /usr/lib64/libsuitesparseconfig.so.0.0.0
7fc203292000-7fc203299000 r-xp 00000000 fd:00 2493959                    /usr/lib64/libcolamd.so.0.0.0
7fc203299000-7fc203498000 ---p 00007000 fd:00 2493959                    /usr/lib64/libcolamd.so.0.0.0
7fc203498000-7fc203499000 r--p 00006000 fd:00 2493959                    /usr/lib64/libcolamd.so.0.0.0
7fc203499000-7fc20349a000 rw-p 00007000 fd:00 2493959                    /usr/lib64/libcolamd.so.0.0.0
7fc20349a000-7fc2034a2000 r-xp 00000000 fd:00 2494062                    /usr/lib64/libamd.so.0.0.0
7fc2034a2000-7fc2036a1000 ---p 00008000 fd:00 2494062                    /usr/lib64/libamd.so.0.0.0
7fc2036a1000-7fc2036a2000 r--p 00007000 fd:00 2494062                    /usr/lib64/libamd.so.0.0.0
7fc2036a2000-7fc2036a3000 rw-p 00008000 fd:00 2494062                    /usr/lib64/libamd.so.0.0.0
7fc2036a3000-7fc2036de000 r-xp 00000000 fd:00 2378507                    /usr/lib64/libpng16.so.16.29.0
7fc2036de000-7fc2038de000 ---p 0003b000 fd:00 2378507                    /usr/lib64/libpng16.so.16.29.0
7fc2038de000-7fc2038df000 r--p 0003b000 fd:00 2378507                    /usr/lib64/libpng16.so.16.29.0
7fc2038df000-7fc2038e0000 rw-p 0003c000 fd:00 2378507                    /usr/lib64/libpng16.so.16.29.0
7fc2038e0000-7fc2038f2000 r-xp 00000000 fd:00 2159125                    /usr/lib64/libdrm.so.2.4.0
7fc2038f2000-7fc203af1000 ---p 00012000 fd:00 2159125                    /usr/lib64/libdrm.so.2.4.0
7fc203af1000-7fc203af2000 r--p 00011000 fd:00 2159125                    /usr/lib64/libdrm.so.2.4.0
7fc203af2000-7fc203af3000 rw-p 00012000 fd:00 2159125                    /usr/lib64/libdrm.so.2.4.0
7fc203af3000-7fc203af8000 r-xp 00000000 fd:00 2133099                    /usr/lib64/libXxf86vm.so.1.0.0
7fc203af8000-7fc203cf7000 ---p 00005000 fd:00 2133099                    /usr/lib64/libXxf86vm.so.1.0.0
7fc203cf7000-7fc203cf8000 r--p 00004000 fd:00 2133099                    /usr/lib64/libXxf86vm.so.1.0.0
7fc203cf8000-7fc203cf9000 rw-p 00005000 fd:00 2133099                    /usr/lib64/libXxf86vm.so.1.0.0
7fc203cf9000-7fc203cfd000 r-xp 00000000 fd:00 2426310                    /usr/lib64/libxcb-dri2.so.0.0.0
7fc203cfd000-7fc203efd000 ---p 00004000 fd:00 2426310                    /usr/lib64/libxcb-dri2.so.0.0.0
7fc203efd000-7fc203efe000 r--p 00004000 fd:00 2426310                    /usr/lib64/libxcb-dri2.so.0.0.0
7fc203efe000-7fc203eff000 rw-p 00005000 fd:00 2426310                    /usr/lib64/libxcb-dri2.so.0.0.0
7fc203eff000-7fc203f1f000 r-xp 00000000 fd:00 2426152                    /usr/lib64/libxcb-glx.so.0.0.0
7fc203f1f000-7fc20411e000 ---p 00020000 fd:00 2426152                    /usr/lib64/libxcb-glx.so.0.0.0
7fc20411e000-7fc204120000 r--p 0001f000 fd:00 2426152                    /usr/lib64/libxcb-glx.so.0.0.0
7fc204120000-7fc204121000 rw-p 00021000 fd:00 2426152                    /usr/lib64/libxcb-glx.so.0.0.0
7fc204121000-7fc204151000 r-xp 00000000 fd:00 2426312                    /usr/lib64/libxcb.so.1.1.0
7fc204151000-7fc204350000 ---p 00030000 fd:00 2426312                    /usr/lib64/libxcb.so.1.1.0
7fc204350000-7fc204351000 r--p 0002f000 fd:00 2426312                    /usr/lib64/libxcb.so.1.1.0
7fc204351000-7fc204352000 rw-p 00030000 fd:00 2426312                    /usr/lib64/libxcb.so.1.1.0
7fc204352000-7fc204353000 r-xp 00000000 fd:00 2420437                    /usr/lib64/libX11-xcb.so.1.0.0
7fc204353000-7fc204552000 ---p 00001000 fd:00 2420437                    /usr/lib64/libX11-xcb.so.1.0.0
7fc204552000-7fc204553000 r--p 00000000 fd:00 2420437                    /usr/lib64/libX11-xcb.so.1.0.0
7fc204553000-7fc204554000 rw-p 00001000 fd:00 2420437                    /usr/lib64/libX11-xcb.so.1.0.0
7fc204554000-7fc204559000 r-xp 00000000 fd:00 2130613                    /usr/lib64/libXfixes.so.3.1.0
7fc204559000-7fc204759000 ---p 00005000 fd:00 2130613                    /usr/lib64/libXfixes.so.3.1.0
7fc204759000-7fc20475a000 r--p 00005000 fd:00 2130613                    /usr/lib64/libXfixes.so.3.1.0
7fc20475a000-7fc20475b000 rw-p 00006000 fd:00 2130613                    /usr/lib64/libXfixes.so.3.1.0
7fc20475b000-7fc20475d000 r-xp 00000000 fd:00 2124357                    /usr/lib64/libXdamage.so.1.1.0
7fc20475d000-7fc20495c000 ---p 00002000 fd:00 2124357                    /usr/lib64/libXdamage.so.1.1.0
7fc20495c000-7fc20495d000 r--p 00001000 fd:00 2124357                    /usr/lib64/libXdamage.so.1.1.0
7fc20495d000-7fc20495e000 rw-p 00002000 fd:00 2124357                    /usr/lib64/libXdamage.so.1.1.0
7fc20495e000-7fc204988000 r-xp 00000000 fd:00 2179608                    /usr/lib64/libglapi.so.0.0.0
7fc204988000-7fc204b87000 ---p 0002a000 fd:00 2179608                    /usr/lib64/libglapi.so.0.0.0
7fc204b87000-7fc204b8b000 r--p 00029000 fd:00 2179608                    /usr/lib64/libglapi.so.0.0.0
7fc204b8b000-7fc204b8c000 rw-p 0002d000 fd:00 2179608                    /usr/lib64/libglapi.so.0.0.0
7fc204b8c000-7fc204b8d000 rw-p 00000000 00:00 0
7fc204b8d000-7fc204b8e000 r-xp 00000000 fd:00 2125583                    /usr/lib64/libxshmfence.so.1.0.0
7fc204b8e000-7fc204d8e000 ---p 00001000 fd:00 2125583                    /usr/lib64/libxshmfence.so.1.0.0
7fc204d8e000-7fc204d8f000 r--p 00001000 fd:00 2125583                    /usr/lib64/libxshmfence.so.1.0.0
7fc204d8f000-7fc204d90000 rw-p 00002000 fd:00 2125583                    /usr/lib64/libxshmfence.so.1.0.0
7fc204d90000-7fc204d96000 r-xp 00000000 fd:00 2426162                    /usr/lib64/libxcb-sync.so.1.0.0
7fc204d96000-7fc204f96000 ---p 00006000 fd:00 2426162                    /usr/lib64/libxcb-sync.so.1.0.0
7fc204f96000-7fc204f97000 r--p 00006000 fd:00 2426162                    /usr/lib64/libxcb-sync.so.1.0.0
7fc204f97000-7fc204f98000 rw-p 00007000 fd:00 2426162                    /usr/lib64/libxcb-sync.so.1.0.0
7fc204f98000-7fc204f9a000 r-xp 00000000 fd:00 2426172                    /usr/lib64/libxcb-present.so.0.0.0
7fc204f9a000-7fc20519a000 ---p 00002000 fd:00 2426172                    /usr/lib64/libxcb-present.so.0.0.0
7fc20519a000-7fc20519b000 r--p 00002000 fd:00 2426172                    /usr/lib64/libxcb-present.so.0.0.0
7fc20519b000-7fc20519c000 rw-p 00003000 fd:00 2426172                    /usr/lib64/libxcb-present.so.0.0.0
7fc20519c000-7fc20519e000 r-xp 00000000 fd:00 2426064                    /usr/lib64/libxcb-dri3.so.0.0.0
7fc20519e000-7fc20539d000 ---p 00002000 fd:00 2426064                    /usr/lib64/libxcb-dri3.so.0.0.0
7fc20539d000-7fc20539e000 r--p 00001000 fd:00 2426064                    /usr/lib64/libxcb-dri3.so.0.0.0
7fc20539e000-7fc20539f000 rw-p 00002000 fd:00 2426064                    /usr/lib64/libxcb-dri3.so.0.0.0
7fc20539f000-7fc2053cb000 r-xp 00000000 fd:00 2398160                    /usr/lib64/libexpat.so.1.6.3
7fc2053cb000-7fc2055ca000 ---p 0002c000 fd:00 2398160                    /usr/lib64/libexpat.so.1.6.3
7fc2055ca000-7fc2055cd000 r--p 0002b000 fd:00 2398160                    /usr/lib64/libexpat.so.1.6.3
7fc2055cd000-7fc2055ce000 rw-p 0002e000 fd:00 2398160                    /usr/lib64/libexpat.so.1.6.3
7fc2055ce000-7fc2055d8000 r-xp 00000000 fd:00 2372783                    /usr/lib64/libltdl.so.7.3.1
7fc2055d8000-7fc2057d8000 ---p 0000a000 fd:00 2372783                    /usr/lib64/libltdl.so.7.3.1
7fc2057d8000-7fc2057d9000 r--p 0000a000 fd:00 2372783                    /usr/lib64/libltdl.so.7.3.1
7fc2057d9000-7fc2057da000 rw-p 0000b000 fd:00 2372783                    /usr/lib64/libltdl.so.7.3.1
7fc2057da000-7fc2057ea000 r-xp 00000000 fd:00 2268706                    /lib64/libbz2.so.1.0.6
7fc2057ea000-7fc2059e9000 ---p 00010000 fd:00 2268706                    /lib64/libbz2.so.1.0.6
7fc2059e9000-7fc2059ea000 r--p 0000f000 fd:00 2268706                    /lib64/libbz2.so.1.0.6
7fc2059ea000-7fc2059eb000 rw-p 00010000 fd:00 2268706                    /lib64/libbz2.so.1.0.6
7fc2059eb000-7fc2059fe000 r-xp 00000000 fd:00 2398573                    /usr/lib64/libXext.so.6.4.0
7fc2059fe000-7fc205bfd000 ---p 00013000 fd:00 2398573                    /usr/lib64/libXext.so.6.4.0
7fc205bfd000-7fc205bfe000 r--p 00012000 fd:00 2398573                    /usr/lib64/libXext.so.6.4.0
7fc205bfe000-7fc205bff000 rw-p 00013000 fd:00 2398573                    /usr/lib64/libXext.so.6.4.0
7fc205bff000-7fc205d2f000 r-xp 00000000 fd:00 2382872                    /usr/lib64/libMagickWand-6.Q16.so.5.0.0
7fc205d2f000-7fc205f2f000 ---p 00130000 fd:00 2382872                    /usr/lib64/libMagickWand-6.Q16.so.5.0.0
7fc205f2f000-7fc205f31000 r--p 00130000 fd:00 2382872                    /usr/lib64/libMagickWand-6.Q16.so.5.0.0
7fc205f31000-7fc205f34000 rw-p 00132000 fd:00 2382872                    /usr/lib64/libMagickWand-6.Q16.so.5.0.0
7fc205f34000-7fc206006000 r-xp 00000000 fd:00 2185641                    /usr/lib64/libmpi.so.20.0.2
7fc206006000-7fc206206000 ---p 000d2000 fd:00 2185641                    /usr/lib64/libmpi.so.20.0.2
7fc206206000-7fc206208000 r--p 000d2000 fd:00 2185641                    /usr/lib64/libmpi.so.20.0.2
7fc206208000-7fc206217000 rw-p 000d4000 fd:00 2185641                    /usr/lib64/libmpi.so.20.0.2
7fc206217000-7fc206229000 rw-p 00000000 00:00 0
7fc206229000-7fc206362000 r-xp 00000000 fd:00 2173160                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgfortran.so.3.0.0
7fc206362000-7fc206562000 ---p 00139000 fd:00 2173160                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgfortran.so.3.0.0
7fc206562000-7fc206564000 r--p 00139000 fd:00 2173160                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgfortran.so.3.0.0
7fc206564000-7fc206565000 rw-p 0013b000 fd:00 2173160                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgfortran.so.3.0.0
7fc206565000-7fc206567000 r-xp 00000000 fd:00 2480555                    /lib64/libdl-2.23.so
7fc206567000-7fc206767000 ---p 00002000 fd:00 2480555                    /lib64/libdl-2.23.so
7fc206767000-7fc206768000 r--p 00002000 fd:00 2480555                    /lib64/libdl-2.23.so
7fc206768000-7fc206769000 rw-p 00003000 fd:00 2480555                    /lib64/libdl-2.23.so
7fc206769000-7fc2067ac000 r-xp 00000000 fd:00 2278573                    /lib64/libpcre.so.1.2.9
7fc2067ac000-7fc2069ab000 ---p 00043000 fd:00 2278573                    /lib64/libpcre.so.1.2.9
7fc2069ab000-7fc2069ac000 r--p 00042000 fd:00 2278573                    /lib64/libpcre.so.1.2.9
7fc2069ac000-7fc2069ad000 rw-p 00043000 fd:00 2278573                    /lib64/libpcre.so.1.2.9
7fc2069ad000-7fc2069f4000 r-xp 00000000 fd:00 2365298                    /lib64/libreadline.so.6.3
7fc2069f4000-7fc206bf4000 ---p 00047000 fd:00 2365298                    /lib64/libreadline.so.6.3
7fc206bf4000-7fc206bf7000 r--p 00047000 fd:00 2365298                    /lib64/libreadline.so.6.3
7fc206bf7000-7fc206bfd000 rw-p 0004a000 fd:00 2365298                    /lib64/libreadline.so.6.3
7fc206bfd000-7fc206bfe000 rw-p 00000000 00:00 0
7fc206bfe000-7fc206c54000 r-xp 00000000 fd:00 2502401                    /usr/lib64/blas/reference/libblas.so.0.0.0
7fc206c54000-7fc206e53000 ---p 00056000 fd:00 2502401                    /usr/lib64/blas/reference/libblas.so.0.0.0
7fc206e53000-7fc206e54000 r--p 00055000 fd:00 2502401                    /usr/lib64/blas/reference/libblas.so.0.0.0
7fc206e54000-7fc206e55000 rw-p 00056000 fd:00 2502401                    /usr/lib64/blas/reference/libblas.so.0.0.0
7fc206e55000-7fc206e6c000 r-xp 00000000 fd:00 2494133                    /usr/lib64/libqrupdate.so.1.1
7fc206e6c000-7fc20706c000 ---p 00017000 fd:00 2494133                    /usr/lib64/libqrupdate.so.1.1
7fc20706c000-7fc20706d000 r--p 00017000 fd:00 2494133                    /usr/lib64/libqrupdate.so.1.1
7fc20706d000-7fc20706e000 rw-p 00018000 fd:00 2494133                    /usr/lib64/libqrupdate.so.1.1
7fc20706e000-7fc2070ba000 r-xp 00000000 fd:00 2496333                    /usr/lib64/libarpack.so.2.0.0
7fc2070ba000-7fc2072ba000 ---p 0004c000 fd:00 2496333                    /usr/lib64/libarpack.so.2.0.0
7fc2072ba000-7fc2072bb000 r--p 0004c000 fd:00 2496333                    /usr/lib64/libarpack.so.2.0.0
7fc2072bb000-7fc2072bc000 rw-p 0004d000 fd:00 2496333                    /usr/lib64/libarpack.so.2.0.0
7fc2072bc000-7fc2072eb000 r-xp 00000000 fd:00 2495520                    /usr/lib64/libcxsparse.so.0.0.0
7fc2072eb000-7fc2074ea000 ---p 0002f000 fd:00 2495520                    /usr/lib64/libcxsparse.so.0.0.0
7fc2074ea000-7fc2074eb000 r--p 0002e000 fd:00 2495520                    /usr/lib64/libcxsparse.so.0.0.0
7fc2074eb000-7fc2074ec000 rw-p 0002f000 fd:00 2495520                    /usr/lib64/libcxsparse.so.0.0.0
7fc2074ec000-7fc207595000 r-xp 00000000 fd:00 2496734                    /usr/lib64/libumfpack.so.0.0.0
7fc207595000-7fc207795000 ---p 000a9000 fd:00 2496734                    /usr/lib64/libumfpack.so.0.0.0
7fc207795000-7fc207796000 r--p 000a9000 fd:00 2496734                    /usr/lib64/libumfpack.so.0.0.0
7fc207796000-7fc207797000 rw-p 000aa000 fd:00 2496734                    /usr/lib64/libumfpack.so.0.0.0
7fc207797000-7fc20784c000 r-xp 00000000 fd:00 2494557                    /usr/lib64/libcholmod.so.0.0.0
7fc20784c000-7fc207a4c000 ---p 000b5000 fd:00 2494557                    /usr/lib64/libcholmod.so.0.0.0
7fc207a4c000-7fc207a4d000 r--p 000b5000 fd:00 2494557                    /usr/lib64/libcholmod.so.0.0.0
7fc207a4d000-7fc207a4e000 rw-p 000b6000 fd:00 2494557                    /usr/lib64/libcholmod.so.0.0.0
7fc207a4e000-7fc207a65000 r-xp 00000000 fd:00 2480667                    /lib64/libpthread-2.23.so
7fc207a65000-7fc207c65000 ---p 00017000 fd:00 2480667                    /lib64/libpthread-2.23.so
7fc207c65000-7fc207c66000 r--p 00017000 fd:00 2480667                    /lib64/libpthread-2.23.so
7fc207c66000-7fc207c67000 rw-p 00018000 fd:00 2480667                    /lib64/libpthread-2.23.so
7fc207c67000-7fc207c6b000 rw-p 00000000 00:00 0
7fc207c6b000-7fc207c91000 r-xp 00000000 fd:00 2173168                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgomp.so.1.0.0
7fc207c91000-7fc207e91000 ---p 00026000 fd:00 2173168                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgomp.so.1.0.0
7fc207e91000-7fc207e92000 r--p 00026000 fd:00 2173168                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgomp.so.1.0.0
7fc207e92000-7fc207e93000 rw-p 00027000 fd:00 2173168                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgomp.so.1.0.0
7fc207e93000-7fc207f8e000 r-xp 00000000 fd:00 2481965                    /lib64/libm-2.23.so
7fc207f8e000-7fc20818d000 ---p 000fb000 fd:00 2481965                    /lib64/libm-2.23.so
7fc20818d000-7fc20818e000 r--p 000fa000 fd:00 2481965                    /lib64/libm-2.23.so
7fc20818e000-7fc20818f000 rw-p 000fb000 fd:00 2481965                    /lib64/libm-2.23.so
7fc20818f000-7fc20865d000 r-xp 00000000 fd:00 2516043                    /usr/lib64/lapack/reference/liblapack.so.0.0.0
7fc20865d000-7fc20885d000 ---p 004ce000 fd:00 2516043                    /usr/lib64/lapack/reference/liblapack.so.0.0.0
7fc20885d000-7fc208860000 r--p 004ce000 fd:00 2516043                    /usr/lib64/lapack/reference/liblapack.so.0.0.0
7fc208860000-7fc208862000 rw-p 004d1000 fd:00 2516043                    /usr/lib64/lapack/reference/liblapack.so.0.0.0
7fc208862000-7fc20896f000 rw-p 00000000 00:00 0
7fc20896f000-7fc208984000 r-xp 00000000 fd:00 2107094                    /usr/lib64/libgl2ps.so.1.3.9
7fc208984000-7fc208b84000 ---p 00015000 fd:00 2107094                    /usr/lib64/libgl2ps.so.1.3.9
7fc208b84000-7fc208b85000 r--p 00015000 fd:00 2107094                    /usr/lib64/libgl2ps.so.1.3.9
7fc208b85000-7fc208b86000 rw-p 00016000 fd:00 2107094                    /usr/lib64/libgl2ps.so.1.3.9
7fc208b86000-7fc208cd6000 r-xp 00000000 fd:00 2420483                    /usr/lib64/libX11.so.6.3.0
7fc208cd6000-7fc208ed5000 ---p 00150000 fd:00 2420483                    /usr/lib64/libX11.so.6.3.0
7fc208ed5000-7fc208ed8000 r--p 0014f000 fd:00 2420483                    /usr/lib64/libX11.so.6.3.0
7fc208ed8000-7fc208edc000 rw-p 00152000 fd:00 2420483                    /usr/lib64/libX11.so.6.3.0
7fc208edc000-7fc208f9b000 r-xp 00000000 fd:00 2391209                    /usr/lib64/libfreetype.so.6.14.0
7fc208f9b000-7fc20919b000 ---p 000bf000 fd:00 2391209                    /usr/lib64/libfreetype.so.6.14.0
7fc20919b000-7fc2091a2000 r--p 000bf000 fd:00 2391209                    /usr/lib64/libfreetype.so.6.14.0
7fc2091a2000-7fc2091a3000 rw-p 000c6000 fd:00 2391209                    /usr/lib64/libfreetype.so.6.14.0
7fc2091a3000-7fc2091e8000 r-xp 00000000 fd:00 2286396                    /usr/lib64/libfontconfig.so.1.9.4
7fc2091e8000-7fc2093e7000 ---p 00045000 fd:00 2286396                    /usr/lib64/libfontconfig.so.1.9.4
7fc2093e7000-7fc2093e9000 r--p 00044000 fd:00 2286396                    /usr/lib64/libfontconfig.so.1.9.4
7fc2093e9000-7fc2093ee000 rw-p 00046000 fd:00 2286396                    /usr/lib64/libfontconfig.so.1.9.4
7fc2093ee000-7fc20947c000 r-xp 00000000 fd:00 2388609                    /usr/lib64/libGLU.so.1.3.1
7fc20947c000-7fc20967b000 ---p 0008e000 fd:00 2388609                    /usr/lib64/libGLU.so.1.3.1
7fc20967b000-7fc20967d000 r--p 0008d000 fd:00 2388609                    /usr/lib64/libGLU.so.1.3.1
7fc20967d000-7fc20967e000 rw-p 0008f000 fd:00 2388609                    /usr/lib64/libGLU.so.1.3.1
7fc20967e000-7fc2096f8000 r-xp 00000000 fd:00 2179607                    /usr/lib64/libGL.so.1.2.0
7fc2096f8000-7fc2098f7000 ---p 0007a000 fd:00 2179607                    /usr/lib64/libGL.so.1.2.0
7fc2098f7000-7fc2098fa000 r--p 00079000 fd:00 2179607                    /usr/lib64/libGL.so.1.2.0
7fc2098fa000-7fc2098fb000 rw-p 0007c000 fd:00 2179607                    /usr/lib64/libGL.so.1.2.0
7fc2098fb000-7fc209912000 r-xp 00000000 fd:00 2372443                    /lib64/libz.so.1.2.11
7fc209912000-7fc209b12000 ---p 00017000 fd:00 2372443                    /lib64/libz.so.1.2.11
7fc209b12000-7fc209b13000 r--p 00017000 fd:00 2372443                    /lib64/libz.so.1.2.11
7fc209b13000-7fc209b14000 rw-p 00018000 fd:00 2372443                    /lib64/libz.so.1.2.11
7fc209b14000-7fc209d72000 r-xp 00000000 fd:00 2386062                    /usr/lib64/libMagickCore-6.Q16.so.5.0.0
7fc209d72000-7fc209f71000 ---p 0025e000 fd:00 2386062                    /usr/lib64/libMagickCore-6.Q16.so.5.0.0
7fc209f71000-7fc209f88000 r--p 0025d000 fd:00 2386062                    /usr/lib64/libMagickCore-6.Q16.so.5.0.0
7fc209f88000-7fc209fc6000 rw-p 00274000 fd:00 2386062                    /usr/lib64/libMagickCore-6.Q16.so.5.0.0
7fc209fc6000-7fc209fe5000 rw-p 00000000 00:00 0
7fc209fe5000-7fc20a081000 r-xp 00000000 fd:00 2386110                    /usr/lib64/libMagick++-6.Q16.so.8.0.0
7fc20a081000-7fc20a281000 ---p 0009c000 fd:00 2386110                    /usr/lib64/libMagick++-6.Q16.so.8.0.0
7fc20a281000-7fc20a286000 r--p 0009c000 fd:00 2386110                    /usr/lib64/libMagick++-6.Q16.so.8.0.0
7fc20a286000-7fc20a287000 rw-p 000a1000 fd:00 2386110                    /usr/lib64/libMagick++-6.Q16.so.8.0.0
7fc20a287000-7fc20a558000 r-xp 00000000 fd:00 2503102                    /usr/lib64/libhdf5.so.10.2.1
7fc20a558000-7fc20a757000 ---p 002d1000 fd:00 2503102                    /usr/lib64/libhdf5.so.10.2.1
7fc20a757000-7fc20a75f000 r--p 002d0000 fd:00 2503102                    /usr/lib64/libhdf5.so.10.2.1
7fc20a75f000-7fc20a763000 rw-p 002d8000 fd:00 2503102                    /usr/lib64/libhdf5.so.10.2.1
7fc20a763000-7fc20a765000 rw-p 00000000 00:00 0
7fc20a765000-7fc20a8ff000 r-xp 00000000 fd:00 2480718                    /lib64/libc-2.23.so
7fc20a8ff000-7fc20aafe000 ---p 0019a000 fd:00 2480718                    /lib64/libc-2.23.so
7fc20aafe000-7fc20ab02000 r--p 00199000 fd:00 2480718                    /lib64/libc-2.23.so
7fc20ab02000-7fc20ab04000 rw-p 0019d000 fd:00 2480718                    /lib64/libc-2.23.so
7fc20ab04000-7fc20ab08000 rw-p 00000000 00:00 0
7fc20ab08000-7fc20ab1d000 r-xp 00000000 fd:00 2173157                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgcc_s.so.1
7fc20ab1d000-7fc20ad1d000 ---p 00015000 fd:00 2173157                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgcc_s.so.1
7fc20ad1d000-7fc20ad1e000 r--p 00015000 fd:00 2173157                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgcc_s.so.1
7fc20ad1e000-7fc20ad1f000 rw-p 00016000 fd:00 2173157                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libgcc_s.so.1
7fc20ad1f000-7fc20af36000 r-xp 00000000 fd:00 2173158                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6.0.21
7fc20af36000-7fc20b136000 ---p 00217000 fd:00 2173158                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6.0.21
7fc20b136000-7fc20b144000 r--p 00217000 fd:00 2173158                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6.0.21
7fc20b144000-7fc20b147000 rw-p 00225000 fd:00 2173158                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6.0.21
7fc20b147000-7fc20b14a000 rw-p 00000000 00:00 0
7fc20b14a000-7fc20c200000 r-xp 00000000 fd:00 2418146                    /usr/lib64/octave/4.2.1/liboctave.so.4.0.0
7fc20c200000-7fc20c400000 ---p 010b6000 fd:00 2418146                    /usr/lib64/octave/4.2.1/liboctave.so.4.0.0
7fc20c400000-7fc20c41c000 r--p 010b6000 fd:00 2418146                    /usr/lib64/octave/4.2.1/liboctave.so.4.0.0
7fc20c41c000-7fc20c41d000 rw-p 010d2000 fd:00 2418146                    /usr/lib64/octave/4.2.1/liboctave.so.4.0.0
7fc20c41d000-7fc20c426000 rw-p 00000000 00:00 0
7fc20c426000-7fc20d52c000 r-xp 00000000 fd:00 2417824                    /usr/lib64/octave/4.2.1/liboctinterp.so.4.0.0
7fc20d52c000-7fc20d72b000 ---p 01106000 fd:00 2417824                    /usr/lib64/octave/4.2.1/liboctinterp.so.4.0.0
7fc20d72b000-7fc20d789000 r--p 01105000 fd:00 2417824                    /usr/lib64/octave/4.2.1/liboctinterp.so.4.0.0
7fc20d789000-7fc20d78d000 rw-p 01163000 fd:00 2417824                    /usr/lib64/octave/4.2.1/liboctinterp.so.4.0.0
7fc20d78d000-7fc20d798000 rw-p 00000000 00:00 0
7fc20d798000-7fc20d7bd000 r-xp 00000000 fd:00 2481710                    /lib64/ld-2.23.so
7fc20d803000-7fc20d97c000 rw-p 00000000 00:00 0
7fc20d9b3000-7fc20d9b4000 rw-p 00000000 00:00 0
7fc20d9b4000-7fc20d9bb000 r--s 00000000 fd:00 10881011                   /usr/lib64/gconv/gconv-modules.cache
7fc20d9bb000-7fc20d9bc000 rw-p 00000000 00:00 0
7fc20d9bc000-7fc20d9bd000 r--p 00024000 fd:00 2481710                    /lib64/ld-2.23.so
7fc20d9bd000-7fc20d9be000 rw-p 00025000 fd:00 2481710                    /lib64/ld-2.23.so
7fc20d9be000-7fc20d9bf000 rw-p 00000000 00:00 0
7fff3786f000-7fff37891000 rw-p 00000000 00:00 0                          [stack]
7fff3796c000-7fff3796f000 r--p 00000000 00:00 0                          [vvar]
7fff3796f000-7fff37971000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
panic: Aborted -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Aborted

Joseph Young <josyoun>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by hardy (Posted a comment)
  • -email is unavailable- added by kehoste (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by caliari (Posted a comment)
  • -email is unavailable- added by dasergatskov (Posted a comment)
  • -email is unavailable- added by dastew (Posted a comment)
  • -email is unavailable- added by josyoun (Submitted the item)
  • -email is unavailable- added by josyoun
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-10-13 mmuetzel Dependencies- => Depends on bugs #57033
    2019-03-06 rik5 Dependencies- => bugs #55831 is dependent
    2018-12-23 mtmiller Carbon-CopyRemoved 80942 => -
    2017-09-06 mtmiller SummarySegfault during a sparse QR factorization => sparse qr may return a malformed sparse matrix R with out of bounds entries
    2017-09-06 mtmiller Severity3 - Normal => 4 - Important
        StatusNone => Confirmed
    2017-09-06 josyoun Carbon-Copy- => Added josyoun

    Back to the top


    Powered by Savane 3.5