Upgrade 7.1 LDAP Fehler

Hallo,

Gibt es eine Beschreibung der Fehlermeldung ?

Gruß

Arnaud

Hallo Arnaud,

beim Click in der WebUI auf Cron kommt:

Traceback (most recent call last):
  File "/usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py", line 102, in get_ldap_user
    l.bind_s(params['binddn'], params['bindpw'])
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 459, in bind_s
    return self.result(msgid,all=1,timeout=self.timeout)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 738, in result
    resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 742, in result2
    resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 749, in result3
    resp_ctrl_classes=resp_ctrl_classes
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 756, in result4
    ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 329, in _ldap_call
    reraise(exc_type, exc_value, exc_traceback)
  File "/usr/lib/python3/dist-packages/ldap/compat.py", line 44, in reraise
    raise exc_value
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 313, in _ldap_call
    result = func(*args,**kwargs)
ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server", 'errno': 4, 'info': 'Unterbrechung während des Betriebssystemaufrufs'}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py", line 335, in get_profile
    profil = self.get_ldap_user(username)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py", line 105, in get_ldap_user
    raise KeyError(e)
KeyError: SERVER_DOWN({'desc': "Can't contact LDAP server", 'errno': 4, 'info': 'Unterbrechung während des Betriebssystemaufrufs'},)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/aj/api/endpoint.py", line 75, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_crontab/views.py", line 37, in handle_api_get_crontab
    profil = AuthenticationService.get(self.context).get_provider().get_profile(user)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py", line 347, in get_profile
    logging.error(e)
  File "/usr/local/lib/python3.6/dist-packages/aj/log.py", line 144, in <lambda>
    *args
  File "/usr/local/lib/python3.6/dist-packages/aj/gate/worker.py", line 182, in send_log_event
    'message': message % args,
TypeError: unsupported operand type(s) for %: 'KeyError' and 'tuple'

Beim Klick auf Client-Konfiguration kommt (zweimal!):

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/aj/api/endpoint.py", line 75, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_clients/views.py", line 43, in handle_api_get_clients_scripts
    } for script in scripts_linux
  File "/usr/lib/linuxmuster-webui/plugins/lmn_clients/views.py", line 43, in <listcomp>
    } for script in scripts_linux
  File "/usr/lib/linuxmuster-webui/plugins/lmn_clients/views.py", line 22, in read_script_content
    with open(path, 'r') as script:
FileNotFoundError: [Errno 2] Datei oder Verzeichnis nicht gefunden: '/var/lib/samba/sysvol/centaurus.lss-rt.lan/scripts/default-school/custom//linux/logoff.sh'

Viele Grüße,
Stefan

Hallo,

ist das normal, dass nach dem Upgrade unter Linbo4 - Gruppen in der WebUI bis auf nopxe keinerlei Hardwaregruppen vorhanden sind?
Unter /srv/linbo/ liegen die start.confs noch, bei den Clients sind die Gruppen ebenfalls eingetragen, ein linuxmuster-import-devices habe ich nach dem Umwandeln mit cloop2cow2 auch gemacht…

Viele Grüße,
Stefan

Es werden lediglich Gruppen angezeigt welche kein Images oder ein Qcow2 Image verwenden.

Auf der Konsole müssen also die start.confs angepasst werden und auf die umgewandelten Qcows2s zeigen.

Hallo Till,

OK. Wäre ja sinnvoll, das in die Doku nach der Umwandlung von cloop nach cow2 reinzuschreiben…

Viele Grüße,
Stefan

@Doku-Team

Falls nicht in der Doku vorhanden, bitte entsprechend noch nachtragen :slight_smile:

Bitte Issue erstellen, komme momentan nicht dazu:

Hallo,

Ich habe mal die Nachrichte von Stefan in einem neuen Thread geschoben und formatiert, weil ich finde es wird schnell unübersichtlich. Ich mag lieber die Regel „ein Problem - ein Thread“

