Bug 1356207

Summary: SuperLUMT FTBFS on aarch64 epel7
Product: [Fedora] Fedora EPEL Reporter: D. Marlin <dmarlin>
Component: SuperLUMTAssignee: Antonio T. (sagitter) <anto.trande>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: anto.trande, nonamedotc, pbrobinson
Target Milestone: ---   
Target Release: ---   
Hardware: aarch64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-08-23 12:54:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1285484    

Description D. Marlin 2016-07-13 17:00:19 UTC
Description of problem:

SuperLUMT fails to build from source for Fedora EPEL7 on RHELSA-7.2.


Version-Release number of selected component (if applicable):

SuperLUMT-3.1.0-6.el7


How reproducible:

consistently


Steps to Reproduce:
1.  On a RHELSA-7.2 host:
    mock rebuild SuperLUMT-3.1.0-6.el7.src.rpm
2.
3.

Actual results:

    :
~/build/BUILD/SuperLU_MT_3.1/EXAMPLE ~/build/BUILD/SuperLU_MT_3.1
+ cd /builddir/build/BUILD
+ cd SuperLU_MT_3.1
+ pushd EXAMPLE
+ export LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-6.aabs.1.el7.aarch64/usr/lib64:/usr/lib64
+ LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-6.aabs.1.el7.aarch64/usr/lib64:/usr/lib64
+ ./pslinsol -p 2
Title: 32-bit adder, from Steve Hamm (Motorola) hamm.mot.com       Key: add32
Dimension     4960x    4960; # nonzeros    23884
Use minimum degree ordering on A'*A.
Factor time  =     0.01
Factor flops = 1.480820e+05     Mflops =    25.97
Solve time   =     0.00
Solve flops = 7.297400e+04      Mflops =   165.09
||X - Xtrue||/||X|| = 1.609323e-06
#NZ in factor L =    21442
#NZ in factor U =    20005
#NZ in L+U =    36487
L\U MB 0.482    total MB needed 3.396   expansions        0
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.GNQvkU (%check)
    Bad exit status from /var/tmp/rpm-tmp.GNQvkU (%check)
Child return code was: 1
EXCEPTION: [Error()]
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mockbuild/trace_decorator.py", line 88, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.7/site-packages/mockbuild/util.py", line 547, in do
    raise exception.Error("Command failed. See logs for output.\n # %s" % (command,), child.returncode)
Error: Command failed. See logs for output.
 # bash --login -c /usr/bin/rpmbuild -bb --target aarch64 --nodeps /builddir/build/SPECS/SuperLUMT.spec


Expected results:

builds without errors.


Additional info:

This package is ExclusiveArch: x86_64 %{ix86} armv7hl, according to the changelog:

 - Set ExclusiveArch because of openblas

but openblas now builds for ppc64le:

  http://koji.fedoraproject.org/koji/buildinfo?buildID=753900

and a patch has been submitted so it builds for AArch64 as well.  Using a test build of openblas to meet the dependency, I tried building SuperLUMT for AArch64.  Everything seemed to go well until the EXAMPLE (above).

I'm not sure what the actual error is, but I have a test setup where I can collect additional information or try patches, if that would be helpful.

