Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update von 2019.8.2 auf 2019.12.x nicht durchfürbar #7128

Closed
Matze0811 opened this issue Dec 29, 2019 · 19 comments
Closed

Update von 2019.8.2 auf 2019.12.x nicht durchfürbar #7128

Matze0811 opened this issue Dec 29, 2019 · 19 comments
Assignees
Labels
Milestone

Comments

@Matze0811
Copy link

@Matze0811 Matze0811 commented Dec 29, 2019

Hallo Leute, um die Issues halbwegs sauber zu halten habe ich mein altes Ticket geschlossen und mache hier ein neues auf.

Wie oben beschrieben, funktioniert das update nicht, weil tine20 wohl einen DB-Eintrag vermisst.
die ID bezieht sich nach meinen Recherchen auf den Setup-User, jedoch finde ich nirgends einen Model_Role Eintrag.

was läuft da grade falsch? gibt's die Möglichkeit evtl. nen dummy-Eintrag in die DB zu nehmen damit das update durchgezogen wird?

Achja, update via cli, mit php7.2 unter Debian9 mit mariaDB (release grade nicht im Kopf aber aktuellste verfügbare Version) ich habe vollständige rechte am Server.

Tinebase_Exception_NotFound: Tinebase_Model_Role record with id = 52a96d635008717b932caaacf2ef01e28d31708a not found! in /var/www/elektrohd/tine20-current/Tinebase/Backend/Sql/Abstract.php:314 Stack trace: #0 /var/www/elektrohd/tine20-current/Tinebase/Backend/Sql/Abstract.php(282): Tinebase_Backend_Sql_Abstract->getRawDataByProperty('52a96d635008717...', 'id', false) #1 /var/www/elektrohd/tine20-current/Tinebase/Backend/Sql/Abstract.php(251): Tinebase_Backend_Sql_Abstract->getByProperty('52a96d635008717...', 'id', false) #2 /var/www/elektrohd/tine20-current/Tinebase/Controller/Record/Abstract.php(522): Tinebase_Backend_Sql_Abstract->get('52a96d635008717...', false) #3 /var/www/elektrohd/tine20-current/Tinebase/Acl/Roles.php(975): Tinebase_Controller_Record_Abstract->get('52a96d635008717...', NULL, true, false) #4 /var/www/elektrohd/tine20-current/Tinebase/Acl/Roles.php(654): Tinebase_Acl_Roles->get('52a96d635008717...') #5 /var/www/elektrohd/tine20-current/Tinebase/Acl/Roles.php(589): Tinebase_Acl_Roles->removeRoleMember('52a96d635008717...', Array) #6 /var/www/elektrohd/tine20-current/Setup/Controller.php(938): Tinebase_Acl_Roles->setRoleMemberships(Array, Array) #7 /var/www/elektrohd/tine20-current/Setup/Controller.php(759): Setup_Controller->_prepareUpdate(Object(Tinebase_Model_FullUser)) #8 /var/www/elektrohd/tine20-current/Setup/Controller.php(643): Setup_Controller->updateApplication(Object(Tinebase_Model_Application), '12') #9 /var/www/elektrohd/tine20-current/Setup/Controller.php(522): Setup_Controller->_legacyUpdateApplications(Object(Tinebase_Record_RecordSetFast)) #10 /var/www/elektrohd/tine20-current/Setup/Frontend/Cli.php(467): Setup_Controller->updateApplications() #11 /var/www/elektrohd/tine20-current/Setup/Frontend/Cli.php(451): Setup_Frontend_Cli->_updateApplications() #12 /var/www/elektrohd/tine20-current/Setup/Frontend/Cli.php(81): Setup_Frontend_Cli->_update(Object(Zend_Console_Getopt)) #13 /var/www/elektrohd/tine20-current/Setup/Server/Cli.php(141): Setup_Frontend_Cli->handle(Object(Zend_Console_Getopt)) #14 /var/www/elektrohd/tine20-current/Setup/Core.php(117): Setup_Server_Cli->handle() #15 /var/www/elektrohd/tine20-current/setup.php(14): Setup_Core::dispatchRequest() #16 {main}

@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Dec 29, 2019

Achja, noch 2 screenshots via phpMyAdmin. gut zu erkennen, das da wohl irgendwas mit den Rollen nicht hinhaut.

8efdb4ae29b0a27a550f19ba805db1ac6785ed40

ist die ID vom setupuser

screen roles
screen role_accounts

@gerryfrancis

This comment has been minimized.

Copy link

@gerryfrancis gerryfrancis commented Dec 30, 2019

