Fix rpmdb: Thread died in Berkeley DB library – Error: rpmdb open failed

If you see rpmdb errors during package management (during yum/rpm operations), like this:

error: rpmdb: BDB0113 Thread/process 24360/139705672034368 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 – (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:Error: rpmdb open failed


Please follow these steps to backup and rebuild rpmdb database:

mkdir /var/lib/rpm/backup
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
rm -f /var/lib/rpm/__db.[0-9][0-9]*
rpm –quiet -qa
rpm –rebuilddb
yum clean all


[Satellite 6] Candlepin and pulp are not starting


  • Satellite is not starting – candlepin and pulp end in FAIL status
candlepin   FAIL    404 Resource Not Found
candlepin_auth  FAIL    Katello::Resources::Candlepin::CandlepinPing: 404 Resource Not Found (GET /candlepin/status)
foreman_tasks   OK  
pulp    FAIL    500 Internal Server Error
pulp_auth   FAIL    Skipped pulp_auth check after failed pulp check


  • Re-run the update based on the documentation with the “–scenario satellite”
# katello-service stop
# satellite-installer --scenario satellite --upgrade

Root Cause

  • Satellite server was updated to latest version with wrong option. Instead of –scenario satellite, –scenario capsule was used.
  • Satellite was updated using yum update, but upgrade script with option –scenario satellite –upgrade was not executed after running yum.


Error when running pulp-manage-db: “This must not be run as root”


  • Unable to run pulp-manage-db command.

It results in the following error:

pulp-manage-db This must not be run as root, but as the same user apache runs as.


The command needs to be executed in the following manner:

# sudo -u apache pulp-manage-db

Important: run that command ONLY when pulp services are stopped. In particular, run:

for i in pulp_resource_manager pulp_workers pulp_celerybeat pulp_streamer; do service $i stop; done

before the pulp-manage-db and start the services after the command completes.


Docker Pull behind Proxy : Get dial tcp: lookup on server misbehaving


The Docker daemon uses the HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environmental variables in its start-up environment to configure HTTP or HTTPS proxy behavior. You cannot configure these environment variables using the daemon.json file.

This example overrides the default docker.service file.

If you are behind an HTTP or HTTPS proxy server, for example in corporate settings, you need to add this configuration in the Docker systemd service file.

Create a systemd drop-in directory for the docker service:


$ sudo mkdir -p /etc/systemd/system/docker.service.d

Create a file called /etc/systemd/system/docker.service.d/http-proxy.conf that adds the HTTP_PROXY environment variable:

[Service] Environment=”HTTP_PROXY=”

Or, if you are behind an HTTPS proxy server, create a file called /etc/systemd/system/docker.service.d/https-proxy.conf that adds the HTTPS_PROXY environment variable:


Flush changes:

sudo systemctl daemon-reload

Restart Docker:

$ sudo systemctl restart docker

Verify that the configuration has been loaded:

$ systemctl show –property=Environment docker

Or, if you are behind an HTTPS proxy server:

$ systemctl show –property=Environment docker



[root@zkwansible01 installer]# docker pull hello-world

Using default tag: latest

Trying to pull repository …

Trying to pull repository …

latest: Pulling from

d1725b59e92d: Pull complete

Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788

Status: Downloaded newer image for

Red Hat/CentOS hard disk partitioning,formatting & updating fstab with UUID

I came to a situation where I need to partitioning, formatting & updating fstab with UUID of 25 servers each having 26 disks in total. If i am doing it manually, it will take ages to complete.

Here is a script which has FOR loop, ARRAY, COUNTER…etc below are the major tasks

  1. read disk names
  2. create mount points
  3. creating the partition using fdisk (noninteractive way)
  4. formatting with XFS
  5. getting UUID and update in fstab
  6. setting block reservation to 0


echo “________HDD__________”
IFS=$’\n’ read -d ” -ra DiskName < <(fdisk -l | grep 800 | egrep -v “GPT|WARNING” | awk ‘{print $2}’ | sed ‘s/://g’)
for i in “${!DiskName[@]}”;do

COUNTER=$(expr $COUNTER + 1)
mkdir -p /data/s$COUNTER
echo -e “o\nn\np\n1\n\n\nw” | fdisk ${DiskName[$i]}
mkfs.xfs $(echo “${DiskName[$i]}1”)
Uuid=$(blkid | grep $(echo “${DiskName[$i]}1”) | awk ‘{print $2}’ | sed ‘s/”//g’)
echo “$Uuid /data/s$COUNTER xfs defaults,noatime 1 2″ >> /etc/fstab
mount /data/s$COUNTER
xfs_io -x -c resblks /data/s$COUNTER

doneIFS=$’\n’ read -d ” -ra ForDiskName < <(fdisk -l | grep 4000 | egrep -v “GPT|WARNING” | awk ‘{print $2}’ | sed ‘s/://g’)
for i in “${!ForDiskName[@]}”;do

ForCOUNTER=$(expr $ForCOUNTER + 1)
mkdir -p /data/$ForCOUNTER
parted -s -a optimal ${ForDiskName[$i]}
mklabel gpt — mkpart primary 512s 100% sleep 2
mkfs.xfs -f $(echo “${ForDiskName[$i]}1”)
Uuid=$(blkid | grep $(echo “${ForDiskName[$i]}1”) | awk ‘{print $2}’ | sed ‘s/”//g’)
echo “$Uuid /data/$ForCOUNTER xfs defaults,noatime 1 2” >> /etc/fstab
mount /data/$ForCOUNTER
xfs_io -x -c resblks /data/$ForCOUNTER


NOTE: copy-paste may add some extra Characters, I Am Not an expert in scripting 🙂


How to connect cisco AnyConnect using openconnect (Script)- ubuntu/fedora

Here i am giving simple script to manage openconnect on linux (cisco AnyVPN) with username and password.This will be helpful if you are running non-supported desktop environment like me,In my case i am using Cinnamon desktop on Ubuntu

Install below packages

# apt install openconnect network-manager-openconnect

and here comes the script content

pidfile=”/tmp/openconnect-pid”case “$1” in
#bad certs
echo “$password” | openconnect -b –pid-file=$pidfile –user=$username $url
cat $pidfile | xargs kill -2
echo “$0 <start|stop>”
exit 1

after that simply execute ./ start or stop


Run webapps from the desktop – Ubuntu

When i switched completely to Linux, the only one thing i was missing is the evernote application. Even i tried Evernote alternative Linux application like NixNote and other’s , it is not giving the performance and usability as i expected.

And finally i found a project called running webapps on desktop .Basically this is a python-Qt application opening the webpage inside that container.

First download the Zip from git and give execute permission to

Install missing dependencies

# apt install libqt5webkit5-dev python3-pyqt5.qtsvg python3-pyqt5.qtwebkit pip python3-pyqt5

start application

$ python3 -u

if this is working, you can try with other web links. Also create shortcut so that this application will be visible in app launcher.

create file evernote.desktop under “/home/<user>/.local/share/applications” with below entries

[Desktop Entry]
Exec=/usr/bin/python3 /usr/sbin/ -u

then give executable permission

# chmod +x evernote.desktop

On this stage your application will be visible on launcher and you can stat with mouse click 🙂

Also you can run qt5webview with desktop notification enabled.

# python -u -c