Das abgeleitete Bild konnte nicht generiert werden.
am 23.04.2014 - 18:20 Uhr in
Hallo zusammen,
irgendwie laufen bei mir massig Meldungen in den Drupal-Logs auf:
Typ Bild
Datum Mittwoch, 23. April 2014 - 17:56
Benutzer hanswerner
Standort /sites/default/files/styles/profilbild/public/pictures/profilbild/picture-9786-1396365947.jpg?itok=bOSEGP79
Referrer /irgendeine-seite
Nachricht Das abgeleitete Bild unter public://styles/profilbild/public/pictures/profilbild/picture-9786-1396365947.jpg konnte nicht generiert werden.
Schweregrad Mitteilung
Hostname
Aktionen
Was ich soweit blicke: das betrifft Userbilder, diese werden offensichtlich in der Form "picture-UID-TIMESTAMP" abgespeichert (ist das neu in D7?). Nun scheint es, als wenn der User mit der Id 9786 ein neues Bild hochgeladen hat. Schaue ich nämlich im Ordner "public/pictures/profilbild/" nach, gibt es keine Datei mit dem Namen picture-9786-1396365947.jpg, wohl aber eine mit dem Namen picture-9786-1397261978.jpg. Das gleiche trifft auf einen anderen Nutzer zu - diese beiden Nutzer bzw. ihre (nicht mehr) vorhandenen Userbilder führen zu diesen ganzen Fehlermeldungen.
Nun dachte ich erst, dass mir das Boost-Modul da irgendwelche Seiten zwischenspeichert, auf denen noch das alte Bild dieser beiden Nutzer zu finden ist, aber dem ist nicht so. Tatsächlich betrifft das aber nur eingeloggte Nutzer - in der Zeile "Benutzer" in den Drupal-Logs steht immer ein Benutzername, niemals Gast, so dass das Boost-Modul ausfällt.
Dann dachte ich, dass vielleicht irgendwelche Views-Blöcke auf den Seiten, wo der Fehler auftritt, zwischengespeicherte Ergebnisse abliefern, in denen die alten Userbilder mit enthalten sind. Aber auch das nicht - die Timestamps der aktuell vorhandenen Userbilder sind auch schon 2 bis 3 Wochen alt, die Views werden aber nur einige Stunden zwischengespeichert. Drupal- und andere serverseitige Cachings würde ich also mal ausschließen.
Auch browserseitige Cachings können es eigentlich nicht sein - der Fehler tritt auch auf Seiten auf, die erstellt wurden, nachdem der jeweilige Nutzer sein Userbild geändert hat.
Also ich bin wirklich ziemlich ratlos - das ganze scheint nichts schwerwiegendes zu sein, kein Nutzer beschwert sich und es sind auch nur Mitteilungen, aber die müllen mir meine Drupal-Logs ganz schön zu. Von daher frage ich mal in die Runde:
Hatte das schon mal jemand anderes? Hat irgendwer einen Tipp?????
Viele Grüße,
Tobias
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich hatte das schon einmal
am 24.04.2014 - 10:39 Uhr
Ich hatte das schon einmal und habe es auch irgendwie gelöst, aber ich kann mich leider gerade nicht mehr daran erinnern, wie genau das ging...
Aber ich werde heute Mittag noch einmal scharf drüber nachdenken und die Bescheid geben, wenn mir etwas dazu einfällt!
Das wäre super... anscheinend
am 24.04.2014 - 15:02 Uhr
Das wäre super... anscheinend tritt das Problem jetzt doch bei mehr Usern auf. Bedeutet: es sind wohl doch nicht nur die 2 User, deren veraltete Bilder irgendwie/ irgendwo abgerufen werden. Mir scheint, dass jeden User betrifft, der ein neues Bild hochlädt.... aber wenn ich die Seiten als Admin oder als User aufrufe, sehe ich alle Userbilder... ich bin so verwirrt :-D
Ich hatte jetzt mal das "fast
am 25.04.2014 - 17:09 Uhr
Ich hatte jetzt mal das "fast 404" Modul deaktiviert, mein Verdacht war, dass das irgendwo Probleme machte... war es auch nicht. Hat jemand nicht viellleicht doch noch eine Idee?
Hallo Tobias, ich habe das
am 26.04.2014 - 10:52 Uhr
Hallo Tobias,
ich habe das Gefühl, dass da etwas mit Deinen Timestamps nicht stimmt.
Typ Bild
Datum Mittwoch, 23. April 2014 - 17:56
Das Bild soll am 23.4 upgeloaded worden sein.
Der Timestamp 1396365947 = Tue, 01 Apr 2014 15:25:47 GMT
ist also 1. April.
Der andere Timestamp (das Bild das existiert) 1397261978 = Sat, 12 Apr 2014 00:19:38 GMT
ist also vom 12. April.
Die grosse Frage ist nun wie kommst du in der Fehlermeldung auf den 1. April Timestamp?
Ist es das erstmalige upload Datum?
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Ich verstehe die Frage
am 27.04.2014 - 17:15 Uhr
Ich verstehe die Frage ehrlich gesagt nicht so ganz... ja, das User-Modul speichert die Nutzerbilder in der Form "picture-UID-TIMESTAMP" ab... also wird der 1.April wohl das Datum gewesen sein, wo der Nutzer das alte, nicht mehr vorhandene Bild hochgeladen hat. Ob das nun das erste oder 10. Mal eines Bilduploads durch den User gewesen ist, kann ich ja nicht mehr nachvollziehen, oder?! Ich frage mich viel mehr, wie es dazu kommen kann, dass es bei angemeldeten Nutzern offensichtlich dazu kommt, dass dieses veraltete Userbild überhaupt irgendwie aufgerufen wird und es dadurch zu den Fehlermeldungen kommt.
Außerdem ist der 23.04. nicht das Datum eines Bilduploads, sondern das Datum der Fehlermeldung!! Also das Datum, wo das veraltete, nicht mehr vorhandene Bild aufgerufen wurde. Da hast Du, glaube ich, erwas verwechselt?!
Hi, also wenn sich kein User
am 28.04.2014 - 08:54 Uhr
Hi,
also wenn sich kein User beschwert, könnte es evtl.
ein Bot sein der alte Links abklappert.
Wenn kein Fehler bei den usern auftritt und Dich die Log Einträge stören,
dann setzte das PHP Reporting in PHP.ini auf nur Error ggf:
// Melde alle Fehler außer E_NOTICE
// Dies ist der Vorgabewert in php.ini
error_reporting(E_ALL ^ E_NOTICE);
Dann werden Notizen nicht mehr geloggt.
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hallo Robert, danke für
am 28.04.2014 - 09:28 Uhr
Hallo Robert,
danke für Deinen Tipp, aber ein Bot kann es ja nicht sein - wie ich beschrieben habe, betrifft das nur angemeldete Nutzer. Es steht immer auch ein Benutzername in den Drupal-Logs, der den Fehler bei Besuch der Seite XYZ ausgelöst hat.
Ich bin kein Fan davon, Meldungen einfach auszuschalten... zum Einen wäre es ja schon sinnvoll nachzuvollziehen, was da schief läuft, zum Anderen bekomme ich dann auch andere PHP-Meldungen nicht mit, die ich aber schon gerne mitbekommen würde, oder? Es gibt ja immer mal wieder Meldungen wie "Undefined offset" oder so ähnlich, weil in irgendeinem Modul irgendwas nicht so richtig sauber geschrieben ist... diese Meldungen würde ich dann schon gerne weiterhin sehen
Hallo Tobias,grundsätzlich
am 28.04.2014 - 09:59 Uhr
Hallo Tobias,
grundsätzlich denke ich, dass der ganze Vorgang
die Bilder so zu speichern (uid-timestamp) sehr fehleranfällig ist.
Die Fehlermeldungen sind so aus mehreren Gründen vorprogrammiert.
Wenn ein User das Cookie gesetzt hat, muss er sich nicht einloggen sondern kommt direkt auf die Page.
Wenn er nun ein Bild anfordert das gerade einer geändert hat, bekommst Du diese Meldung garantiert, da die Datei weg ist (dateiname hat sich geändert).
Auch mit dem Caching muss hier aufgepasst werden(Browser u. Server)
Spiel mal dieses Szenario mit 2 Usern durch.
Du wärst wesentlich besser bedient, wenn Du die Bilder mit (uid-fid) speicherst.
Die fid ist eindeutig und ändert sich nicht, der Dateiname bleibt somit immer gleich.
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Also ich mache da gar nichts,
am 28.04.2014 - 10:39 Uhr
Also ich mache da gar nichts, das macht Drupal im User-Modul (user.module Zeile 485)... um das zu umgehen müsste ich eine eigene Funktion zum Abspeichern der User-Daten schreiben.
Hi, sorry ich dachte Du
am 28.04.2014 - 10:56 Uhr
Hi,
sorry ich dachte Du generierst den Pfad selbst.
Hast Du den Ablauf mal mit zwei Usern probiert?
Den einzigen Tipp den ich Dir geben kann, wäre die Datenbank Protokollierung via Devel einzuschalten,
um zu sehen von wo der SELECT des Bildes mit dem falschen Timestamp herkommt.
Viel Glück
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Das ist ein guter Hinweis...
am 28.04.2014 - 13:56 Uhr
Das ist ein guter Hinweis... aber in meiner Devel Settings Page habe ich keine Möglichkeit, die Datenbank-Protokollierung anzuschalten..Im Fieldet "Query log" kann ich nur festlegen, dass die Datenbankabfragen angezeigt werden, allerdings geschieht das unter der jeweiligen Seite, nicht in den Datenbank-Logs. Kann es sein, dass es diese Funktion in der Drupal7-Version nicht mehr gibt???