Bug#637757: libaudio-ecasound-perl: FTBFS on mips

Damyan Ivanov dmn at debian.org
Sat Jan 25 15:55:29 UTC 2014


Control: clone -1 -2
Control: reassign -2 libecasoundc1/2.9.1-1
Control: retitle -2 libecasoundc1: int-cmd-list command fails on mips
Control: block -1 by -2

Dear ecasound maintainers,

It appears there is a problem with ecasound/libecasoundc1 on mips, 
which causes failures in the test suite of libaudio-ecasound-perl, 
making it FTBFS.

I was able to isolate the problem using the following C program:

----------------------------------------->8--
#include <stdio.h>
#include <stdlib.h>
#include <libecasoundc/ecasoundc.h>

void main( int argc, char**argv) {
    eci_init();

    if ( eci_error() ) {
        fprintf( stderr, "init Error: %s\n", eci_last_error() );
        exit(1);
    }

    eci_command("int-cmd-list");
    if ( eci_error() ) {
        fprintf( stderr, "Error: %s\n", eci_last_error() );
        exit(1);
    }

    const char * t = eci_last_type();
    fprintf( stdout, "T=%s\n", t);
    if ( strcmp( t, "S" ) == 0 ) {
        int cnt = eci_last_string_list_count();
        int i;
        for ( i = 0; i < cnt; i++ ) {
            fprintf( stdout, "S[%d]=%s\n", i, eci_last_string_list_item(i) );
        }
    }
    exit(0);
}
----------------------------------------->8--

Compile: `gcc -o ecatest -lecasoundc ecatest.c'
Run: `./ecatest'

Running it on amd64 gives 200 commands as a result, but fails on mips 
(tried on gabrielli.debian.org):

dmn at gabrielli:~$ strace -f -o trace -s 1024 ./ecatest
***********************************************************************
* Message from libecasoundc:
* 
* 'ECASOUND' environment variable not set. Using the default value 
* value 'ECASOUND=ecasound'.
***********************************************************************


(ecasoundc_sa) Error='read() error', cmd='' last_error='' cmd_cnt=1 last_cnt=0.

***********************************************************************
* Message from libecasoundc:
* 
* A null client handle detected. This is usually caused by a bug 
* in the ECI application. Please report this bug to the author of
* the program.
***********************************************************************

Warning: DBC_CHECK failed - "eci_rep != NULL", ecasoundc_sa.c, 876.
$

The first thing that the test suite of libaudio-ecasound-perl does is 
to retrieve the list of the commands, much like the above program, and 
fails with exactly the same message.

The trace ends with:

----------------------------------------->8--
<...lots and lots of clock_gettime lines...>
9070  clock_gettime(CLOCK_MONOTONIC, {1721809, 505245051}) = 0
9070  clock_gettime(CLOCK_MONOTONIC, {1721809, 505448267}) = 0
9070  rt_sigaction(SIGILL, {SIG_DFL, [RT_69 RT_70 RT_71 RT_75 RT_76 RT_77 RT_82 RT_84 RT_87 RT_88 RT_89 
RT_90 RT_91 RT_92 RT_93 RT_94], 0}, NULL, 16) = 0
9070  write(2, "(", 1)                  = 1
9070  write(2, "eca-chainsetup", 14)    = 14
9070  write(2, ") ", 2)                 = 2
9070  write(2, "Chainsetup \"untitled-chainsetup\"", 32) = 32
9070  write(2, "\n", 1)                 = 1
9070  write(2, "(", 1)                  = 1
9070  write(2, "eca-session", 11)       = 11
9070  write(2, ") ", 2)                 = 2
9070  write(2, "NOTE: Unable to create a valid chainsetup from the command-line arguments.", 74) = 74
9070  write(2, "\n", 1)                 = 1
9070  write(2, "ecasound ('h' for help)> ", 25) = 25
9070  fstat64(0, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
9070  old_mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75c7e000
9070  read(0, "debug 256\nint-set-float-to-string-precision 17\nint-output-mode-wellformed\n", 4096) = 74
9070  write(2, "Debug level set to 256.", 23) = 23
9070  write(2, "\n", 1)                 = 1
9070  write(2, "ecasound ('h' for help)> ", 25) = 25
9070  write(2, "ecasound ('h' for help)> ", 25) = 25
9070  fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
9070  old_mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75c6e000
9070  write(1, "256 0 -\r\n\r\n\r\n", 13) = -1 EPIPE (Broken pipe)
9070  write(2, "ecasound ('h' for help)> ", 25) = 25
9070  read(0, "", 4096)                 = 0
9070  write(2, "ecasound ('h' for help)> ", 25) = 25
9070  write(2, "---\necasound: Exiting...", 24) = 24
9070  write(2, "\n", 1)                 = 1
9070  tgkill(9070, 9071, SIGHUP)        = 0
9071  <... rt_sigtimedwait resumed> )   = 1
9071  rt_sigprocmask(SIG_UNBLOCK, [INT QUIT PIPE TERM],  <unfinished ...>
9070  rt_sigprocmask(SIG_UNBLOCK, [INT QUIT PIPE TERM],  <unfinished ...>
9071  <... rt_sigprocmask resumed> NULL, 16) = 0
9070  <... rt_sigprocmask resumed> NULL, 16) = 0
9070  --- SIGPIPE (Broken pipe) @ 0 (0) ---
9071  madvise(0x75c8e000, 8249344, MADV_DONTNEED <unfinished ...>
9070  rt_sigreturn(0xd <unfinished ...>
9071  <... madvise resumed> )           = 0
9071  exit(0)                           = ?
9070  <... rt_sigreturn resumed> )      = 0
9070  exit_group(0)                     = ?
----------------------------------------->8--

I hope this helps to pinpoint the problem.
-- dam



More information about the pkg-perl-maintainers mailing list