Zwei Fragen:

  • Hast Du die Ordner samt der darin enthaltenen Dateien auf Deinem FTP überschrieben? Wenn ja, bringst Du Dich damit in Teufels Küche. Daher vor dem Aktualisieren immer einen neuen Stammordner anlegen, den Inhalt der neuen Version darin hochladen und dann die Ordner umbenennen.
  • Kannst Du Dich mit dem Setup-User im GUI anmelden und die Aktualisierung dort ausführen oder klappt das auch nicht?
@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Dec 30, 2019

Da Danke gerryfrancis, da ich bei tine20 schon ein alter Hase bin (seit 2012 dabei), mache ich meine updates folgendermaßen:

  1. tine20 Datenbank (tine20_current) kopieren zu tine20_new und dem bisherigen DB-User (tine20) alle Rechte gewähren
  2. Ordner tine20new anlegen, aus tine20current die .htaccess und die config.inc.php hineinkopieren
  3. in der config.inc.php den Datenbanknamen anpassen (auf tine20_new)
  4. in der shell folgendes innerhalb des ordners tine20new eingeben: "php setup.php --update"
  5. hoffen das das update durchläuft
  6. bei erfolg die config vom apachen auf den neuen ordner verbiegen
  7. nach ca. 6 Wochen den alten tine Ordner löschen, den neuen auf tine20current umbenennen, die alte DB löschen und die neue auf tine20_current umbenennen, die config.inc.php entsprechend anpassen.

Zur zweiten Frage:
im setup-gui kann ich mich anmelden, jedoch läuft auch dort das Setup nicht durch.

@koelschejung74

This comment has been minimized.

Copy link

@koelschejung74 koelschejung74 commented Dec 30, 2019

Hatten wir das nicht schon mal mit einer älteren Version? Kommt mir irgendwie bekannt vor.

@gerryfrancis

This comment has been minimized.

Copy link

@gerryfrancis gerryfrancis commented Dec 30, 2019

@Matze0811 Es reicht vollkommen aus, die Ordner und Dateien der neuen Version in einen neuen Ordner zu kopieren (z. B. "tine_neu"), die beiden Ordner umzubenennen ("tine" -> "tine_alt", "tine_neu" -> "tine") und das Update durchzuführen. Der Rest (".htaccess" und "config.inc.php") kann bleiben wie er ist.

@koelschejung74 Mir auch. Vielleicht hilft ein Update auf die letzte Version des Zweigs 2019.8.x und dann ein weiteres auf die aktuellste Version. Zu große Versionssprünge haben schon oft zu Problemen geführt.

@koelschejung74

This comment has been minimized.

Copy link

@koelschejung74 koelschejung74 commented Dec 30, 2019

@gerryfrancis: als ich letztens auf meiner Testumgebung aktualisiert habe von 2019.8.2 oder 1, kam bei mir die Meldung, dass es nicht geht, ich musste erst auf die 8.4er aktualisieren.

Wäre hier auf Versuch wert.

@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Dec 30, 2019

Ich kann auch nicht auf die 2019.8.4 updaten, ist exakt der selbe Fehler. Was mich wundert sind die Indizes in den Tabellen, von nem einfachen Inkrement (1-5) hin zu hashes.

@gerryfrancis

This comment has been minimized.

Copy link

@gerryfrancis gerryfrancis commented Dec 31, 2019

@Matze0811 Der Benutzer "Gast" wurde von jemandem mit Hash "c0704c4ed51323a4edbaa29957f8559c327efacb" geändert, der hat darüber hinaus einen Benutzer namens "Super-User" ("mit besonders hohen Berechtigungen") angelegt. Sofern das niemand von euch war, würde ich auf einen Hack schließen, aber das ist nur eine Vermutung.

@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Dec 31, 2019

Alles i.O. Gast ist kein User sondern eine Rolle und der user mit dem hash ist ein 2. Benutzeraccount von mir, der allerdings deaktiviert ist. Auch die Rolle Super-User wurde von mir angelegt, um nicht den setupuser für bestimmte Änderungen nutzen zu müssen. Sind alles ziemlich alte und deaktivierte Geschichten. was mich halt wundert, sind die Eintragungen in "Role_Accounts" (die gehashten) die bei jedem Versuch zu updaten hinzugefügt werden um dann als "missing record" moniert zu werden.

Die entsprechenden "Role_IDs" existieren nämlich unter tine20_roles nicht.

@gerryfrancis

This comment has been minimized.

Copy link

@gerryfrancis gerryfrancis commented Jan 1, 2020

@Matze0811 Es ist schon merkwürdig, dass in "tine20_role_accounts" manche Einträge als "role_id" eine Hash-ID zugewiesen bekommen haben und bei manch anderen Einträgen lediglich eine Nummer >0 drinsteht. Deine Installation ist anscheinend schon sehr alt, andererseits ist Deine im Moment installierte Version im Vergleich noch recht jung, ansonsten hätte ich darauf getippt, dass die Nummern mal mit irgendeinem Update in Hashes umgewandelt worden wären. Wie sieht es denn in "tine20_users" aus?

