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 ---

