Updatefehler auf 17.1

Nach dem Update auf 17.1 habe ich zwei Probleme:

  1. Adressbuch da, jedoch ohne Profilbilder?

  2. Nach Reboot des Servers komme ich nicht mehr an eGroupware rein:

An error happened - Unsupported operand types

Ubuntu 17.10 / PHP 7.1.8

Vor Upgrade ging alles ohne Probleme!?

Update endete mit:

EGroupware API Version 17.1 gefunden.
EGroupware Konfigurationsdatei (header.inc.php) Version 1.29 existiert und ist aktuell
Datensicherung gestartet, das kann einige Minuten dauern …
Datensicherung beendet
Database error: Invalid SQL: INSERT INTO egw_addressbook (contact_owner,contact_private,n_family,n_given,n_fn,contact_email,contact_creator,contact_modified,contact_modifier,account_id) VALUES (0,0,‘User’,‘Anonymous’,‘Anonymous User’,NULL,0,1510765999,NULL,12)
Duplicate entry ‘12’ for key ‘egw_addressbook_account_id’ (1062)

Installation failed --> exiting!

und bei Neuinstallation ganz viel:
EGroupware\Api\Link::attach_file(addressbook,753,Array([name] => photo.jpeg[type] => image/jpeg[tmp_name] => Resource id #306747),) Can’t mkdir links://default/apps/addressbook/753/.files!
EGroupware\Api\Vfs\Sqlfs\StreamWrapper::mkdir(’/apps’,0,9) permission denied!
EGroupware\Api\Vfs\Sqlfs\StreamWrapper::chmod(/apps/addressbook/755/.files, 0) no such file or directory!
EGroupware\Api\Link::attach_file(addressbook,755,Array([name] => photo.jpeg[type] => image/jpeg[tmp_name] => Resource id #306749),) Can’t mkdir links://default/apps/addressbook/755/.files!
EGroupware\Api\Vfs\Sqlfs\StreamWrapper::mkdir(’/apps’,0,9) permission denied!
EGroupware\Api\Vfs\Sqlfs\StreamWrapper::chmod(/apps/addressbook/758/.files, 0) no such file or directory!
EGroupware\Api\Link::attach_file(addressbook,758,Array([name] => photo.jpeg[type]
…

Jemand eine Idee?

Bin jetzt manual (tar.bz2) wieder auf 16.1. Bilder nach Rückspielen Backup in 16er Version wieder da!

Gruß
JayTee

Hallo JayTee,

das mit den fehlenden Fotos kann ich grundsätzlich bestätigen. Allerdings habe ich noch 4 von 800 Fotos…
Auch meine Einträge im error.log sehen etwas anders aus.

Ich habe das aber so weit dokumentiert und mit Hinweis auf dein Thema als Ticket aufgemacht.

Meine EGw ist nach einem reboot weiterhin verfügbar.

Was sagt denn in dem Moment dein webserver-error-log?

Gruß
Stefan

Es gab Probleme im Zugriff auf Datenbank - ReInstall 17.1 brachte kein Erfolg., daher per Hand zurück auf 16.1.
:frowning:

apache2 log unmittelbar nach Upgrade:

[Wed Nov 15 18:17:36.256676 2017] [php7:notice] [pid 7610] [client 192.168.1.1:51900] Zeitzonen aktualisiert zu Version 2.2017b (545 Datens\xc3\xa4tze aktualisiert), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:36.519444 2017] [php7:notice] [pid 7610] [client 192.168.1.1:51900] Zeitzonen Aliases aktualisiert zu Version 2017-11-13 18:34:28 (4 Datens\xc3\xa4tze aktualisiert), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337836 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] PHP Warning: fopen(/var/lib/egroupware/default/files/sqlfs/07/736): failed to open stream: Permission denied in /usr/share/egroupware/api/src/Vfs/Sqlfs/StreamWrapper.php on line 313, referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337899 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] #1 /usr/share/egroupware/api/src/Vfs/Sqlfs/StreamWrapper.php(313): fopen(’/var/lib/egroup…’, ‘r’), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337910 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] #2 /usr/share/egroupware/api/src/Vfs/Links/StreamWrapper.php(331): EGroupware\Api\Vfs\Sqlfs\StreamWrapper->stream_open(‘links://default…’, ‘r’, 0, ‘/apps/addressbo…’), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337919 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] #3 [internal function]: EGroupware\Api\Vfs\Links\StreamWrapper->stream_open(‘links://default…’, ‘rb’, 0, ‘/apps/addressbo…’), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337927 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] #4 /usr/share/egroupware/addressbook/inc/class.addressbook_ui.inc.php(3208): readfile(‘links://default…’), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337935 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] #5 /usr/share/egroupware/index.php(155): addressbook_ui->photo(), referer: http://192.168.1.4/egroupware/index.php?cd=yes
[Wed Nov 15 18:17:48.337942 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] #6 {main}, referer: http://192.168.1.4/egroupware/index.php?cd=yes

Hi JayTee,

Das sieht für mich so aus, als hättest Du ein Problem mit den Zugriffsrechten in Dateisystem.
Da das 17.1 Update die Bilder von der Datenbank in das virtuelle Dateisystem der EGroupware verschiebt (und dieses die Inhalte im Dateisystem des Webservers unter /var/lib/egroupware/default/sqlfs/ speichert), sind natürlich alle Bilder weg, wenn das nicht funktioniert. Das Update macht ja deswegen auch immer ein Backup davor.

Ich würde jetzt ein paar Sachen überprüfen, bevor ich nochmal das Update auf 17.1 versuchen würde:
a) Schauen das der Webserver auf /var/lib/egroupware schreiben darf:

sudo chown -R <webserver> /var/lib/egroupware

Was Benutzer deines Webservers sind hängt von der Distribution ab: Debian/Ubuntu www-data, RHEL/CentOS: apache, …
b) Admin >> Dateimanager >> VFS überprüfen (ist sowas wie ein FSCK für das EGroupware VFS)
c) Zu einem Kontakt mal eine Datei hochladen und dann testen ob du auf diese Zugreifen kannst

