Upgrade auf UCS 5 / OX

Moin
Nach einem Vollbackup habe ich mich einmal an meinen Server gewagt und bis auf zwei Kleinigkeiten lief alles reibungslos, um auf die Version 5 zu kommen.

  • The following extensions are incompatible with UCS 5.0:

Mit Hilfe von
ldapdelete -x -D “cn=admin,$(ucr get ldap/base)” -y /etc/ldap.secret “cn=guacamole,cn=udm_syntax,cn=univention,dc=ldi,dc=intranet”

konnte ich meine Einträge löschen, es handelte sich um Guacamole und Openvpn, was ich mal auf dem Server hatte.

Dann startete der Vorgang erst einmal, nach einer gewissen Laufzeit gab es aber ein Problem mit fetchmail, denn es waren aus alten Installationen noch eine fetchmailrc auf dem Server, das Update brach dann ab. Umbenennen der fetchmailrc und ein dpkg --configure -a richteten das Problem und das Update lief bis zum Ende durch.

Mit etwas Handarbeit verlief das Upgrade doch recht reibungslos.

Grüße aus Berlin

Ben

Hey @BenSommer

das habe ich nun auch mit 4 Servern gemacht und es hat wunderbar geklappt: 1 Primary, 1 Backup, 2 Replica
Einer davon mit OX-Suite.
Das einzig merkwürdige, was ich nun alle 5 Minuten bekomme, ist die Nachricht (cron - daemon: Cron <root@ucsl-02> [ -x /usr/share/univention-ox/process-listener ] && /usr/share/univention-ox/process-listener):

Traceback (most recent call last):
 File "/usr/lib/univention-directory-listener/system/ox-user.py", line 1119, in <module>
   handler.process_pending()
 File "/usr/lib/python3/dist-packages/univention/ox/listener_tools.py", line 720, in process_pending
   return self.process(func)
 File "/usr/lib/python3/dist-packages/univention/ox/listener_tools.py", line 764, in process
   entry = self._load_entry(timestamp)
 File "/usr/lib/python3/dist-packages/univention/ox/listener_tools.py", line 829, in _load_entry
   return pickle.load(fd)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa1 in position 2: ordinal not in range(128)

Grüße aus Berlin

Bernd

Hallo Bernd,

dank für deinen Bericht!

Ich vermute der Fehler kommt von einer nicht-abgearbeiteten Aufgabe von vor dem Update. Die kann nun nicht mehr geladen werden. Bitte schau mal nach mit:

/usr/share/univention-ox/manage_listener_queue --list

Mit --archive kannst du es archivieren (siehe --help). Dann sollte es den Fehler nicht mehr geben.

Grüße
Daniel

Das half leider noch nicht.
Es gibt neben dieser 5-Min.-Meldung noch eine stündliche von:

Cron <root@ucsl-02> [ -x /usr/sbin/spamrunner ] && /usr/sbin/spamrunner
----
Traceback (most recent call last):
   File "/usr/sbin/spamrunner", line 47, in <module>
      from univention.ox.listener_tools import default_context, get_context_admin_user
ImportError: No module named ox.listener_tools

Vielleicht sind noch ein paar alte Dateien im System?

Hmm… das sieht nach einem Fehler bei der Python 3 Migration aus… Ich schaue mir das mal an…

Bitte schau mal, ob das Paket python-univention-ox installiert ist: dpkg -l python-univention-ox
Falls nicht, bitte installieren: univention-install python-univention-ox
Danach versuch das Skript direkt auszuführen: /usr/sbin/spamrunner
Falls das nicht klappt, würde mich interessieren, ob es so klappt: python3 /usr/sbin/spamrunner

Danke und Grüße
Daniel

War nicht installiert. Die Befehle ergeben folgendes Bild:

root@ucsl-02:~# /usr/sbin/spamrunner
Traceback (most recent call last):
  File "/usr/sbin/spamrunner", line 47, in <module>
    from univention.ox.listener_tools import default_context, get_context_admin_user
ImportError: No module named ox.listener_tools
1 root@ucsl-02:~# python3 /usr/sbin/spamrunner
Traceback (most recent call last):
  File "/usr/sbin/spamrunner", line 207, in <module>
    if not os.path.exists('%s/Maildir' % (get_user_home(user["send_addr"],))):
  File "/usr/sbin/spamrunner", line 102, in get_user_home
    return read_from_ext_proc(cmd)
  File "/usr/sbin/spamrunner", line 90, in read_from_ext_proc
    syslog.syslog(syslog.LOG_ERR, cmd_err)
TypeError: [priority,] message string

Ich danke und Grüße
Bernd

Danke für’s Testen - ich mache bei uns einen Bugreport auf.

Grüße
Daniel

1 Like

Hallo,

Ich hoffe es ist ok sich in den thread hier einzuklinken - aber wir haben ähnliche Probleme mit dem Upgrade - das spamrunner issue ist ident (danke für den bugreport).

Allerdings haben wir beim /usr/share/univention-ox/process-listener eine andere Fehlermeldung:

Traceback (most recent call last):
  File "/usr/lib/univention-directory-listener/system/ox-resource.py", line 136, in <module>
    handler.process_pending()
  File "/usr/lib/python3/dist-packages/univention/ox/listener_tools.py", line 720, in process_pending
    return self.process(func)
  File "/usr/lib/python3/dist-packages/univention/ox/listener_tools.py", line 775, in process
    result = func(dn, entry.new, entry.old, entry.action)
  File "/usr/lib/univention-directory-listener/system/ox-resource.py", line 132, in handler
    ox_resource_listener = OXResourceListener(name, old, new)
  File "/usr/lib/univention-directory-listener/system/ox-resource.py", line 52, in __init__
    self.resource_name = self.get_resource_name()
  File "/usr/lib/univention-directory-listener/system/ox-resource.py", line 59, in get_resource_name
    return self.new['cn'][0].decode('utf-8')
AttributeError: 'str' object has no attribute 'decode'

die scheint auf den ersten Blick [0] einem kleinen bug beim portieren von 2 auf 3 geschuldet zu sein - habe nicht gesehen, dass das in dem bugreport erwähnt wurde und auch keinen anderen bugreport mit dem Thema gefunden - Kann gerne einen bugreport aufmachen.

das /usr/share/univention-ox/manage_listener_queue --list hingegen wirft bei uns auch einen Fehler:

/usr/share/univention-ox/manage_listener_queue --list
Traceback (most recent call last):
  File "/usr/share/univention-ox/manage_listener_queue", line 266, in <module>
    sys.exit(main())
  File "/usr/share/univention-ox/manage_listener_queue", line 220, in main
    handler.collect_pickle_files()
  File "/usr/share/univention-ox/manage_listener_queue", line 160, in collect_pickle_files
    dn_s
TypeError: unsupported format string passed to bytes.__format__

Wir haben es derzeit mal umgangen, indem wir die files aus /var/spool/univention-ox/ox-ressource/ weggemoved haben.

Danke & Liebe Grüße,
stoiko

[0] Porting Python 2 Code to Python 3 — Python 3.10.0 documentation

Danke für die Berichte, ich habe Bugreports in unserem Bugzilla draus gemacht.
Zur leichten Entwarnung: das Problem im process-listener cronjob betrifft die normale Arbeit des listener Moduls nicht.
Ist natürlich trotzdem kaputt und wird repariert. Aber den regulären Betrieb sollte es bis dahin nicht stören.

Beste Grüße
Daniel Tröder