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

Reply via email to