Ralf

Hallo Ralf,

habe nochmals egroupware neu installiert (Ubuntu 17.10 via apt).

Permissions wurde so gesetzt, wie du es gesagt hast. Danach Backup zurück gespielt, alle Kontakte da jedoch ohne Foto!

Gruß

JayTee

RalfBecker EGroupware GmbH
November 16
Hi JayTee,

jtd:
[Wed Nov 15 18:17:48.337836 2017] [php7:notice] [pid 2147] [client 192.168.1.1:51921] PHP Warning: fopen(/var/lib/egroupware/default/files/sqlfs/07/736): failed to open stream: Permission denied in /usr/share/egroupware/api/src/Vfs/Sqlfs/StreamWrapper.php on line 313

Das sieht für mich so aus, als hättest Du ein Problem mit den Zugriffsrechten in Dateisystem.
Da das 17.1 Update die Bilder von der Datenbank in das virtuelle Dateisystem der EGroupware verschiebt (und dieses die Inhalte im Dateisystem des Webservers unter /var/lib/egroupware/default/sqlfs/ speichert), sind natürlich alle Bilder weg, wenn das nicht funktioniert. Das Update macht ja deswegen auch immer ein Backup davor.

Ich würde jetzt ein paar Sachen überprüfen, bevor ich nochmal das Update auf 17.1 versuchen würde:
a) Schauen das der Webserver auf /var/lib/egroupware schreiben darf:

> sudo chown -R <webserver> /var/lib/egroupware

Ok, ich habe das Problem jetzt nachstellen können: Update funktioniert so weit bei mir, allerdings läuft das Paketupdate als User root und von da her kann nachher der Webserver die Bilder nicht lesen :frowning:
Ist einfach zu beheben auf Deiner Installation, führe das chown -R /var/lib/egroupware/default/files NACH dem Update nochmal aus und die Bilder sind wieder da.
Muss mir überlegen wie ich das mit den Paketen mache …
Ralf

Mit dem Workaround “chmod” scheint es zu gehen. DB Backup eingespielt und Kontakte waren da.
Danke!

Hallo Ralf,
Das Problem mit den Fotos im Adressbuch scheint noch immer zu bestehen.
Ich habe heute auf unserem Testserver mal ein Update von 16.9 auf 17.1 (letzten Stand) gemacht und hatte auch das Problem. Ich konnte es zwar lösen indem ich die Berechtigungen nach unten durchgeschoben habe und anschließend Cookies und Cache gelöscht habe, aber schöner wäre doch eine Lösung, die tatsächlich bei Update die notwendigen Rechte setzt…

Moe

Hi moe,

das müsste eigentlich gelöst sein. Ich hatte das auch getestet (Debian, 16.1(16.9) => 17.1). Das Update hat die Fotos in das Verzeichnis gelegt und die Rechte korrekt gesetzt.

Was für ein OS?

Gruß
Stefan

Hallo Stefan,

also ich habe gestern auf unserem Testserver upgedatet und anschließend den Browsercache geleert.
Es wurden keine Bilder angezeigt. Dann chown -R www-data.root … gemacht nochmals Browsercache geleert und eGW neugeladen. Bilder wurden angezeigt.
OS ist Ubuntu 16.04.

Gruß Moe

Hi Moe,

das Problem ist gelöst, wenn Du das Default Verzeichnis verwendest, sprich /var/lib/egroupware: https://github.com/EGroupware/egroupware/blob/17.1/doc/rpm-build/post_install.php#L605

Falls Du ein anderes Verzeichnis verwendest, weiß das automatische Update nix davon (außer Du setzt eine Environment Variable).

Ralf

Hallo Ralf,

ja, dann liegt es daran weil ich ein anderes Verzeichnis verwende.
Wenn ich es richtig verstanden habe tritt das Problem aber nur einmal nach dem Update von 16.x auf 17.x auf, oder? Also wenn ich einmal das chown gemacht habe kann ich es wieder vergessen?

Gruß Moe

Ja, bis wir das nächste mal etwas darin updaten :wink:

Ralf

ging es nicht darum, dass die Bilder im Adressbuch auf das sqlfs verschoben wurden?

Ja, das sqlfs speichert den Inhalt der Dateien im regulären Dateisystem und die Metadaten in der Datenbank.

Problem mit geändertem data-directory betrifft halt alles was darin neu angelegt wir vom Update-Skript das mit root-Rechten läuft.

Kam bisher nur alle x Versionen mal vor, ist aber generell nicht ausgeschlossen. Einfache Abhilfe für die Zukunft, mach einen Symlink von Deinem aktuellen Verzeichnis auf /var/lib/egroupware und alles ist gut.

Ralf

Danke für den Hinweis und die Info!

Moe