Ticket #557 (new Fehler)
sophomorix error beim import_workstations nach update auf 5.0 / 5.1
| Reported by: | baumhof | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | 5.0.4 |
| Component: | Ohne Zuordnung | Version: | 5.0.4 |
| Keywords: | Cc: |
Description
Hallo alle zusammen,
leider besteht bei mir der seltsame Fehler, dass hosts per import_workstations nicht aufgenommen werden (sophomorix error), seit ich von rembo auf linbo und von 4.06 auf 5.04 upgedatet habe, wenn ihre Zeile zu ähnlich zu bestehenden sind.
Beispiel:
Der neue Client:
r155;r155pc102;duron1400;00:24:8C:89:9B:67;10.17.155.102;255.240.0.0;1;1;1;1;22
wird abgelehnt mit: /var/log/linuxmuster/import_workstations
Processing host r155pc102:
- Creating exam account r155pc102 ... #### /usr/sbin/sophomorix-useradd started ... ####
Stopping Name Service Cache Daemon: nscd.
Creating user account r155pc102:
Uidnumber : -1
Account Type : examaccount
Secondary Grp. :
Group : r155
Home : /home/workstations/r155/r155pc102
Gecos : ExamAccount?
Shell : /bin/bash
SophomorixStatus? : P
Epoch : 1325157527
Password : linux
Quota :
Use of uninitialized value $_[3] in length at /usr/share/perl5/Convert/ASN1/_encode.pm line 143.
Use of uninitialized value $_[3] in concatenation (.) or string at /usr/share/perl5/Convert/ASN1/_encode.pm line 144.
Use of uninitialized value $_[3] in length at /usr/share/perl5/Convert/ASN1/_encode.pm line 143.
Use of uninitialized value $_[3] in concatenation (.) or string at /usr/share/perl5/Convert/ASN1/_encode.pm line 144.
sambaGroupType: value #0 invalid per syntax at /usr/share/perl5/Sophomorix/SophomorixPgLdap.pm line 6028.
Checking uidnumber 14594 for existance: unused (using 14594)
group r155 exists already (10073)
Replacing ldap group dn: cn=r155,ou=groups,dc=linuxmuster,dc=local
sophomorix error!
Wird die Zeile in folgendes geändert, geht es:
r147;r147pc002;duron1400;00:24:8C:89:9B:67;10.17.147.2;255.240.0.0;1;1;1;1;22
Processing host r147pc002:
- Creating exam account r147pc002 ... #### /usr/sbin/sophomorix-useradd started ... ####
Stopping Name Service Cache Daemon: nscd.
Creating user account r147pc002:
Uidnumber : -1
Account Type : examaccount
Secondary Grp. :
Group : r147
Home : /home/workstations/r147/r147pc002
Gecos : ExamAccount?
Shell : /bin/bash
SophomorixStatus? : P
Epoch : 1325157746
Password : linux
Quota :
Checking uidnumber 14595 for existance: unused (using 14595)
group r147 exists already (10200)Replacing ldap group dn: cn=r147,ou=groups,dc=linuxmuster,dc=local
Adding ldap account dn: uid=r147pc002,ou=accounts,dc=linuxmuster,dc=local
Reloading /etc/samba/smb.conf: smbd only.
Starting Name Service Cache Daemon: nscd.
Reloading /etc/samba/smb.conf: smbd only.
Flushing nscd cache
#### /usr/sbin/sophomorix-useradd terminated regularly ####
Ok!
- Setting exam account password for r147pc002 ... #### /usr/sbin/sophomorix-passwd started ... ####
Stopping Name Service Cache Daemon: nscd.
Setting password for user r147pc002 in r147 (examaccount) to kPr8cWNQ
Replacing ldap account dn: uid=r147pc002,ou=accounts,dc=linuxmuster,dc=local
Replacing ldap account dn: uid=r147pc002,ou=accounts,dc=linuxmuster,dc=local
Reloading /etc/samba/smb.conf: smbd only.
Starting Name Service Cache Daemon: nscd.
Reloading /etc/samba/smb.conf: smbd only.
Flushing nscd cache
#### /usr/sbin/sophomorix-passwd terminated regularly
Ok!
- Setting quota for r147pc002 ... #### Creating lock in /var/lib/sophomorix/lock/sophomorix.lock ####
#### /usr/sbin/sophomorix-quota started ... ####
Stopping Name Service Cache Daemon: nscd.
#### Calculating usrquota/mailquota ... (this may take a while) ####
#### Creating a userlist from options ... ####
#### Searching for users with changed quota/mailquota... ####
#### Setting changed Quota for users in the userlist ... ####
Checking user r147pc002 (1/1):
setting quota (/dev/mapper/vg_lml-lv--home,uid 14595): 240M 300M 24000 30000
setting quota (/dev/mapper/vg_lml-lv--var,uid 14595): 16M 20M 1600 2000
Replacing ldap account dn: uid=r147pc002,ou=accounts,dc=linuxmuster,dc=local
Replacing ldap account dn: uid=r147pc002,ou=accounts,dc=linuxmuster,dc=local
#### Removing lock in /var/lib/sophomorix/lock/sophomorix.lock ####
Reloading /etc/samba/smb.conf: smbd only.
Starting Name Service Cache Daemon: nscd.
Reloading /etc/samba/smb.conf: smbd only.
Flushing nscd cache
#### /usr/sbin/sophomorix-quota terminated regularly ####
Ok!
- Creating machine account r147pc002$ ... #### /usr/sbin/sophomorix-useradd started ... ####
Stopping Name Service Cache Daemon: nscd.
Creating user account r147pc002$:
Uidnumber : -1
Account Type : computer
Secondary Grp. :
Group : domcomputers
Home : /dev/null
Gecos : Computer
Shell : /bin/false
SophomorixStatus? : P
Epoch : 1325157749
Password : linux
Quota :
Checking uidnumber 14596 for existance: unused (using 14596)
Adding ldap account dn: uid=r147pc002$,ou=machines,dc=linuxmuster,dc=local
ERROR: Could not determine type of domcomputers
Reloading /etc/samba/smb.conf: smbd only.
Starting Name Service Cache Daemon: nscd.
Reloading /etc/samba/smb.conf: smbd only.
Flushing nscd cache
#### /usr/sbin/sophomorix-useradd terminated regularly
Ok!
- Setting machine account password for r147pc002$ ... #### /usr/sbin/sophomorix-passwd started ... ####
Stopping Name Service Cache Daemon: nscd.
Setting password for user r147pc002$ in domcomputers (domcomp) to 12345678
Replacing ldap account dn: uid=r147pc002$,ou=machines,dc=linuxmuster,dc=local
Replacing ldap account dn: uid=r147pc002$,ou=machines,dc=linuxmuster,dc=local
Reloading /etc/samba/smb.conf: smbd only.
Starting Name Service Cache Daemon: nscd.
Reloading /etc/samba/smb.conf: smbd only.
Flushing nscd cache
#### /usr/sbin/sophomorix-passwd terminated regularly ####
Ok!
- LINBO: Linking 10.17.147.2 to group duron1400 ... Ok!
- DHCP/BIND: Writing config ... Ok!
Dabei ist zu beachten, dass es r155 schon vor Umstieg auf linbo gab, r147 aber nicht.
Es scheint, als könne ich keine Rechner mehr Räumen hinzufügen, die es vor dem Umstieg gab.
r147 habe ich aus der Not heraus erschaffen: nach dem Umstieg.
Da kann ich nun aber noch immer nacheinander Clients reinstecken.
Das System wurde nach Weihnachten von 4.06 auf 5.04 upgedatet. Da der Umstieg rembo/linbo danach nicht richtig funktionierte (user linbo wurde nicht erschaffen/ linuxmuster-linbo nicht heruntergelden), wurde der Umstieg vor dem upgrade gemacht.
Inzwischen habe ich das System auf 5.1 upgedatet: der Fehler blkeibt.
Ich schicke gerne noch weiter logfiles, oder was ihr brauchen könnt :-)
Viele Grüße
Holger
Attachments
Change History
Changed 5 months ago by fsch
-
attachment
dbtest.zip
added
Datenmanktestskripte fuer den sophomorix Fehler

