[SOLVED] Problems with Plinth service start after upgrade and Radicale upgrade

Hi all,

my Freedombox (Stable-Release) is installed on a RasPi2 and has been running for over two years now.

Today something went wrong: I can no longer access the web frontend (ssh is working fine).

journalctl says:

> Jul 08 18:33:18 freedombox systemd[1]: plinth.service: Main process exited, code=exited, status=1/FAILURE
> Jul 08 18:33:18 freedombox systemd[1]: plinth.service: Failed with result 'exit-code'.

/usr/bin/python3 /usr/bin/plinth leads to:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/django/apps/config.py", line 122, in create
    cls = getattr(mod, cls_name)
AttributeError: module 'plinth.modules' has no attribute 'apps'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/plinth", line 21, in <module>
  File "/usr/lib/python3/dist-packages/plinth/__main__.py", line 146, in main
  File "/usr/lib/python3/dist-packages/plinth/web_framework.py", line 164, in init
  File "/usr/lib/python3/dist-packages/django/__init__.py", line 27, in setup
  File "/usr/lib/python3/dist-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/lib/python3/dist-packages/django/apps/config.py", line 127, in create
  File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'plinth.modules.apps'

I already tried to update the system (sudo apt-get update, sudo apt-get dist-upgrade). No success so far.

Thank you for your suggestions.

It looks like your FreedomBox Service (Plinth) got updated to a newer version and somehow the configuration files that are supposed to be removed during the upgrade didn’t get removed. We have dpkg instructions to remove old configuration files that should have done the job:

rm_conffile /etc/plinth/modules-enabled/lib 0.4.3-1~
rm_conffile /etc/plinth/modules-enabled/expert_mode 0.4.3-1~
rm_conffile /etc/plinth/modules-enabled/packages 0.5-1~
rm_conffile /etc/plinth/modules-enabled/xmpp 0.13.0+ds-1~
rm_conffile /etc/plinth/modules-enabled/apps 0.15.1+ds-2~
rm_conffile /etc/plinth/modules-enabled/owncloud 0.15.1+ds-2~
rm_conffile /etc/plinth/modules-enabled/system 0.15.1+ds-2~
rm_conffile /etc/plinth/modules-enabled/disks 0.15.3+ds-1~
rm_conffile /etc/plinth/modules-enabled/udiskie 0.39.0~

Could you please confirm that you now have newer freedombox version due to upgrades (perhaps 19.1) by doing dpkg -l freedombox? Also to workaround your problem please remove any of the above files you find in the /etc/plinth/modules-enabled/directory.

I have version 19.1

This did the trick! Thank you so much!

No I have a new problem: There seems to be a new version of Radicale which is incompatible to the old one. https://radicale.org/1to2/ states that one should export the data with Radicale 1. Unfortunately my system is already upgraded. Is there any way to convert the data after upgrading?

You should be able to manually migrate from Radicale 1 to 2 using the instructions here:

Thank you for your support!

Unfortunately the manual migration guide doesn’t seem to work on stable:

apt install -y python-radicale
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package python-radicale

I finally managed to get radicale 2 up and running with my old data.

What I did:

  1. Download and install python-radicale_1.1.6-4_all.deb manually
  2. Put radicale 1 config file into /etc/radicale
  3. Export data
  4. Uninstall radicale 1
  5. Copy exported data to the data-folder
  6. chmod to radicale:radicale
  7. Put radicale 2 config file into /etc/radicale
1 Like

Good to know it solved. Thanks for posting the solution here.