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

Hallo zusammen,

gibt es dazu einen aktuellen Status?
Das Problem scheint immer noch zu bestehen in der 5.0-1 errata242.
Nebenbei: das war eine Neuinstallation.

Viele Grüße
Ralf Schweiger

Hallo,

tatsächlich sind die Bugs gefixt worden, aber es hat noch kein neues Release der OX App gegeben.
Ich kenne die Planung nicht - werde mal nachfragen.

Schöne Grüße
Daniel Tröder

1 Like

Hi,
das Problem taucht auch bei einer Neuinstallation von auf:
(Die momentan installierte Version ist 5.0-1 errata251.)

Traceback (most recent call last):

  • File “/usr/sbin/spamrunner”, line 47, in *
  • from univention.ox.listener_tools import default_context, get_context_admin_user*
    ImportError: No module named ox.listener_tools

Das Modul scheint aber installiert zu sein:

dpkg -l python-univention-ox
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
++±====================-===========================-============-===============================================
ii python-univention-ox 12.0.24A~5.0.0.202110010959 all UCS package for base Open-Xchange functionality

Gibt es da schon irgendeine Fehlerbehebung?

Beste Grüße

John

Hi zusammen,

selbes Problem, immer noch, obwohl mittlerweile UCS version is 5.0-1 errata302:

/usr/sbin/spamrunner
Traceback (most recent call last):
File “/usr/sbin/spamrunner”, line 47, in
from univention.ox.listener_tools import default_context, get_context_admin_user
ImportError: No module named ox.listener_tools

das Paket (die Pakete) sind installiert:

dpkg -l python3-univention-ox
ii python3-univention-ox 12.0.24A~5.0.0.202110010959 all UCS package for base Open-Xchange functionality

dpkg -l python-univention-ox
ii python-univention-ox 12.0.24A~5.0.0.202110010959 all UCS package for base Open-Xchange functionality

Wann wird es einen fix dazu geben, oder habt Ihr einen Workaround für uns?

danke
Sascha

Wir hatten das bei uns so gefixt…

/usr/sbin/spamrunner (Progamm aus univention-mail-dovecot-ox) fand univention.ox nicht mehr, weil es mit Python 2 ausgeführt wurde…

vim /usr/sbin/spamrunner
  # In erster Zeile python2.7 durch python3 ersetzt
  # In Zeile 90 str() eingefügt: syslog.syslog(syslog.LOG_ERR, str(cmd_err))                         

Sicherlich nicht optimal…

In univention-mail-postfix-ox wurde übrigens auch noch nicht der Fix für diesen Bug in univention-mail-postfix nachgezogen: Bug 52842 – Error messages during execution of univention-mail-postfix.postinst

Hi @Andreas_T,
das funktioniert, Danke.
Trotzdem seltsam, dass das noch immer nicht offiziell gefixt worden ist, warum nicht?

LG
Sascha

Mastodon