[From nobody Sun Aug 30 08:41:08 2026
Received: (at submit) by bugs.debian.org; 13 May 2026 23:29:15 +0000
X-Spam-Checker-Version: SpamAssassin 4.0.1-bugs.debian.org_2005_01_02
 (2024-03-25) on buxtehude.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-104.5 required=4.0 tests=BAYES_00,DKIMWL_WL_HIGH,
 DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,
 FROMDEVELOPER,MISSING_HEADERS,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,
 USER_IN_DKIM_WELCOMELIST autolearn=ham autolearn_force=no
 version=4.0.1-bugs.debian.org_2005_01_02
X-Spam-Bayes: score:0.0000 Tokens: new, 223; hammy, 150; neutral, 165; spammy,
 0. spammytokens:
 hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
 0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
 0.000-+--H*RT:311, 0.000-+--H*RT:108
Return-path: &lt;gioele@debian.org&gt;
Received: from stravinsky.debian.org ([2001:41b8:202:deb::311:108]:37706)
 by buxtehude.debian.org with esmtps
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;gioele@debian.org&gt;) id 1wNJ0t-00CQVc-18
 for submit@bugs.debian.org; Wed, 13 May 2026 23:29:15 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; 
 s=smtpauto.stravinsky;
 h=X-Debian-User:Subject:From:Message-ID:Date:Reply-To:
 To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:
 Content-Description:In-Reply-To:References;
 bh=iS3tGnEq4fLjFnJQWIC2Jh/5hMToMc1de3bYLxyv/9I=; b=tHVsZVSHGTUjICWQpYe+cATbal
 bnIj/phojpWK7TlgM4FfYmG78XEqgxS95UB9+Ku104FdwhdDaml54g2mFFUCb5pNLJ8GYgP3Evp37
 KwrwIRrTbQKGCpUU24qXfTcVoiBEdSWyiHRhq5QakaML7aOJdq9L7jQgctcMNm4cPN/Iwk4szA09W
 ARRTBu51X45xZMV63VWJBve2MIbUVSf2ZF6EEIoIOVPxj0b17muNIKTwTRJN6bvo7eFeREdn3Omtk
 xQzdV6MICu5MFcVv7UrKi1wJJyd3gNiiKbTIwf33tphoyO6DA+xf6noJGkofKJprkMkomWf07Loqr
 Dsfw4YVA==;
Received: from authenticated user by stravinsky.debian.org with esmtpsa
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;gioele@debian.org&gt;) id 1wNJ0r-003WEa-2k
 for submit@bugs.debian.org; Wed, 13 May 2026 23:29:14 +0000
Date: Thu, 14 May 2026 01:29:13 +0200
Message-ID: &lt;c529e863b38006e319023d4f444235b3@debian.org&gt;
From: Gioele Barabucci &lt;gioele@debian.org&gt;
Subject: mariadb uses pidof but does not depend on procps
X-Debian-User: gioele
Delivered-To: submit@bugs.debian.org

Source: mariadb
Version: 1:11.8.6-6
Usertags: pidof-without-procps

Dear maintainer(s) of mariadb,

it appears that mariadb uses `pidof` in its testsuite, or that
at least one of its binary packages uses `pidof` at runtime.
Historically, `pidof` was provided by the Essential package
`sysvinit-tools`, making an explicit dependency unnecessary. However
`pidof` will soon be moved to `procps` and will no longer be part of
the Essential set.

Please add an explicit dependency on `procps`:

* via the `Depends:` field of all binary packages of mariadb
  that use `pidof` at runtime;
* via the `Build-Depends:` field of mariadb, if `pidof` is
  used in tests run at build-time;
* via the `Depends:` field of `debian/control/tests`, if `pidof` is
  used in autopkgtests.

To prevent any disruption for users of mariadb, please add
this dependency now, before `pidof` is moved from `sysvinit-utils` to
`procps`. Alternatively, you could remove all uses of `pidof`.

It is believed that mariadb uses `pidof` due to the following
code snippets:

