DBRepair development

Any chance you could make it support binhex-plexpass docker? My library db is 1.4gb and my blobs one is 4.09 gb. #_# I may need helps lol..

I asked cause I got this error below when attempting to execute it inside my docker container for binhex

Error: Unknown host. Currently supported hosts are: QNAP, Synology, Netgear, Mac, ASUSTOR, WD (OS5) and Linux Workstation/Server

@Jerky_san

NO PROBLEM.

Would you please go into the container and see what PID 1 is?

I am looking for /bin/s6-svscan .

I will gladly add for binhex.

PID1 is → dumb-init

Would you be willing to try this?

I’ve decided to try being swoopy and use cgroup detection. :crossed_fingers:

I’ve not yet pushed this to github.

DBRepair.tar (40 KB)

still gives

Error: Unknown host. Currently supported hosts are: QNAP, Synology, Netgear, Mac, ASUSTOR, WD (OS5) and Linux Workstation/Server
Error: Unknown host. Currently supported hosts are: QNAP, Synology, Netgear, Mac, ASUSTOR, WD (OS5) and Linux Workstation/Server

Please show me the output of

cat /proc/1/cgroup | grep docker

Asking because the detection works here

root@dockerplex:/# cd /config
root@dockerplex:~# ls
DBRepair.sh  Library  plexmediaserver_1.29.2.6273-2b1f0cbcd_amd64.deb  tmp  transcode
root@dockerplex:~# ./DBRepair.sh 
Plex Media Server is currently running, cannot continue.
Please stop Plex Media Server and restart this utility.
root@dockerplex:~# ls /
bin	data  glock	      init		lib32	 libx32  opt		  proc	sbin  tmp	 var
boot	dev   healthcheck.sh  installBinary.sh	lib64	 media	 plex-common.sh   root	srv   transcode  version.txt
config	etc   home	      lib		libexec  mnt	 plex_service.sh  run	sys   usr
root@dockerplex:~# /plex_service.sh -d
root@dockerplex:~# ./DBRepair.sh 
 
 
 
      Plex Media Server Database Repair Utility (Docker)
 
Select
 
  1. Check database
  2. Vacuum database
  3. Reindex database
  4. Attempt database repair
  5. Replace current database with newest usable backup copy
  6. Undo last successful action (Vacuum, Reindex, Repair, or Replace)
  7. Import Viewstate / Watch history from another PMS database
  8. Show logfile
  9. Exit
 
Enter choice: 1
 
Checking the PMS databases
Check complete.  PMS main database is OK.
Check complete.  PMS blobs database is OK.
^C
root@dockerplex:~# grep cgroup DBRepair.sh 
  elif [ "$(grep docker /proc/1/cgroup | wc -l)" -gt 0 ] && [ -d "/config/Library/Application Support" ]; then
root@dockerplex:~# 
 

sh-5.1# cat /proc/1/cgroup | grep docker
13:name=elogind:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
12:pids:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
11:hugetlb:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
10:net_prio:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
9:perf_event:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
8:net_cls:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
7:freezer:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
6:devices:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
5:memory:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
4:blkio:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
3:cpuacct:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
2:cpu:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec
1:cpuset:/docker/e19802544d10cea249765db2cbc12d74492853c9dfb7128c9e2c56b41ea9c9ec

OK… so the detection works fine. It knows it’s in a container.

repeat this? Confirm you have the docker detection?

root@dockerplex:~# grep cgroup DBRepair.sh 
  elif [ "$(grep docker /proc/1/cgroup | wc -l)" -gt 0 ] && [ -d "/config/Library/Application Support" ]; then
root@dockerplex:~# 

Or isn’t /config/Library/Application Support used in binhex ?

sh-5.1# grep cgroup DBRepair.sh
elif [ “$(grep docker /proc/1/cgroup | wc -l)” -gt 0 ] && [ -d “/config/Library/Application Support” ]; then

something isn’t adding up. Do you have /config/Library/Application Support and is it readable by the docker UID ?

not in the root… i’m searching for where it’s located.

So I have /config/Plex Media Server/ which then has

LOL… Just HAD to be different, huh? :rofl:

How should I list this? " BinHex " or “BINHEX” or ???

Guess BINHEX or lowercase binhex :slight_smile: whatevers

Open the code please and look at this block

  # Docker (All docker variants)
  elif [ "$(grep docker /proc/1/cgroup | wc -l)" -gt 0 ] && [ -d "/config/Library/Application Support" ]; then

    PLEX_SQLITE="/usr/lib/plexmediaserver/Plex SQLite"
    AppSuppDir="/config/Library/Application Support"
    PID_FILE="$AppSuppDir/Plex Media Server/plexmediaserver.pid"
    DBDIR="$AppSuppDir/Plex Media Server/Plug-in Support/Databases"
    LOGFILE="$DBDIR/DBRepair.log"
    LOG_TOOL="logger"

    HostType="Docker"
    return 0

Except for AppSuppDir being different, does the rest match inside your container ?

Of importance: /usr/lib/plexmediaserver, logger, PID_FILE

Use PLEX_SQLITE appears to be correct
PID is in the correct location
DBs in correct location

standby please. adjusting for maximum :fire:

It tried to executed(I didn’t have plex stopped) trying to figure out how to force it to stop but does seem to got through the OS checks.

My checks are for the main containers so yeah, at this point, it’ll NOT stop if Plex is running.

I thought you had plex stopped so we could develop this ?

Are there any control scripts at the top (root directory) ?

Is there anything in /etc to launch it ?