SynoCommunity / spksrc

Cross compilation framework to create native packages for the Synology's NAS
https://synocommunity.com
Other
3.02k stars 1.23k forks source link

Radarr loses AppData configuration after package update #5265

Closed mreid-tt closed 2 years ago

mreid-tt commented 2 years ago

Is this a new Bug?

Package Name

radarr

Package Version

20220510-16

Device Model

DS916+

Device Architecture

x86_64

Firmware Version

7.0.1-42218 Update 3

What happened?

Performed a package update from 20210708-15 to 20220510-16 however all configuration, movie and downloader settings are lost.

Reproduction steps

1. Open DSM Package Center
2. For the pending update from 20210708-15 to 20220510-16 click Udpate
3. Wait until complete and then open Radarr

Install Log

/var/packages/radarr/var/radarr_install.log

Thu Apr 22 06:43:26 -04 2021
===> Step preuninst. USER=radarr GROUP=sc-download SHARE_PATH=
Removing service configuration radarr.sc
Thu Apr 22 06:43:44 -04 2021
===> Step postuninst. USER=radarr GROUP=sc-download SHARE_PATH=
Removing user sc-radarr
Thu Apr 22 06:45:07 -04 2021
===> Step preinst. USER=radarr GROUP=sc-download SHARE_PATH=
Thu Apr 22 06:45:13 -04 2021
===> Step postinst. USER=radarr GROUP=sc-download SHARE_PATH=
Installing service configuration /var/packages/radarr/conf/radarr.sc
Adding 'sc-radarr' to 'sc-download'
Group Name: [sc-download]
Group Type: [AUTH_LOCAL]
Group ID:   [65542]
Group Members: 
0:[sc-transmission]
1:[sc-sabnzbd]
2:[sc-lidarr]
3:[sc-nzbdrone]
4:[sc-radarr]
Invoke service_postinst
Granting 'sc-radarr' unix ownership on /volume1/@appstore/radarr/var/.config

Service Log

/var/packages/radarr/var/radarr.log 

Thu May 12 05:35:58 -04 2022
Starting radarr command env HOME=/volume1/@appdata/radarr LD_LIBRARY_PATH=/volume1/@appstore/radarr/lib /volume1/@appstore/radarr/share/Radarr/bin/Radarr 
[Info] Bootstrap: Starting Radarr - /volume1/@appstore/radarr/share/Radarr/bin/Radarr - Version 4.1.0.6175 
[Debug] Bootstrap: Console selected 
[Debug] Microsoft.Extensions.Hosting.Internal.Host: Hosting starting 
[Info] MigrationController: *** Migrating data source=/volume1/@appdata/radarr/.config/Radarr/radarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3 *** 
[Info] MigrationController: *** Migrating data source=/volume1/@appdata/radarr/.config/Radarr/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3 *** 
[Info] Microsoft.Hosting.Lifetime: Now listening on: http://[::]:8310 
[Info] CommandExecutor: Starting 2 threads for tasks. 
[Info] Microsoft.Hosting.Lifetime: Application started. Press Ctrl+C to shut down. 
[Info] Microsoft.Hosting.Lifetime: Hosting environment: Production 
[Info] Microsoft.Hosting.Lifetime: Content root path: /

Other Logs

/var/log/synopkg.log

