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

[Debian] cppcheck_TensorApproximationAlgorithm_std on armel architecture #2049

Closed
pgrt opened this issue May 14, 2022 · 2 comments
Closed

[Debian] cppcheck_TensorApproximationAlgorithm_std on armel architecture #2049

pgrt opened this issue May 14, 2022 · 2 comments

Comments

@pgrt
Copy link
Contributor

pgrt commented May 14, 2022

Hello,

While packaging version 1.18 for Debian, I stumbled upon the following issue on armel architecture, for cppcheck_TensorApproximationAlgorithm_std:

446/483 Test #450: cppcheck_TensorApproximationAlgorithm_std ........................***Failed 0.56 sec
[32mINF - Build the iso-probabilistic transformation [0m
[32mINF - Same distribution for input vector=ComposedDistribution(Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), IndependentCopula(dimension = 3)) and basis=ComposedDistribution(Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), IndependentCopula(dimension = 3)) [0m
[32mINF - Build the iso-probabilistic transformation [0m
[32mINF - Same distribution for input vector=ComposedDistribution(Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), IndependentCopula(dimension = 3)) and basis=ComposedDistribution(Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), Uniform(a = -1, b = 1), IndependentCopula(dimension = 3)) [0m
[32mINF - Transform the input sample in the measure space if needed [0m
[32mINF - Working on rank=1 over 5 [0m
[32mINF - j=0(j varies from 0 to 2) [0m
[32mINF - j=1(j varies from 0 to 2) [0m
[32mINF - j=2(j varies from 0 to 2) [0m
Segmentation fault

Curiously, the error is showing up only when the test is build with the -O1, -O2 or -O3 flags. A gdb session lead to

Program received signal SIGSEGV, Segmentation fault.
dswap (n=<error reading variable: Cannot access memory at address 0xf1173849>, dx=..., incx=10, dy=..., incy=10) at dswap.f:103
103 dswap.f: No such file or directory.
(gdb) bt
#0 dswap (n=<error reading variable: Cannot access memory at address 0xf1173849>, dx=..., incx=10, dy=..., incy=10) at dswap.f:103
#1 0xb517b3c4 in dbdsdc (uplo=..., compq=..., n=10, d=..., e=..., u=..., ldu=1000, vt=..., ldvt=10, q=..., iq=..., work=..., iwork=..., info=0, _uplo=_uplo@entry=1, _compq=_compq@entry=1) at dbdsdc.f:494
#2 0xb51afde0 in dgesdd (jobz=..., m=1000, n=10, a=..., lda=1000, s=..., u=..., ldu=1000, vt=..., ldvt=10, work=..., lwork=770, iwork=..., info=0, _jobz=-1090528180) at dgesdd.f:803
#3 0xb67a775c in OT::MatrixImplementation::computeSVD (this=, u=..., vT=..., fullSVD=false, fullSVD@entry=248, keepIntact=false, keepIntact@entry=236) at /usr/include/c++/11/bits/stl_vector.h:1043
#4 0xb67a7c08 in OT::Matrix::computeSVD (this=this@entry=0xbeffdd58, u=..., vT=..., fullSVD=fullSVD@entry=false, keepIntact=keepIntact@entry=false) at ./lib/src/Base/Type/Matrix.cxx:254
#5 0xb64079ec in OT::SVDMethod::update (this=this@entry=0x537cf8, addedIndices=..., conservedIndices=..., removedIndices=..., row=row@entry=false) at ./lib/src/Base/Algo/SVDMethod.cxx:114
#6 0xb63fedd4 in OT::SVDMethod::solve (this=0x537cf8, rhs=...) at ./lib/src/Base/Algo/SVDMethod.cxx:129
#7 0xb63f64a0 in OT::LeastSquaresMethod::solve (this=this@entry=0xbeffdf50, rhs=...) at ./lib/src/Base/Algo/LeastSquaresMethod.cxx:92
#8 0xb6bb1a88 in OT::TensorApproximationAlgorithm::rankOne (this=0x4f23b0, this@entry=0x3, x=..., y=warning: can't find linker symbol for virtual table for `OT::Sample' value
..., tensor=..., i=0, i@entry=3204440576, marginalResidual=@0x4d5f40: 0, marginalRelativeError=@0x4ebe90: 0)
at ./lib/src/Uncertainty/Algorithm/MetaModel/TensorApproximation/TensorApproximationAlgorithm.cxx:299
#9 0xb6bdb1ac in OT::TensorApproximationAlgorithm::greedyRankOne (this=0x3, this@entry=0xbefff038, x=..., y=..., tensor=..., marginalResidual=@0x4d5f40: 0, marginalRelativeError=@0x4ebe90: 0)
at ./lib/src/Uncertainty/Algorithm/MetaModel/TensorApproximation/TensorApproximationAlgorithm.cxx:199
#10 0xb6bdd74c in OT::TensorApproximationAlgorithm::runMarginal (this=this@entry=0xbefff038, marginalIndex=3204442156, marginalIndex@entry=0, marginalResidual=@0xbeffe830: 1.516643423598251e-314, marginalRelativeError=<error reading
at ./lib/src/Uncertainty/Algorithm/MetaModel/TensorApproximation/TensorApproximationAlgorithm.cxx:160
#11 0xb6bddf14 in OT::TensorApproximationAlgorithm::run (this=0xbefff038, this@entry=0xbefff030) at ./lib/src/Uncertainty/Algorithm/MetaModel/TensorApproximation/TensorApproximationAlgorithm.cxx:135
#12 0x00418e20 in main () at t_TensorApproximationAlgorithm_std.cxx:54

Hoping this helps...

Best regards,
Pierre

I investigated in a gdb session, and

@jschueller
Copy link
Member

jschueller commented May 16, 2022

we should remove TensorApproximationAlgorithm & co

jschueller added a commit to jschueller/openturns that referenced this issue May 16, 2022
@pgrt
Copy link
Contributor Author

pgrt commented Jul 28, 2022

Hi,

I followed your advice and removed this problematic test, it's fine now.

Best,
Pierre

@pgrt pgrt closed this as completed Jul 28, 2022
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

2 participants