Dieses oder ein sehr ähnliches Problem hatte ich am AEG vor den Sommerferien auch - ich habe relativ viel Zeit damit zugebracht, das nachzuverfolgen und schließlich zu reparieren, hier ist meine Doku dazu:
Bei mir ist der Fehler stets in zwei Stufen entstanden, die Fehlermeldung in "Stufe 1"
habe ich lange übershen, da die nurgenau beim erstenmal auftritt und dann nicht mehr:
Dieser Fehler wird dadurch verursacht, dass die Funktion pg_get_group_type in der Datei /usr/share/perl5/Sophomorix/SophomorixPgLdap.pm bei der Abfrage
my ($type, $sambasid, $sambagrouptype)= $dbh->selectrow_array( "SELECT type,sambasid, sambagrouptype FROM classdata WHERE id='$id_sys'");keinen Wert in $sambasid liefert.
Der Eintrag in ldap_entries wird aber dennoch gemacht.
Stufe 2: Bei einem weiteren Durchlauf von import_workstations/sophomorix-add o.ä. taucht der folgende Fehler auf:
Das liegt daran, dass da versucht wird, den Account nochmal anzulegen, was natürlich nicht
klappt, weil es die id nur einmal geben darf.
Die eigentliche Frage war nun also, warum erhält man bei der Abfrage weiter oben
keine $sambasid?
Diese Abfrage findet auf dem Postgres View "classdata" statt, ein solcher View ist gewissermaßen eine "gespeicherte Abfrage":
Insbesondere müssen die Bedingung im WHERE Statement beide erfüllt sein,
damit aus der Tabelle samba_group_mapping eine sambasid gelesen werden
kann.
Damit das passt, muss es in class_details zu jedem Eintrag einer Gruppe
in groups eine Zeile gleicher ID geben:
und hier liegt der Hase im Pfeffer: Es gibt Gruppen in "groups", die sind
dort nicht drin, die erfüllen diese Bedingung also nicht, für die wird dann keine
sambasid geliefert und somit tritt der Fehler auf.
Zusammengefasst: Es gibt also immer dann ein Problem, wenn in der Tabelle groups ein
Eintrag existiert, dessen ID in der Tabelle class_details keine Entsprechung hat.
Außerdem muss für jede group-id ein Eintrag in der Tabelle samba_group_mapping existieren -
die waren bei mir alle da.
Lediglich für einige Räume hat das gefehlt -> ich konnte keine Rechner
mehr aufnehmen und die Administratoren (administrators) waren da auch weg, also konnte ich den
linbo user nicht anlegen.
Ich habe Skripte geschrieben, die das testen und die Tabelle für die
Administratoren und Räume fixen können, die häng ich mal an, allerdings erst verstehen,
dann ausführen'''
Zum Test bei "normalen" Benutzern muss man die Skripte
wohl noch erweitern, hatte ich soweit mir bekannt ist noch keine
Pannen am AEG.
Nachdem ich de fehlenden Einträge in der class_data Tabelle eingefügt
hatte, konnte ich Rechner aufnehmen und habe anschließend ohne weitere Pannen 900 Schüler versetzt und 120 neu aufgenommen.