Bug 55883 - Update of ucsschool during UCS upgrade from 4 to 5 fails
Update of ucsschool during UCS upgrade from 4 to 5 fails
Status: NEW
Product: UCS
Classification: Unclassified
Component: Update - Release updates
UCS 5.0
Other Linux
: P5 normal (vote)
: ---
Assigned To: UCS maintainers
UCS maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2023-03-16 12:14 CET by Dirk Schnick
Modified: 2023-03-16 12:14 CET (History)
0 users

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk Schnick 2023-03-16 12:14:01 CET
univention-upgrade fails if you upgrade a 4.4 UCS@school system to UCS 5.0 and you directly want to upgrade the ucsschool app during univention-upgrade (what is asked by univention-upgrade):

Starting univention-upgrade. Current UCS version is 5.0-0 errata195

Checking for local repository:                          none
Checking for package updates:                           none
Checking for app updates:                               found

The following apps can be upgraded:

UCS@school: Version 5.0 v1 can be upgraded to 5.0 v3

Starting app upgrade
Do you want to upgrade UCS@school [Y|n]?y

An error occurred - see "/var/log/univention/updater.log" for details

There you will find:
Starting app upgrade                                   Traceback in univention-upgrade:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/univention/updater/scripts/upgrade.py", line 430, in do_update
    update_available = performUpdate(options, checkForUpdates=options.check, silent=False)
  File "/usr/lib/python3/dist-packages/univention/updater/scripts/upgrade.py", line 139, in performUpdate
    if func(options, checkForUpdates, silent):
  File "/usr/lib/python3/dist-packages/univention/updater/scripts/upgrade.py", line 314, in do_app_updates
    pwdfile=options.pwdfile.name if options.pwdfile else None,
  File "/usr/lib/python3/dist-packages/univention/appcenter/actions/__init__.py", line 167, in call_safe
    return cls.call(**kwargs)
  File "/usr/lib/python3/dist-packages/univention/appcenter/actions/__init__.py", line 175, in call
    return obj.call_with_namespace(namespace)
  File "/usr/lib/python3/dist-packages/univention/appcenter/actions/__init__.py", line 181, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python3/dist-packages/univention/appcenter/actions/upgrade.py", line 75, in main
    for app in apps:
TypeError: 'App' object is not iterable

In appcenter.log you will find:

 28867 actions.upgrade-search           23-03-16 10:37:13 [    INFO]: No interface defined
 28867 actions.upgrade-search.progress  23-03-16 10:37:13 [   DEBUG]: 100
 28867 actions.upgrade                  23-03-16 11:06:42 [   DEBUG]: Calling upgrade
 28867 actions.upgrade.progress         23-03-16 11:06:42 [   DEBUG]: 0
 28867 actions.upgrade                  23-03-16 11:06:42 [   ERROR]: 'App' object is not iterable
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/univention/appcenter/actions/__init__.py", line 181, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python3/dist-packages/univention/appcenter/actions/upgrade.py", line 75, in main
    for app in apps:
TypeError: 'App' object is not iterable
 13390 actions.upgrade-search           23-03-16 11:07:48 [   DEBUG]: Calling upgrade-search


You can upgrade the ucsschool via univention-app; the error only occurs during the univention-upgrade from 4.4 to 5.0; if you upgrade further to 5.0-1 you can upgrade directly after the OS upgrade in the univention-upgrade process.

This is no big pain, but a traceback during a major release upgrade is no fun.
This bug is not to get it resolved; it is (from my point of view) more to report the behavior for others and calm them down during the upgrade (mostly in the night)