Open vepadulano opened 8 months ago
The crash happens on line 2598
of TDecompSparse.cxx
:
w1 = w[ipiv]*a[apos];
because apos = 3493762
but fFact.N = 3493234
Not sure what the best way is to solve this, so pinging @lmoneta
The reproducer is:
#include "TFile.h"
#include "TDecompSparse.h"
void decomp() {
auto f = TFile::Open("/tmp/matrix_fail.root");
f->ls();
TMatrixTSparse<double>* M = (TMatrixTSparse<double>*)f->Get("M");
M->Print();
TVectorT<double>* x = (TVectorT<double>*)f->Get("x");
TDecompSparse solver(*M,0);
Bool_t ok;
TVectorD xx = solver.Solve(*x, ok);
}
Check duplicate issues.
Description
From https://its.cern.ch/jira/browse/ROOT-2927
Dear ROOT,
I am attaching to this message a ROOT file that contains a sparse matrix, and a vector.
Trying to solve the equation formed by the two causes a segfault. The steps to reproduce the problem are the following:
The problem is due to this particular instance of the data: if you change one of the values of the x vector for example, you won't observe the segfault.
I have tried this in two different linux distributions (SL5 and ubuntu karmic) and two different ROOT versions (5.24 and 5.18), both 64 bits.
Reproducer
As per the description
ROOT version
Any
Installation method
Any
Operating system
Any
Additional context
Find input file in the Jira issue