2022/05/12 05:06:31 download radarr https://packages.synocommunity.com/radarr/16/radarr.v16.f41890%5Bapollolake-avoton-braswell-broadwell-broadwellnk-bromolow-cedarview-denverton-dockerx64-geminilake-grantley-purley-kvmx64-v1000-x86-x86_64%5D.spk?arch=braswell&build=42218 Begin download
2022/05/12 05:06:39 download radarr https://packages.synocommunity.com/radarr/16/radarr.v16.f41890%5Bapollolake-avoton-braswell-broadwell-broadwellnk-bromolow-cedarview-denverton-dockerx64-geminilake-grantley-purley-kvmx64-v1000-x86-x86_64%5D.spk?arch=braswell&build=42218 End download
2022/05/12 05:06:51 upgrade radarr: begin to stop version 20210708-15
2022/05/12 05:06:51 upgrade radarr 20210708-15 Begin start-stop-status stop
2022/05/12 05:06:58 upgrade radarr 20210708-15 End start-stop-status stop ret=[0]
2022/05/12 05:06:58 Release port-config for radarr when 0x0002 (ready)
2022/05/12 05:06:58 Release port-config for radarr when 0x0002 (done)
2022/05/12 05:07:02 upgrade radarr: stop version 20210708-15 successfully, result 0
2022/05/12 05:07:02 upgrade radarr 20210708-15 Begin preupgrade
2022/05/12 05:07:03 upgrade radarr 20210708-15 End preupgrade ret=[0]
2022/05/12 05:07:03 upgrade radarr 20210708-15 Begin preuninst
2022/05/12 05:07:03 upgrade radarr 20210708-15 End preuninst ret=[0]
2022/05/12 05:07:03 Release port-config for radarr when 0x0002 (ready)
2022/05/12 05:07:03 Release port-config for radarr when 0x0002 (done)
2022/05/12 05:07:03 Release systemd-unit for radarr when 0x0002 (ready)
2022/05/12 05:07:03 Release systemd-unit for radarr when 0x0002 (done)
2022/05/12 05:07:03 upgrade radarr 20210708-15 Begin /bin/rm -rf /volume1/@appstore/radarr
2022/05/12 05:08:09 upgrade radarr 20210708-15 End /bin/rm -rf /volume1/@appstore/radarr ret=[0]
2022/05/12 05:08:09 upgrade radarr 20210708-15 Begin /bin/rm -rf /volume1/@apptemp/radarr
2022/05/12 05:08:09 upgrade radarr 20210708-15 End /bin/rm -rf /volume1/@apptemp/radarr ret=[0]
2022/05/12 05:08:09 Release port-config for radarr when 0x0002 (ready)
2022/05/12 05:08:09 Release port-config for radarr when 0x0002 (done)
2022/05/12 05:08:09 upgrade radarr 20210708-15 Begin postuninst
2022/05/12 05:08:09 upgrade radarr 20210708-15 End postuninst ret=[0]
2022/05/12 05:08:09 upgrade radarr: Uninstall 20210708-15 successfully
2022/05/12 05:08:10 upgrade radarr 20220510-16 Begin preinst
2022/05/12 05:08:10 upgrade radarr 20220510-16 End preinst ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mkdir -p /volume1/@appstore/radarr
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mkdir -p /volume1/@appstore/radarr ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/rm -rf /volume1/@appstore/radarr
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/rm -rf /volume1/@appstore/radarr ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/package /volume1/@appstore/radarr
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/package /volume1/@appstore/radarr ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/rm -rf /var/packages/radarr
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/rm -rf /var/packages/radarr ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mkdir -p /var/packages/radarr
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mkdir -p /var/packages/radarr ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/touch /var/packages/radarr/installing
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/touch /var/packages/radarr/installing ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/INFO /var/packages/radarr/INFO
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/INFO /var/packages/radarr/INFO ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/rm -rf /var/packages/radarr/scripts
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/rm -rf /var/packages/radarr/scripts ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/scripts /var/packages/radarr/scripts
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/scripts /var/packages/radarr/scripts ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/rm -rf /var/packages/radarr/WIZARD_UIFILES
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/rm -rf /var/packages/radarr/WIZARD_UIFILES ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/WIZARD_UIFILES /var/packages/radarr/WIZARD_UIFILES
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/WIZARD_UIFILES /var/packages/radarr/WIZARD_UIFILES ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/rm -rf /var/packages/radarr/conf
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/rm -rf /var/packages/radarr/conf ret=[0]
2022/05/12 05:08:11 upgrade radarr 20220510-16 Begin /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/conf /var/packages/radarr/conf
2022/05/12 05:08:11 upgrade radarr 20220510-16 End /bin/mv -f /volume1/@tmp/pkginstall/extract.DZx1au/conf /var/packages/radarr/conf ret=[0]
2022/05/12 05:08:13 Acquire systemd-unit for radarr when 0x0002 (ready)
2022/05/12 05:08:14 Acquire systemd-unit for radarr when 0x0002 (done)
2022/05/12 05:08:14 Acquire port-config for radarr when 0x0002 (ready)
2022/05/12 05:08:14 Acquire port-config for radarr when 0x0002 (done)
2022/05/12 05:08:15 upgrade radarr 20220510-16 Begin postinst
2022/05/12 05:08:15 upgrade radarr 20220510-16 End postinst ret=[0]
2022/05/12 05:08:15 upgrade radarr 20220510-16 Begin postupgrade
2022/05/12 05:08:15 upgrade radarr 20220510-16 End postupgrade ret=[0]
2022/05/12 05:08:15 upgrade radarr: begin to start version 20220510-16
2022/05/12 05:08:15 Acquire port-config for radarr when 0x0002 (ready)
2022/05/12 05:08:15 Acquire port-config for radarr when 0x0002 (done)
2022/05/12 05:08:16 upgrade radarr 20220510-16 Begin start-stop-status start
2022/05/12 05:08:20 upgrade radarr 20220510-16 End start-stop-status start ret=[0]
2022/05/12 05:08:21 upgrade radarr: start version 20220510-16 successfully, result 0
2022/05/12 05:08:21 upgrade radarr from 20210708-15 to 20220510-16 successfully
mreid-tt commented 2 years ago

