It seems that there is a bug in dgamx2d.
I hit a segmentation fault when using Parpack 3.1.4 compiled with Scalapack 2.0.2 via clang.
The issue is gone when I compiled the trunk/head version of Scalapack.
Supposedly the bug has been fixed, but I have not seen a topic dedicated to it here.
- Code: Select all
==84000== Invalid read of size 8
==84000== at 0x113B4906F: dgamx2d_ (in /usr/local/Cellar/scalapack/2.0.2_1/lib/libscalapack.dylib)
==84000== by 0x113D121B3: pdlamch_ (in /usr/local/Cellar/scalapack/2.0.2_1/lib/libscalapack.dylib)
==84000== by 0x1149100C3: pdsaup2_ (in /usr/local/Cellar/arpack/3.1.4_1/libexec/lib/libparpack.2.dylib)
==84000== by 0x1288012CF: ???
==84000== by 0x128801A4F: ???
==84000== by 0x128801A4F: ???
==84000== by 0x1287FF06F: ???
==84000== by 0x12880128F: ???
==84000== by 0x12880128F: ???
==84000== by 0xC0000016B: ???
==84000== by 0x7FFF0000016B: ???
==84000== by 0x1287F5C0F: ???
==84000== Address 0x0 is not stack'd, malloc'd or (recently) free’d
- Code: Select all
(lldb) r
Process 87381 stopped
* thread #1: tid = 0x20a531, 0x000000011321d06f libscalapack.dylib`dgamx2d_ + 91, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x000000011321d06f libscalapack.dylib`dgamx2d_ + 91
libscalapack.dylib`dgamx2d_ + 91:
-> 0x11321d06f: movq (%rax,%rdi,8), %r14
0x11321d073: jae 0x11321d079 ; dgamx2d_ + 101
0x11321d075: orb $0x20, %r12b
0x11321d079: movb (%rsi), %dl
p.s.
A segmentation fault (likely the same one) also occurs for GCC 4.8.
Yet, I do not know exactly which version of scalapack and parpack were used in that case
Regards,
Denis