```
path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/core_dumps/save_stack.sh
    name=$1
    echo &quot;\nStack trace of $1&quot;
    eu-stack -p `pidof $name` -n 0 | tee ${LOG_PATH}/${name}_callstacks.txt
}


path: mariadb_1:11.8.6-3/mysql-test/suite/innodb/t/alter_inplace_perfschema.test
SELECT @final_count - @init_count;
#--exec lsof -p `pidof mysqld`
SET DEBUG_SYNC = 'now SIGNAL gone';


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/versioning/BRM/script-fcns
	fi
	if [ -z &quot;$pid&quot; ]; then
		pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
			pidof -o $$ -o $PPID -o %PPID -x $base`
	fi


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/versioning/BRM/script-fcns
	fi
	pidof -c -o $$ -o $PPID -o %PPID -x $1 || \
		pidof -c -o $$ -o $PPID -o %PPID -x $base
}


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/versioning/BRM/script-fcns
	# First try &quot;pidof&quot;
	pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
	     pidof -o $$ -o $PPID -o %PPID -x ${base}`
	if [ -n &quot;$pid&quot; ]; then
	        echo $&quot;${base} (pid $pid) is running...&quot;


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/versioning/BRM/script-fcns
	if [ -z &quot;$pid&quot; ]; then
		pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
			pidof -o $$ -o $PPID -o %PPID -x $base`
	fi


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/mcs_node_control/custom_dispatchers/container.sh
        done
        echo `date`: Sending SIGKILL &gt;&gt; $LOG_FILE
        kill -9 $(pidof $PROGS) &gt; /dev/null
    fi


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/mcs_node_control/custom_dispatchers/container.sh
        echo `date`: Sending SIGTERM &gt;&gt; $LOG_FILE
        kill $(pidof $PROGS) &gt; /dev/null
        sleep 3
        # Make sure StorageManager had a chance to shutdown clean


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/mcs_node_control/custom_dispatchers/container.sh
    if  [[ ! -z &quot;$(pidof $PROGS)&quot; ]]; then
        # Save BRM only on the primary node now.
        if  [[ ! -z &quot;$(pidof controllernode)&quot; ]]; then
            $MCS_INSTALL_BIN/mcs-savebrm.py &amp;&gt;&gt; $LOG_PREFIX/savebrm.log 2&gt;&amp;1
        fi


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/mcs_node_control/custom_dispatchers/container.sh
    echo `date`: Stopping... &gt;&gt; $LOG_FILE
    if  [[ ! -z &quot;$(pidof $PROGS)&quot; ]]; then
        # Save BRM only on the primary node now.
        if  [[ ! -z &quot;$(pidof controllernode)&quot; ]]; then


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/mcs_node_control/custom_dispatchers/container.sh
        # Make sure StorageManager had a chance to shutdown clean
        counter=1
        while [ -n &quot;$(pidof StorageManager)&quot; -a $counter -le 60 ]
        do
            sleep 1


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/cs_package_manager.sh
    mcs_offine=false
    if [ &quot;$pm_number&quot; == &quot;1&quot; ];  then
        if [ -z $(pidof &quot;PrimProc&quot;) ]; then
            # printf &quot;\n[+] Columnstore offline already&quot;;
            mcs_offine=true


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/cs_package_manager.sh
    if [ &quot;$pm_number&quot; == &quot;1&quot; ];  then
        if [ -n &quot;$(pidof PrimProc)&quot; ]; then
            num_cs_processlist=$(pgrep -f &quot;PrimProc|ExeMgr|DMLProc|DDLProc|WriteEngineServer|StorageManager|controllernode|workernode|save_brm|mcs-loadbrm.py&quot; | wc -l)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  SCNDS=$(mariadb -ABNe &quot;show global status like 'Uptime';&quot; | awk '{print $2}')
  ech0 &quot;Mariadb uptime:            up $(displaytime $SCNDS)&quot;
  CMAPIPID=$(pidof /usr/share/columnstore/cmapi/python/bin/python3)
  if [ &quot;$CMAPIPID&quot; ]; then
    CMAPI_UPTIME=$(ps -p $CMAPIPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  $eu -p $(pidof DDLProc) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-DDLProc.txt&quot; ;
  $eu -p $(pidof mariadbd) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-mariadbd.txt&quot; ;
  $eu -p $(pidof WriteEngineServer) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-WriteEngineServer.txt&quot; ;
  $eu -p $(pidof controllernode) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-controllernode.txt&quot; ;
  $eu -p $(pidof workernode) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-workernode.txt&quot; ;


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
function exists_minimal_columnstore_running() {
  if [ ! $CS_RUNNING ]; then return; fi
  CONTROLLERNODEPID=$(pidof /usr/bin/controllernode)
  WORKERNODEPID=$(pidof /usr/bin/workernode)
  PRIMPROCPID=$(pidof /usr/bin/PrimProc)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo &quot;DMLProc uptime:            up $(displaytime $DMLPROC_UPTIME)&quot;
  fi  
  DDLPROCPID=$(pidof /usr/bin/DDLProc)
  if [ &quot;$DDLPROCPID&quot; ]; then
     DDLPROC_UPTIME=$(ps -p $DDLPROCPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo &quot;WriteEngineServer uptime:  up $(displaytime $WRITEENGINESERVER_UPTIME)&quot;
  fi
  DMLPROCPID=$(pidof /usr/bin/DMLProc)
  if [ &quot;$DMLPROCPID&quot; ]; then
     DMLPROC_UPTIME=$(ps -p $DMLPROCPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  WRITEENGINESERVERPID=$(pidof /usr/bin/WriteEngineServer)
  DMLPROCPID=$(pidof /usr/bin/DMLProc)
  DDLPROCPID=$(pidof /usr/bin/DDLProc)
  EXEMGRPID=$(pidof /usr/bin/ExeMgr)
  if [ $CAN_CONNECT ]; then


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo &quot;Workernode uptime:         up $(displaytime $WORKERNODE_UPTIME)&quot;
  fi  
  CONTROLLERNODEPID=$(pidof /usr/bin/controllernode)
  if [ &quot;$CONTROLLERNODEPID&quot; ]; then
     CONTROLLERNODE_UPTIME=$(ps -p $CONTROLLERNODEPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo &quot;Primproc uptime:           up $(displaytime $PRIMPROC_UPTIME)&quot;
  fi  
  EXEMGRPID=$(pidof /usr/bin/ExeMgr)
  if [ &quot;$EXEMGRPID&quot; ]; then
     EXEMGR_UPTIME=$(ps -p $EXEMGRPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo &quot;ExeMgr uptime:             up $(displaytime $EXEMGR_UPTIME)&quot;
  fi  
  WRITEENGINESERVERPID=$(pidof /usr/bin/WriteEngineServer)
  if [ &quot;$WRITEENGINESERVERPID&quot; ]; then
     WRITEENGINESERVER_UPTIME=$(ps -p $WRITEENGINESERVERPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  WORKERNODEPID=$(pidof /usr/bin/workernode)
  PRIMPROCPID=$(pidof /usr/bin/PrimProc)
  WRITEENGINESERVERPID=$(pidof /usr/bin/WriteEngineServer)
  DMLPROCPID=$(pidof /usr/bin/DMLProc)
  DDLPROCPID=$(pidof /usr/bin/DDLProc)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
    ech0 &quot;Cmapi uptime:              up $(displaytime $CMAPI_UPTIME)&quot;
  fi
  WORKERNODEPID=$(pidof /usr/bin/workernode)
  if [ &quot;$WORKERNODEPID&quot; ]; then
     WORKERNODE_UPTIME=$(ps -p $WORKERNODEPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  $eu -p $(pidof PrimProc) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-PrimProc.txt&quot; ;
  $eu -p $(pidof DMLProc) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-DMLProc.txt&quot; ;
  $eu -p $(pidof DDLProc) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-DDLProc.txt&quot; ;
  $eu -p $(pidof mariadbd) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-mariadbd.txt&quot; ;
  $eu -p $(pidof WriteEngineServer) &gt; &quot;$OUTDIR/$EU_FOLDER/eu-WriteEngineServer.txt&quot; ;


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo &quot;Controlernode uptime:      up $(displaytime $CONTROLLERNODE_UPTIME)&quot;
  fi
  PRIMPROCPID=$(pidof /usr/bin/PrimProc)
  if [ &quot;$PRIMPROCPID&quot; ]; then
     PRIMPROC_UPTIME=$(ps -p $PRIMPROCPID -o etimes | tail -1 | xargs)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  CONTROLLERNODEPID=$(pidof /usr/bin/controllernode)
  WORKERNODEPID=$(pidof /usr/bin/workernode)
  PRIMPROCPID=$(pidof /usr/bin/PrimProc)
  WRITEENGINESERVERPID=$(pidof /usr/bin/WriteEngineServer)
  DMLPROCPID=$(pidof /usr/bin/DMLProc)


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/oam/install_scripts/columnstore-pre-uninstall.in
    kill $(pidof $PROGS) &gt; /dev/null
    sleep 3
    kill -9 $(pidof $PROGS) &gt; /dev/null
    clearShm  &gt; /dev/null 2&gt;&amp;1
fi


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/oam/install_scripts/columnstore-pre-uninstall.in
else
    PROGS='PrimProc ExeMgr DMLProc DDLProc WriteEngineServer StorageManager controllernode workernode'
    kill $(pidof $PROGS) &gt; /dev/null
    sleep 3
    kill -9 $(pidof $PROGS) &gt; /dev/null


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
check_for_dependencies() {
    # Check pidof works
    if [ $mode != &quot;indirect&quot; ] &amp;&amp;  ! command -v pidof &gt; /dev/null; then
        handle_failed_dependencies &quot;\n\n[!] Please make sure pidof is installed and executable\n\n&quot;


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
check_for_dependencies() {
    # Check pidof works
    if [ $mode != &quot;indirect&quot; ] &amp;&amp;  ! command -v pidof &gt; /dev/null; then
        handle_failed_dependencies &quot;\n\n[!] Please make sure pidof is installed and executable\n\n&quot;
    fi


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
{
    if [ $mode == &quot;indirect&quot; ] || $skip_locks; then printf &quot;\n&quot;; return; fi;
    if ! $skip_mdb &amp;&amp; ! pidof mariadbd &gt; /dev/null; then 
        handle_early_exit_on_backup &quot;\n[X] MariaDB is offline ... Needs to be online to issue read only lock and to run mariadb-backup \n\n&quot; true; 
    fi;


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    printf &quot;\nClearing Locks\n&quot;; 
    # Clear MDB Lock 
    if pidof mariadbd &gt; /dev/null &amp;&amp; [ $read_lock ]; then
        printf &quot; - Clearing read-only lock on MariaDB Server ...     &quot;;
        if mariadb -e &quot;UNLOCK TABLES;&quot; &amp;&amp; mariadb -qsNe &quot;set global read_only=$ORIGINAL_READONLY_STATUS;&quot;; then


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    ORIGINAL_READONLY_STATUS=$(mariadb -qsNe &quot;select @@read_only;&quot;)
    # Set MariaDB Server ReadOnly Mode
    if pidof mariadbd &gt; /dev/null; then
        printf &quot; - Issuing read-only lock to MariaDB Server ...      &quot;;
        if mariadb -e &quot;FLUSH TABLES WITH READ LOCK;&quot;; then


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    # Make sure the database is offline
    if [ &quot;$mode&quot; == &quot;direct&quot; ]; then 
        if [ -z $(pidof PrimProc) ]; then 
            printf &quot; - Columnstore Status ...               Offline\n&quot;; 
        else 


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    if [ &quot;$mode&quot; != &quot;direct&quot; ] &amp;&amp; [ &quot;$mode&quot; != &quot;indirect&quot; ] ; then printf &quot;\n[!!!] Invalid field --mode: $mode\n&quot;; exit 1; fi
    if [ $mode == &quot;direct&quot; ]; then
        if [ -z $(pidof PrimProc) ] || [ -z $(pidof WriteEngineServer) ]; then 
            printf &quot; - Columnstore is OFFLINE \n&quot;; 
            export columnstore_online=false; 


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    # Check pidof works
    if [ $mode != &quot;indirect&quot; ] &amp;&amp;  ! command -v pidof &gt; /dev/null; then
        handle_failed_dependencies &quot;\n\n[!] Please make sure pidof is installed and executable\n\n&quot;
    fi
    


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
        fi
        
        if [ -z $(pidof mariadbd) ]; then 
            printf &quot; - MariaDB Server Status ...            Offline\n&quot;; 
        else 


path: mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    # Detect if columnstore online
    if [ $mode == &quot;direct&quot; ]; then
        if [ -z $(pidof PrimProc) ] || [ -z $(pidof WriteEngineServer) ]; then 
            printf &quot; - Columnstore is OFFLINE \n&quot;; 
            export columnstore_online=false; 
```

Feel free to close this issue if this is a false positive (for example
if this code is in an unreachable code path).

Regards,

-- 
Gioele Barabucci
]