[Jack-Devel] Fwd: KDE && jackd flag -l (was: kbiff && zombies)

Matthias Apitz guru at unixarea.de
Sat Jun 6 10:24:07 CEST 2015


I'm an active FreeBSD user and I'm trying to nail down a problem of
zombies caused by KDE components which make use of jack-audio-connection-kit-0.121.3

To get this debugged I have inserted a wrapper script as
/usr/local/bin/jackd which does some logging and calls at the end the
real jackd as jackd.bin (see below). I've stumbled over something in the
source and man page of jackd which I do not understand:

The man page explains the flag -l as for changing the LISTEN port, while
the implementation in the C-source use the flag -l to just print the
actual working directory (/tmp) and do exit(0); see below.

Perhaps, the KDE components do not expect the termination of the forked
jackd server and resulting to state zombie.

Do I misunderstand something stupidly wrong? Thanks for a helping hand.


----- Forwarded message from Matthias Apitz <guru at unixarea.de> -----

Date: Fri, 5 Jun 2015 20:04:53 +0200
From: Matthias Apitz <guru at unixarea.de>
To: Tobias Berner <tcberner at gmail.com>, kde-freebsd at kde.org, multimedia at freebsd.org
Subject: [kde-freebsd] KDE && jackd flag -l (was: kbiff && zombies)

I have modified the shell wrapper script for jackd as:


printf "\nnew jackd call, pid: %d\n" $$ >> /tmp/jackd
echo args: $0 $* >> /tmp/jackd
/usr/local/bin/jackd.bin $* &
echo last pg pid: $! >> /tmp/jackd
ps axl >> /tmp/jackd

and it turns out that all KDE components, already on KDE start the
/usr/local/bin/knotify4, are calling jackd as

	/usr/local/bin/jackd -l

which is fine according the man page of jackd:

    -l, --listen-port int
            The socket port we are listening on for sync
            packets (default: 3000)

but the source of jackd implements with -l only the printout of the
current working directory and exit(0):

                case 'l':                                                                           
                        /* special flag to allow libjack to determine                               
                         * jackd's idea of where tmpdir is */                                       
                        printf ("%s\n", jack_tmpdir);                                               
                        exit (0);

I have search in the KDE sources, without any luck, where 'jackd -l' is
issued to understand the problem; no luck; and for the moment I only can
say that there is some missimplementation, either in KDE or in jackd.

kde-freebsd mailing list
kde-freebsd at kde.org
See also http://freebsd.kde.org/ for latest information

----- End forwarded message -----

Matthias Apitz, guru at unixarea.de, http://www.unixarea.de/ +49-170-4527211    +49-176-38902045
"Wenn der Mensch von den Umständen gebildet wird, so muß man die Umstände menschlich bilden."
"Si el hombre es formado por las circunstancias entonces es necesario formar humanamente
las circunstancias", Karl Marx in Die heilige Familie / La sagrada familia (MEW 2, 138)

More information about the Jackaudio mailing list