Dieses Problem habe ich zum ersten Mal samstag bei einer anderen Schule entdeckt. Sporadisch ist der Ldap-Server nicht erreichbar, und damit kann der user profil nicht geladen werden. Das Problem ist allgemein und betrifft nicht nur den Cron Plugin. Eigentlich halte ich es für falsch, dass beim jeden aufruf vom user profil, der LDAP-Server zu fragen. Wenn der user eingeloggt ist, sollte der Profil festlegen. So, um diesen Fehler zu vermeiden, kann ich dann den Profil im user context speichern, und die Fehlermeldung sollte nicht auftauchen. Aber das löst nicht die Ursache : ich weiss nicht warum der LDAP-Server keine Antwort rausgibt.
@Till : hast du eine Meinung dazu ?

Ok, das kann ich schnell korrigieren. Ich bin davon ausgegangen, dass alle Schule die gleiche Struktur unter sysvol hat, es ist anscheinend nicht der Fall.

Gruß

Arnaud

Sollte in 7.1.32 erledigt sein.

Gruß

Arnaud

Hallo Arnaud,

hat funktioniert! Superschnelle Lösung, danke!

Viele Grüße,
Stefan

Hallo Arnaud,

bei mir dann wohl dauerhaft. Allerdings habe ich keine Probleme mit der Anmeldung am Client, an der Schulkonsole, an Moodle usw. - die fragen doch auch beim ldaps an…? Nur beim Click auf Cron in der WebUI.
Liegt es u.U. an der Anmeldung als global-admin?

Viele Grüße,
Stefan

Hallo,

[quote=„lessi, post:11, topic:9105“]
Nur beim Click auf Cron in der WebUI.[/quote]

Wahrscheinlich auch beim klicken auf „Meine Dateien“.

Glaube ich nicht. Ich habe jetzt lange gesucht und ich finde keine Erklärung.
Egal ob Anmeldung oder Profil vom User laden ist es genau die gleiche Ldap-Anfrage, und ich verstehe nicht warum es bei der Anmeldung klappt, und nicht später beim Profil laden. Insbesondere habe ich das Problem auf keinen von meinen Server.
Die einzige Unterschied, die ich feststelle, ist der Pfad bei dir von dem ldap bibliothek : /usr/lib/python3/dist-packages/ldap/ anstatt /usr/local/lib/python3.6/dist-packages/ldap/.

Was ist bei dir genau installiert ?
Das kann man mit folgenden Befehle überprüfen :
pip3 list | grep ldap
dpkg -l | grep ldap
python3 -c 'import ldap, sys; print(f"Version: {ldap.__version__}\nPath: {ldap.__file__}"); print(f"Python paths: {sys.path}")'

Gruß

Arnaud

Hallo Arnaud,

sorry, dass ich mit meinen Antworten etwas brauche, kämpfe gerade mit Corona…

Halb: Nicht beim Klick auf „Meine Dateien“, sondern erst, wenn ich versuche, eine Datei anzulegen, hochzuladen oder ein Verzeichnis anzulegen.

(Toll, dass aus einer noVNC-Konsole heraus kein Copy&Paste möglich ist…)
ldap3 2.4.1
python-ldap 3.0.0

libldap-2.4-2:amd64 2.4.45+dfsg-1ubuntu1.11
libldap-common 2.4.45+dfsg-1ubuntu1.11
libldap2-dev:amd64 2.4.45+dfsg-1ubuntu1.11
libnet-ldap-perl 1:0.6500+dsfg-1
libnet-ldap-sid-perl 0.001-1
python3-ldap 3.0.0-1ubuntu0.2
python3-ldap3 2.4.1-1

Path:/usr/lib/python3/dist-packages/ldap/init.py
Python paths: [’’, ‚/usr/lib/python36.zip‘,’/usr/lib/python3.6/lib-dynload’,’/root/.local/lib/python3.6/site-packages’,’/usr/lib/linuxmuster/setup.d’,’/usr/locallib/python3.6/dist-packages’,’/usr/lib/python3/dist-packages’]

Viele Grüße,
Stefan

Hallo Stefan,

Gute Besserung !

