Your message dated Sun, 30 Aug 2026 10:38:56 +0300
with message-id 
<CAOU6tAARdC63QQGfY8C8vc0D=rpesrqph2bwzdgmdwj3qp9...@mail.gmail.com>
and subject line Re: [debian-mysql] Bug#1136531: mariadb uses pidof but does 
not depend on procps
has caused the Debian Bug report #1136531,
regarding mariadb uses pidof but does not depend on procps
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1136531: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1136531
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
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 "\nStack trace of $1"
    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 "$pid" ]; 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 "pidof"
        pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
             pidof -o $$ -o $PPID -o %PPID -x ${base}`
        if [ -n "$pid" ]; then
                echo $"${base} (pid $pid) is running..."


path: 
mariadb_1:11.8.6-3/storage/columnstore/columnstore/versioning/BRM/script-fcns
        if [ -z "$pid" ]; 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 >> $LOG_FILE
        kill -9 $(pidof $PROGS) > /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 >> $LOG_FILE
        kill $(pidof $PROGS) > /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 "$(pidof $PROGS)" ]]; then
        # Save BRM only on the primary node now.
        if  [[ ! -z "$(pidof controllernode)" ]]; then
            $MCS_INSTALL_BIN/mcs-savebrm.py &>> $LOG_PREFIX/savebrm.log 2>&1
        fi


path: 
mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/mcs_node_control/custom_dispatchers/container.sh
    echo `date`: Stopping... >> $LOG_FILE
    if  [[ ! -z "$(pidof $PROGS)" ]]; then
        # Save BRM only on the primary node now.
        if  [[ ! -z "$(pidof controllernode)" ]]; 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 "$(pidof StorageManager)" -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 [ "$pm_number" == "1" ];  then
        if [ -z $(pidof "PrimProc") ]; then
            # printf "\n[+] Columnstore offline already";
            mcs_offine=true


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


path: 
mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
  SCNDS=$(mariadb -ABNe "show global status like 'Uptime';" | awk '{print $2}')
  ech0 "Mariadb uptime:            up $(displaytime $SCNDS)"
  CMAPIPID=$(pidof /usr/share/columnstore/cmapi/python/bin/python3)
  if [ "$CMAPIPID" ]; 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) > "$OUTDIR/$EU_FOLDER/eu-DDLProc.txt" ;
  $eu -p $(pidof mariadbd) > "$OUTDIR/$EU_FOLDER/eu-mariadbd.txt" ;
  $eu -p $(pidof WriteEngineServer) > 
"$OUTDIR/$EU_FOLDER/eu-WriteEngineServer.txt" ;
  $eu -p $(pidof controllernode) > "$OUTDIR/$EU_FOLDER/eu-controllernode.txt" ;
  $eu -p $(pidof workernode) > "$OUTDIR/$EU_FOLDER/eu-workernode.txt" ;


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 "DMLProc uptime:            up $(displaytime $DMLPROC_UPTIME)"
  fi  
  DDLPROCPID=$(pidof /usr/bin/DDLProc)
  if [ "$DDLPROCPID" ]; 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 "WriteEngineServer uptime:  up $(displaytime 
$WRITEENGINESERVER_UPTIME)"
  fi
  DMLPROCPID=$(pidof /usr/bin/DMLProc)
  if [ "$DMLPROCPID" ]; 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 "Workernode uptime:         up $(displaytime $WORKERNODE_UPTIME)"
  fi  
  CONTROLLERNODEPID=$(pidof /usr/bin/controllernode)
  if [ "$CONTROLLERNODEPID" ]; 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 "Primproc uptime:           up $(displaytime $PRIMPROC_UPTIME)"
  fi  
  EXEMGRPID=$(pidof /usr/bin/ExeMgr)
  if [ "$EXEMGRPID" ]; 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 "ExeMgr uptime:             up $(displaytime $EXEMGR_UPTIME)"
  fi  
  WRITEENGINESERVERPID=$(pidof /usr/bin/WriteEngineServer)
  if [ "$WRITEENGINESERVERPID" ]; 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 "Cmapi uptime:              up $(displaytime $CMAPI_UPTIME)"
  fi
  WORKERNODEPID=$(pidof /usr/bin/workernode)
  if [ "$WORKERNODEPID" ]; 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) > "$OUTDIR/$EU_FOLDER/eu-PrimProc.txt" ;
  $eu -p $(pidof DMLProc) > "$OUTDIR/$EU_FOLDER/eu-DMLProc.txt" ;
  $eu -p $(pidof DDLProc) > "$OUTDIR/$EU_FOLDER/eu-DDLProc.txt" ;
  $eu -p $(pidof mariadbd) > "$OUTDIR/$EU_FOLDER/eu-mariadbd.txt" ;
  $eu -p $(pidof WriteEngineServer) > 
"$OUTDIR/$EU_FOLDER/eu-WriteEngineServer.txt" ;


path: 
mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/columnstore_review.sh
     echo "Controlernode uptime:      up $(displaytime $CONTROLLERNODE_UPTIME)"
  fi
  PRIMPROCPID=$(pidof /usr/bin/PrimProc)
  if [ "$PRIMPROCPID" ]; 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) > /dev/null
    sleep 3
    kill -9 $(pidof $PROGS) > /dev/null
    clearShm  > /dev/null 2>&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) > /dev/null
    sleep 3
    kill -9 $(pidof $PROGS) > /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 != "indirect" ] &&  ! command -v pidof > /dev/null; then
        handle_failed_dependencies "\n\n[!] Please make sure pidof is installed 
and executable\n\n"


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


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


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


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


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


path: 
mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    if [ "$mode" != "direct" ] && [ "$mode" != "indirect" ] ; then printf 
"\n[!!!] Invalid field --mode: $mode\n"; exit 1; fi
    if [ $mode == "direct" ]; then
        if [ -z $(pidof PrimProc) ] || [ -z $(pidof WriteEngineServer) ]; then 
            printf " - Columnstore is OFFLINE \n"; 
            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 != "indirect" ] &&  ! command -v pidof > /dev/null; then
        handle_failed_dependencies "\n\n[!] Please make sure pidof is installed 
and executable\n\n"
    fi
    


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


path: 
mariadb_1:11.8.6-3/storage/columnstore/columnstore/cmapi/scripts/mcs_backup_manager.sh
    # Detect if columnstore online
    if [ $mode == "direct" ]; then
        if [ -z $(pidof PrimProc) ] || [ -z $(pidof WriteEngineServer) ]; then 
            printf " - Columnstore is OFFLINE \n"; 
            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

--- End Message ---
--- Begin Message ---
Closing this as a false positive from a bulk scan of pidof usage as per below.

On Sat, 23 May 2026 at 08:55, Otto Kekäläinen <[email protected]> wrote:
>
> Hi,
>
> Thanks for analyzing use of pidof and fixing dependencies Debian-wide.
>
> I also ran `grep -rF pidof *` on the mariadb source code, and there is
> one test file using it (binary package mariadb-test-data) and it also
> appears in the collumnstore source, but that is not compiled in
> MariaDB in Debian.
>
> The mariadb-test-data depends on mariadb-test which depends on
> mariadb-server, which in turn has `Pre-Depends: procps`. Hence I don't
> think any changes are needed for now.

--- End Message ---

Reply via email to