I did a complete search of my NAS using find . -name radarr* but I could not find any of the previous configurations so I am screwed. Primarily, this is because while I did do a manual backup before running the upgrade, I overlooked downloading the backup file to my local machine. Don't do like me and do a backup before any package updates (like in this https://github.com/SynoCommunity/spksrc/issues/4759#issuecomment-894779098):

Within Radarr, create manual backup via System > Backup > Backup Now and download the file (for safety)

mreid-tt commented 2 years ago

As a follow-up I'm back up and running. I was unable to recover the backup I made but I did find a much older one from a year ago which I restored to a test environment. It allowed me to run through the configuration screens to reconfigure the following by manual comparison:

  1. Media Management - Movie Naming format, Import Extra Files extensions, Root Folder
  2. Profiles - Remove unused profiles, Customise selected formats and ordering
  3. Indexers - Add indexer configurations, Configure Restrictions for mandatory/excluded tags
  4. Download Clients - Add SABnzbd download client
  5. Lists - Add TMDb list (really wish we had more IMDB options)
  6. Connections - Add Synology connection and notifications
  7. Metadata - Add Kodi metadata
  8. UI - Calendar date format

After this I was able to perform a Library Import based on the configured root folder. Some of the movies did not readily match and had to be corrected from the selector. Some movies could not be matched and were added manually. Finally, the Activity Queue had to be cleared as it was picking up files already downloaded but could not be processed because they were no longer in the download folder.

I hope this issue can be looked into since I would hate for this to happen to anyone else.

hgy59 commented 2 years ago

@mreid-tt thanks for your reporting. It is difficult to imagine what happens when loosing the configuration on an update. So a first question is: did you initially install radarr on DSM 6 or DSM 7? My guess is malicious migration of the var folder from DSM 6 to DSM 7.

mreid-tt commented 2 years ago

Hi @hgy59, thanks for responding. I was doing a few more tests and have been able to replicate this in my test environment. Installing from a basic DSM 7 deployment the following are the steps:

  1. Download and install (manually) the previous package for radarr (i.e. Version 20210311-15)
  2. Within radarr, update to the latest release (i.e. 4.1.0.6175)
  3. Restore a configuration backup from another server (same version with file name radarr_backup_v4.1.0.6175_*.zip)
  4. Confirm configurations are present
  5. Within the DSM Package Center update from 20210708-15 to 20220510-16
  6. Observe configurations are erased, even after update to the latest release (i.e. 4.1.0.6175)

Looking deeper into the issue I believe it is the same root cause as the other issue https://github.com/SynoCommunity/spksrc/issues/4759 I reported previously. The culprit is the change of path of the configuration directory between these two versions and the directory contents not being correctly migrated. Unlike the previous issue, the old directory is no longer present to be manually recovered https://github.com/SynoCommunity/spksrc/issues/4759#issuecomment-892318387.

This is the System Status screen for package Version 20210311-15:

Screenshot 2022-05-12 at 4 40 23 PM

This is the System Status screen for package Version 20220510-16:

Screenshot 2022-05-12 at 4 32 55 PM

As you will note, the AppData directory has moved which is consistent with the DSM 7 directory location. Unfortunately, the old configuration is not preserved as part of the upgrade.

kcgthb commented 2 years ago

I can confirm that the exact same thing happened to me :(

hgy59 commented 2 years ago

WIP: removed radarr package 20220510-16 in the repository and working on a fix (unfortunately 20210708-15 was not properly updated for DSM 7).

hgy59 commented 2 years ago

@mreid-tt thank you for the detailed analysis 👏

iFredOS commented 2 years ago

I lost everything too!! Thank you very much to this major mistake! Am I suppose to start from scratch after over 6 years!?? I cannot remember everything I configured when everything was flawlessly working until this shit. I cannot hide I’m so 🤬 mad.