Es liegt also nicht an den Package : ich könnte die gleiche Umgebung installieren und trotzdem läuft es bie mir. Alle LDAP-Anfrage aus der Webui sind lokal und nur mit LDAP, egal ob Anmeldung oder User Profil laden.

Vielleicht kann man da etwas von der Seite von Samba finden :

  1. Gibt besondere Einträge über ldap in eurem smb.conf ?
  2. Was sagt tail -f /var/log/samba/log.samba | grep LDAP wenn global-admin auf dem Plugin Cron klickt ?

Gruß

Arnaud

Hallo Arnaud,

Ich habe nur vor ein paar Wochen die Sache mit den Logeinträge für angemeldete User eingetragen. Habe ich jetzt wieder auskommentiert. Sonst hatte ich nichts verändert, auch nicht in der smb.conf.admin.
Aber okay, das sieht doch nach einem Problem aus:

service smbd status (dauert ewig)
smbd.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)

Das bleibt leider auch nach einem Neustart so. Das logfile erhält durch den Klick auf Cron konsequenterweise auch keinen neuen Eintrag, aber nach den Meldungen vom Neustart steht da mehrfach hintereinander:

samba: setproctitle not initialized, please either call setproctitle_init() or link against libbsd-ctor

Viele Grüße,
Stefan

Hallo Stefan,

Den Fehler liegt nicht an den log level daran.
Um samba neu zu starten, der richtige Weg ist : systemctl restart samba-ad-dc.service

Gruß

Arnaud

Hallo Arnaud,

OK, systemctl status samba-ad-dc.service meldet active (running), das ändert aber nichts an der Fehlermeldung bei cron. Die Meldungen im logfile bleiben wie oben beschreiben.

Viele Grüße,
Stefan

Hallo,

Ich kann den Fehler reproduzieren und kenne jetzt die Ursache, aber das ist relativ complex zu lösen, ich muss da noch weiter forschen. Es liegt auf jedem Fall nicht am LDAP-Server.

Gruß

Arnaud

Hallo,

Ich hoffe, dass die Version 7.1.34 es löst, und würde mich auf Rückmeldungen freuen.

Gruß

Arnaud

Hallo Arnaud,

OK, Klick auf cron ergibt jetzt keine Fehlermeldung mehr und ich kann einen cronjob anlegen. Super!

Allerdings kann ich weder als global-admin noch als normaler Lehrer Dateien oder Verzeichnisse unter Meine Dateien anlegen oder hochladen, das führt dann immer noch zu einer Fehlermeldung:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/aj/api/endpoint.py", line 75, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/views.py", line 222, in handle_api_smb_create_directory
    smbclient.makedirs(path)
  File "/usr/local/lib/python3.6/dist-packages/smbclient/_os.py", line 288, in makedirs
    mkdir(mkdir_path, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/smbclient/_os.py", line 267, in mkdir
    raw = SMBDirectoryIO(path, mode='x', **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/smbclient/_io.py", line 377, in __init__
    tree, fd_path = get_smb_tree(path, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/smbclient/_pool.py", line 312, in get_smb_tree
    auth_protocol=auth_protocol)
  File "/usr/local/lib/python3.6/dist-packages/smbclient/_pool.py", line 374, in register_session
    connection.connect(timeout=connection_timeout)
  File "/usr/local/lib/python3.6/dist-packages/smbprotocol/connection.py", line 799, in connect
    smb_response = self._send_smb2_negotiate(dialect, timeout, enc_algos, sign_algos)
  File "/usr/local/lib/python3.6/dist-packages/smbprotocol/connection.py", line 1497, in _send_smb2_negotiate
    response = self.receive(request, timeout=timeout)
  File "/usr/local/lib/python3.6/dist-packages/smbprotocol/connection.py", line 1006, in receive
    raise SMBResponseException(response)
smbprotocol.exceptions.InvalidParameter: Received unexpected status from the server: An invalid parameter was passed to a service or function. (3221225485) STATUS_INVALID_PARAMETER: 0xc000000d

Viele Grüße,
Stefan