@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Jan 2, 2020

die user in tine20_users sind gehasht (ID und primary_group_id). Ich verstehe halt nur nicht, warum in den Rollen noch die Inkrement Werte drin sind und nicht geupdatet werden. Stattdessen werden quasi neue Rollen-Accounts angelegt.

Edit:
@gerryfrancis, kannst Du (ich hoffe Du ist in Ordnung) in Deiner Installation schauen, ob es eine Tabelle "role_acl" oder "acl_roles" o.ä. gibt? Im update-output versucht das setup daraus einen role_member zu entfernen. Ich habe aber keine solchen tabellen.

@gerryfrancis

This comment has been minimized.

Copy link

@gerryfrancis gerryfrancis commented Jan 2, 2020

@Matze0811 Ja, das ist mir auch schon aufgefallen. Allerdings habe ich in meiner Datenbank für Rollen ebenso keine ACL-Tabellen. Mag sein, dass für das Update eine ACL angelegt und dann wieder entfernt werden soll. (Das Du ist für mich auf jeden Fall in Ordnung! :) )

@gueni222

This comment has been minimized.

Copy link

@gueni222 gueni222 commented Jan 14, 2020

Guten Morgen,

das Update lief bei mir über ein Zwischenschritt 2019_8_4 und dann auf auf 2019_12_3.

VG
Günter

@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Jan 14, 2020

Wie ich oben schon schrieb, komme ich erst gar nicht auf die 2019.8.4 genau bei dem Update kommt es bereits zu den o.a. Fehlern

@pschuele pschuele added the Update label Jan 16, 2020
@pschuele

This comment has been minimized.

Copy link
Member

@pschuele pschuele commented Jan 16, 2020

@Matze0811 es scheint mir so, als wäre dein setupuser kaputt bzw. is mitglied in einer rolle, die es nicht mehr gibt:

/Tinebase/Acl/Roles.php(589): Tinebase_Acl_Roles->removeRoleMember('52a96d635008717...', Array)

ein hotfix wäre, diese ID in den role_accounts von hand zu löschen.

ich schaue, ob man den fehler vielleicht noch graceful abfangen kann. es sollte ja nicht das ganze update stehen, nur weil eventuell eine rolle nicht mehr da ist.

@pschuele

This comment has been minimized.

Copy link
Member

@pschuele pschuele commented Jan 16, 2020

eventuell hilft es auch, den setupuser (über die Admin GUI) zu löschen. er sollte dann beim update automatisch neu angelegt werden.

@pschuele pschuele self-assigned this Jan 16, 2020
@pschuele pschuele added this to To do in Tine 2.0 Development via automation Jan 16, 2020
@pschuele pschuele moved this from To do to In progress in Tine 2.0 Development Jan 16, 2020
@pschuele pschuele added the Bug label Jan 16, 2020
@pschuele pschuele added this to the 2019.12.4 milestone Jan 16, 2020
@pschuele

This comment has been minimized.

Copy link
Member

@pschuele pschuele commented Jan 16, 2020

hab dafür einen fix geschrieben, der mit dem heutigen update kommt.

@pschuele pschuele closed this in 971186d Jan 16, 2020
Tine 2.0 Development automation moved this from In progress to Done Jan 16, 2020
@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Jan 17, 2020

Bitte wieder öffnen!!
Der fix ist für mich nicht anwendbar, da ich nicht auf die letzte minor komme, der Fehler besteht nach wie vor. Ich habe z.B. den setupuser in der GUI gelöscht, selber Fehler beim update, setup user in der DB gelöscht, der User wird angelegt und der selbe Fehler. Tine "zerschießt" mir beim update die account roles. die Fehlerhaften roles werden durch das Tine update erstellt.

Also Holzhammermethode die ich versucht habe:

  1. Setup-User in DB-Gelöscht
  2. fehlerhafte Account-Roles in DB gelöscht
  3. DB sah clean aus
  4. update gestartet (php setup.php --update)
  5. Setup-User wurde von update angelegt
  6. 2 Account-Roles wurden von setup angelegt
  7. setup meckert über die von ihm gerade angelegten account roles
@Matze0811

This comment has been minimized.

Copy link
Author

@Matze0811 Matze0811 commented Jan 17, 2020

Okay, zur Info, ich hab's geschafft.
Ich habe dazu händisch den Fix in die 2019.8.4 eingebaut, daraufhin lief das update durch.
dann baute ich den fix händisch in die 2019.12.1 ein, update lief durch

zum Schluss konnte ich Augenscheinlich sauber auf die 2019.12.4 updaten.

Danke für den Fix!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
5 participants
You can’t perform that action at this time.