Bug#536686: enters an infinite loop

131 views
Skip to first unread message

Stanislav Maslovski

unread,
Jul 12, 2009, 8:50:11 AM7/12/09
to
Package: harminv
Version: 1.3.1-2
Severity: grave

The program eats 100% CPU and never ends, even with this simple data
set given below.

% echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10

The same example works with harminv 1.3.1-1 built against older
libatlas:

% echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10
frequency, decay constant, Q, amplitude, phase, error
-0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02


-- System Information:
Debian Release: squeeze/sid
APT prefers proposed-updates
APT policy: (500, 'proposed-updates'), (500, 'oldstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (100, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages harminv depends on:
pn libatlas3gf-base | libatlas.s <none> (no description available)
ii libatlas3gf-sse2 [liblapack.s 3.6.0-24 Automatically Tuned Linear Algebra
ii libc6 2.9-19 GNU C Library: Shared libraries
ii libgcc1 1:4.4.0-10 GCC support library
ii libgfortran3 4.4.0-10 Runtime library for GNU Fortran ap
ii libharminv2 1.3.1-2 Library for using harminv
ii libstdc++6 4.4.0-10 The GNU Standard C++ Library v3

harminv recommends no packages.

harminv suggests no packages.

-- no debconf information

--
To UNSUBSCRIBE, email to debian-bugs-...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Thorsten Alteholz

unread,
Jul 12, 2009, 1:10:10 PM7/12/09
to
Sorry, but I could not reproduce your bug in my environment:

Versions of packages harminv depends on:

ii libatlas3gf-base [liblapack.s 3.6.0-24 Automatically Tuned Linear Algebra
ii libc6 2.9-12 GNU C Library: Shared libraries
ii libgcc1 1:4.3.3-7 GCC support library
ii libgfortran3 4.3.3-7 Runtime library for GNU Fortran ap


ii libharminv2 1.3.1-2 Library for using harminv

ii liblapack3gf [liblapack.so.3g 3.2.1-1 library of linear algebra routines
ii libstdc++6 4.3.3-7 The GNU Standard C++ Library v3

sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10


frequency, decay constant, Q, amplitude, phase, error
-0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02

So for what reason do you think that it is a problem of harminv and not
of some library?

Thorsten

Stanislav Maslovski

unread,
Jul 13, 2009, 8:00:13 AM7/13/09
to
On Sun, 2009-07-12 at 18:56 +0200, Thorsten Alteholz wrote:
> Sorry, but I could not reproduce your bug in my environment:
>
> Versions of packages harminv depends on:
> ii libatlas3gf-base [liblapack.s 3.6.0-24 Automatically Tuned Linear Algebra
> ii libc6 2.9-12 GNU C Library: Shared libraries
> ii libgcc1 1:4.3.3-7 GCC support library
> ii libgfortran3 4.3.3-7 Runtime library for GNU Fortran ap
> ii libharminv2 1.3.1-2 Library for using harminv
> ii liblapack3gf [liblapack.so.3g 3.2.1-1 library of linear algebra routines
> ii libstdc++6 4.3.3-7 The GNU Standard C++ Library v3
>
> sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10
> frequency, decay constant, Q, amplitude, phase, error
> -0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
> 0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02
>
> So for what reason do you think that it is a problem of harminv and not
> of some library?

Have you read the bug report? The problem is obviously related with a
library, namely with libatlas. Try to install libatlas3gf-sse2 3.6.0-24
(if your CPU supports SSE2) to reproduce the problem. However, what
triggers entering this infinite loop - the bug in the library or
something in harminv - this cannot be judged easily, that is why I
reported this bug first to harminv. From the technical point of view it
can be even a problem of the compiler but I think you do not expect me
to report this bug to gcc folks first?

Btw, meep that uses libharminv internally also has the same problem.

Thorsten Alteholz

unread,
Sep 24, 2009, 1:50:08 PM9/24/09
to

On Mon, 13 Jul 2009, Stanislav Maslovski wrote:
> On Sun, 2009-07-12 at 18:56 +0200, Thorsten Alteholz wrote:
> Have you read the bug report?

Sorry, you are right, I did not read your report carefully enough.

The trouble seems to be in a call to LAPACK function ZGEEV which does not
return. First the results without libatlas3gf-sse2 (lines beginning with
DDD are only in my local version of harminv):

sid-vm:~# apt-get remove libatlas3gf-sse2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libatlas3gf-sse2 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv -v 0-10
# harminv: 11 inputs, dt = 1


frequency, decay constant, Q, amplitude, phase, error

# searching frequency range 0 - 10
# using 100 spectral basis functions, density 0.909091
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end


-0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02

# harminv: 2/2 modes are ok: errs <= 1.000000e-01 and inf * 3.886296e-02
, amps >= 0, -1.000000e+00 * 0.106908, |Q| >= 10

Now the results with libatlas3gf-sse2 installed:

sid-vm:~# apt-get install libatlas3gf-sse2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libatlas3gf-sse2
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/5713kB of archives.
After this operation, 19.2MB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously deselected package libatlas3gf-sse2.
(Reading database ... 101324 files and directories currently installed.)
Unpacking libatlas3gf-sse2 (from .../libatlas3gf-sse2_3.6.0-24_i386.deb) ...
Setting up libatlas3gf-sse2 (3.6.0-24) ...

sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv -v 0-10
# harminv: 11 inputs, dt = 1


frequency, decay constant, Q, amplitude, phase, error

# searching frequency range 0 - 10
# using 100 spectral basis functions, density 0.909091
DDD harminv.c 497: solve_eigenvects: ZGEEV start


So if you don't mind, the harminv bug can be closed and reopened for
libatlas3gf-sse2

Thorsten

Reply all
Reply to author
Forward
0 new messages