Comment 1 Antonio T. (sagitter) 2016-07-14 09:36:19 UTC
(In reply to D. Marlin from comment #0)
> Description of problem:
> 
> SuperLUMT fails to build from source for Fedora EPEL7 on RHELSA-7.2.
> 
> 
> Version-Release number of selected component (if applicable):
> 
> SuperLUMT-3.1.0-6.el7
> 
> 
> How reproducible:
> 
> consistently
> 
> 
> Steps to Reproduce:
> 1.  On a RHELSA-7.2 host:
>     mock rebuild SuperLUMT-3.1.0-6.el7.src.rpm
> 2.
> 3.
> 
> Actual results:
> 
>     :
> ~/build/BUILD/SuperLU_MT_3.1/EXAMPLE ~/build/BUILD/SuperLU_MT_3.1
> + cd /builddir/build/BUILD
> + cd SuperLU_MT_3.1
> + pushd EXAMPLE
> + export
> LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-6.aabs.1.el7.
> aarch64/usr/lib64:/usr/lib64
> +
> LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-6.aabs.1.el7.
> aarch64/usr/lib64:/usr/lib64
> + ./pslinsol -p 2
> Title: 32-bit adder, from Steve Hamm (Motorola) hamm.mot.com    
> Key: add32
> Dimension     4960x    4960; # nonzeros    23884
> Use minimum degree ordering on A'*A.
> Factor time  =     0.01
> Factor flops = 1.480820e+05     Mflops =    25.97
> Solve time   =     0.00
> Solve flops = 7.297400e+04      Mflops =   165.09
> ||X - Xtrue||/||X|| = 1.609323e-06
> #NZ in factor L =    21442
> #NZ in factor U =    20005
> #NZ in L+U =    36487
> L\U MB 0.482    total MB needed 3.396   expansions        0
> RPM build errors:
> error: Bad exit status from /var/tmp/rpm-tmp.GNQvkU (%check)
>     Bad exit status from /var/tmp/rpm-tmp.GNQvkU (%check)
> Child return code was: 1
> EXCEPTION: [Error()]
> Traceback (most recent call last):
>   File "/usr/lib/python2.7/site-packages/mockbuild/trace_decorator.py", line
> 88, in trace
>     result = func(*args, **kw)
>   File "/usr/lib/python2.7/site-packages/mockbuild/util.py", line 547, in do
>     raise exception.Error("Command failed. See logs for output.\n # %s" %
> (command,), child.returncode)
> Error: Command failed. See logs for output.
>  # bash --login -c /usr/bin/rpmbuild -bb --target aarch64 --nodeps
> /builddir/build/SPECS/SuperLUMT.spec
> 
> 

It's a strange behavior, like a missed exit of test. It happens also on ppc64le.

Comment 2 Antonio T. (sagitter) 2016-07-17 12:56:03 UTC
(In reply to Antonio Trande from comment #1)
> (In reply to D. Marlin from comment #0)
> > Description of problem:
> > 
> > SuperLUMT fails to build from source for Fedora EPEL7 on RHELSA-7.2.
> > 
> > 
> > Version-Release number of selected component (if applicable):
> > 
> > SuperLUMT-3.1.0-6.el7
> > 
> > 
> > How reproducible:
> > 
> > consistently
> > 
> > 
> > Steps to Reproduce:
> > 1.  On a RHELSA-7.2 host:
> >     mock rebuild SuperLUMT-3.1.0-6.el7.src.rpm
> > 2.
> > 3.
> > 
> > Actual results:
> > 
> >     :
> > ~/build/BUILD/SuperLU_MT_3.1/EXAMPLE ~/build/BUILD/SuperLU_MT_3.1
> > + cd /builddir/build/BUILD
> > + cd SuperLU_MT_3.1
> > + pushd EXAMPLE
> > + export
> > LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-6.aabs.1.el7.
> > aarch64/usr/lib64:/usr/lib64
> > +
> > LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-6.aabs.1.el7.
> > aarch64/usr/lib64:/usr/lib64
> > + ./pslinsol -p 2
> > Title: 32-bit adder, from Steve Hamm (Motorola) hamm.mot.com    
> > Key: add32
> > Dimension     4960x    4960; # nonzeros    23884
> > Use minimum degree ordering on A'*A.
> > Factor time  =     0.01
> > Factor flops = 1.480820e+05     Mflops =    25.97
> > Solve time   =     0.00
> > Solve flops = 7.297400e+04      Mflops =   165.09
> > ||X - Xtrue||/||X|| = 1.609323e-06
> > #NZ in factor L =    21442
> > #NZ in factor U =    20005
> > #NZ in L+U =    36487
> > L\U MB 0.482    total MB needed 3.396   expansions        0
> > RPM build errors:
> > error: Bad exit status from /var/tmp/rpm-tmp.GNQvkU (%check)
> >     Bad exit status from /var/tmp/rpm-tmp.GNQvkU (%check)
> > Child return code was: 1
> > EXCEPTION: [Error()]
> > Traceback (most recent call last):
> >   File "/usr/lib/python2.7/site-packages/mockbuild/trace_decorator.py", line
> > 88, in trace
> >     result = func(*args, **kw)
> >   File "/usr/lib/python2.7/site-packages/mockbuild/util.py", line 547, in do
> >     raise exception.Error("Command failed. See logs for output.\n # %s" %
> > (command,), child.returncode)
> > Error: Command failed. See logs for output.
> >  # bash --login -c /usr/bin/rpmbuild -bb --target aarch64 --nodeps
> > /builddir/build/SPECS/SuperLUMT.spec
> > 
> > 
> 
> It's a strange behavior, like a missed exit of test. It happens also on
> ppc64le.


It looks a memory issue but I fear that upstream does not support PPC64 and ARM64 architectures.
If you have a patch feel free to post.

+ cd SuperLU_MT_3.1
+ pushd EXAMPLE
+ export LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-7.el7.ppc64le/usr/lib64:/usr/lib64
+ LD_LIBRARY_PATH=/builddir/build/BUILDROOT/SuperLUMT-3.1.0-7.el7.ppc64le/usr/lib64:/usr/lib64
+ valgrind --leak-check=full -v ./pslinsol
==6257== Memcheck, a memory error detector
==6257== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==6257== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==6257== Command: ./pslinsol
==6257== 
--6257-- Valgrind options:
--6257--    --leak-check=full
--6257--    -v
--6257-- Contents of /proc/version:
--6257--   Linux version 4.4.6-300.fc23.ppc64le (mockbuild.fedoraproject.org) (gcc version 5.3.1 20151207 (Red Hat 5.3.1-2) (GCC) ) #1 SMP Wed Mar 23 19:27:26 UTC 2016
--6257-- Arch and hwcaps: PPC64, LittleEndian, ppc64-int-flt-vmx-FX-GX-VX-DFP-ISA2_07
--6257-- Page sizes: currently 65536, max supported 65536
--6257-- Valgrind library directory: /usr/lib64/valgrind
--6257-- Reading syms from /usr/lib64/ld-2.17.so
--6257-- Reading syms from /builddir/build/BUILD/SuperLU_MT_3.1/EXAMPLE/pslinsol
--6257-- Reading syms from /usr/lib64/valgrind/memcheck-ppc64le-linux
--6257--    object doesn't have a symbol table
--6257--    object doesn't have a dynamic symbol table
--6257-- Scheduler: using generic scheduler lock implementation.
--6257-- Reading suppressions file: /usr/lib64/valgrind/default.supp
==6257== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-6257-by-mockbuild-on-
==6257== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-6257-by-mockbuild-on-
==6257== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-6257-by-mockbuild-on-
==6257== 
==6257== TO CONTROL THIS PROCESS USING vgdb (which you probably
==6257== don't want to do, unless you know exactly what you're doing,
==6257== or are doing some strange experiment):
==6257==   /usr/lib64/valgrind/../../bin/vgdb --pid=6257 ...command...
==6257== 
==6257== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==6257==   /path/to/gdb ./pslinsol
==6257== and then give GDB the following command
==6257==   target remote | /usr/lib64/valgrind/../../bin/vgdb --pid=6257
==6257== --pid is optional if only one valgrind process is running
==6257== 
--6257-- REDIR: 0x4024e9c (ld64.so.2:strlen+8) redirected to 0x380a0164 (???)
--6257-- REDIR: 0x4023380 (ld64.so.2:index+8) redirected to 0x380a01a8 (???)
--6257-- Reading syms from /usr/lib64/valgrind/vgpreload_core-ppc64le-linux.so
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /usr/lib64/valgrind/vgpreload_memcheck-ppc64le-linux.so
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /builddir/build/BUILDROOT/SuperLUMT-3.1.0-7.el7.ppc64le/usr/lib64/libsuperlumt_s.so.3.1
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /usr/lib64/libopenblaso-r0.2.18.so
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /usr/lib64/libopenblasp-r0.2.18.so
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /usr/lib64/power8/libm-2.17.so
--6257-- Reading syms from /usr/lib64/power8/libpthread-2.17.so
--6257-- Reading syms from /usr/lib64/libgomp.so.1.0.0
--6257-- ELF section outside all mapped regions
--6257-- Reading syms from /usr/lib64/libgomp.so.1.0.0
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /usr/lib64/power8/libc-2.17.so
--6257-- Reading syms from /usr/lib64/libgcc_s-4.8.5-20150702.so.1
--6257-- ELF section outside all mapped regions
--6257-- Reading syms from /usr/lib64/libgcc_s-4.8.5-20150702.so.1
--6257--    object doesn't have a symbol table
--6257-- Reading syms from /usr/lib64/libgfortran.so.3.0.0
--6257-- ELF section outside all mapped regions
--6257-- Reading syms from /usr/lib64/libgfortran.so.3.0.0
--6257--    object doesn't have a symbol table
--6257-- REDIR: 0x6261cd0 (libc.so.6:strchrnul) redirected to 0x4050808 (_vgnU_ifunc_wrapper)
--6257-- REDIR: 0x6266650 (libc.so.6:memrchr) redirected to 0x4050808 (_vgnU_ifunc_wrapper)
--6257-- REDIR: 0x625c890 (libc.so.6:strlen) redirected to 0x4050808 (_vgnU_ifunc_wrapper)
--6257-- REDIR: 0x625f930 (libc.so.6:memcpy) redirected to 0x4050808 (_vgnU_ifunc_wrapper)
--6257-- REDIR: 0x625e930 (libc.so.6:memset) redirected to 0x4050808 (_vgnU_ifunc_wrapper)
--6257-- REDIR: 0x625c940 (libc.so.6:strnlen) redirected to 0x4050808 (_vgnU_ifunc_wrapper)
--6257-- REDIR: 0x626aa60 (libc.so.6:__memset_power7) redirected to 0x408ca10 (memset)
--6257-- REDIR: 0x62669e0 (libc.so.6:__memcpy_power7) redirected to 0x408a720 (memcpy)
--6257-- REDIR: 0x626c7e0 (libc.so.6:__strlen_power7) redirected to 0x4088050 (strlen)
--6257-- REDIR: 0x625ce28 (libc.so.6:rindex+8) redirected to 0x40874b0 (rindex)
--6257-- REDIR: 0x6255e60 (libc.so.6:calloc) redirected to 0x4086424 (calloc)
--6257-- REDIR: 0x6253fe0 (libc.so.6:malloc) redirected to 0x4083d24 (malloc)
--6257-- REDIR: 0x6253fe8 (libc.so.6:malloc+8) redirected to 0x4083d24 (malloc)
--6257-- REDIR: 0x625e4a8 (libc.so.6:memmove+8) redirected to 0x408caf0 (memmove)
--6257-- REDIR: 0x626d708 (libc.so.6:__GI_strncmp+8) redirected to 0x4088bd0 (__GI_strncmp)
--6257-- REDIR: 0x6254428 (libc.so.6:free+8) redirected to 0x4085314 (free)
--6257-- REDIR: 0x626c040 (libc.so.6:__GI_memchr) redirected to 0x4089fa0 (__GI_memchr)
--6257-- REDIR: 0x626dba0 (libc.so.6:__strchrnul_power7) redirected to 0x408d210 (strchrnul)
--6257-- REDIR: 0x626bd48 (libc.so.6:__GI_mempcpy+8) redirected to 0x408d5a0 (__GI_mempcpy)
--6257-- REDIR: 0x6254420 (libc.so.6:free) redirected to 0x4085314 (free)
--6257-- REDIR: 0x6255190 (libc.so.6:realloc) redirected to 0x408665c (realloc)
Title: 32-bit adder, from Steve Hamm (Motorola) hamm.mot.com       Key: add32   
Dimension     4960x    4960; # nonzeros    23884
Use minimum degree ordering on A'*A.
Factor time  =     0.28
Factor flops = 1.477690e+05	Mflops =     0.54
Solve time   =     0.02
Solve flops = 7.269000e+04	Mflops =     3.50
||X - Xtrue||/||X|| = 1.609323e-06
#NZ in factor L =    21365
#NZ in factor U =    19940
#NZ in L+U =    36345
L\U MB 0.482	total MB needed 2.071	expansions        0
==6257== 
==6257== HEAP SUMMARY:
==6257==     in use at exit: 4,048 bytes in 7 blocks
==6257==   total heap usage: 112 allocs, 105 frees, 16,545,281 bytes allocated
==6257== 
==6257== Searching for pointers to 7 not-freed blocks
==6257== Checked 26,085,784 bytes
==6257== 
==6257== 1,728 bytes in 3 blocks are possibly lost in loss record 4 of 5
==6257==    at 0x40864E4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==6257==    by 0x4019F5B: _dl_allocate_tls (in /usr/lib64/ld-2.17.so)
==6257==    by 0x614976F: pthread_create@@GLIBC_2.17 (in /usr/lib64/power8/libpthread-2.17.so)
==6257==    by 0x6193953: ??? (in /usr/lib64/libgomp.so.1.0.0)
==6257==    by 0x618DEF7: GOMP_parallel_start (in /usr/lib64/libgomp.so.1.0.0)
==6257==    by 0x40C0247: psgstrf (in /builddir/build/BUILDROOT/SuperLUMT-3.1.0-7.el7.ppc64le/usr/lib64/libsuperlumt_s.so.3.1)
==6257==    by 0x40B6BE7: psgssv (in /builddir/build/BUILDROOT/SuperLUMT-3.1.0-7.el7.ppc64le/usr/lib64/libsuperlumt_s.so.3.1)
==6257==    by 0x1000100F: main (pslinsol.c:105)
==6257== 
==6257== LEAK SUMMARY:
==6257==    definitely lost: 0 bytes in 0 blocks
==6257==    indirectly lost: 0 bytes in 0 blocks
==6257==      possibly lost: 1,728 bytes in 3 blocks
==6257==    still reachable: 2,320 bytes in 4 blocks
==6257==         suppressed: 0 bytes in 0 blocks
==6257== Reachable blocks (those to which a pointer was found) are not shown.
==6257== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==6257== 
==6257== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==6257== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
error: Bad exit status from /var/tmp/rpm-tmp.v7H3UB (%check)