PEAR-Forum.de Übersicht Thema anzeigen - PEAR Lite - Unsauberes Löschen von CacheGruppen?

PEAR Lite - Unsauberes Löschen von CacheGruppen?


 

PEAR-Forum.de Übersicht » Caching
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gmb2007
Neuer User


Anmeldungsdatum: 04.06.2007
Beiträge: 4

Beitrag04.06.2007 11:11    PEAR Lite - Unsauberes Löschen von CacheGruppen? Antworten mit Zitat

Hallo,

wir benutzen CacheLite in einem grossen OnlineShop mit mehrern Cache-Gruppen.
PHP Version: 4.4.3 / Linux / CacheLite 1.7.2.
Wir haben folgendes Verhalten beobachtet: Unter bestimmten Umständen, scheint CacheLite, trotz eigentlich gültigem Cacheeintrag ein false zurück zu geben. Wir vermuten, dass das auftritt, wenn eine !!ANDERE!! Cachegruppe geflusht wird. Bei der Fehlersuche bin ich über folgende Codestelle gestolpert, die ich als ein wenig kritisch erachte.

Lite.php, _cleanDir Methode, Zeile 593 folgende:

[...]
case 'notingrou':
// START
if (!strpos($file2, $motif, 0)) {
// END
$result = ($result and ($this->_unlink($file2)));
}
break;

case 'callback_':
$func = substr($mode, 9, strlen($mode) - 9);
if ($func($file2, $group)) {
$result = ($result and ($this->_unlink($file2)));
}
break;

case 'ingroup':
default:
// START
if (strpos($file2, $motif, 0)) {
// END
$result = ($result and ($this->_unlink($file2)));
}
break;
[...]

Eventuell wird hier zuviel gelöscht => implizite Typkonvertierung
=> http://de.php.net/manual/de/function.strpos.php

Hat einer schonmal ein ähnliches Verhalten beobachtet oder ne sonstige gute Idee?

Danke und Grüsse
Bjoern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berdir
Power User


Anmeldungsdatum: 22.09.2005
Beiträge: 1347

Beitrag04.06.2007 15:04     Antworten mit Zitat

Ich hatte das Problem bei mir noch nicht, vermutlich wäre es mir aber auch nicht aufgefallen.

Ich weiss nicht sicher, ob der dritte Parameter "0" irgend ein Hack ist um dieses Verhalten zu unterdrücken, aber es kann auch ein Bug sein. Am besten erstellst du einen Bug-Report, dann kann sich der Entwickler die Sache anschauen

http://pear.php.net/bugs/report.php?package=Cache_Lite
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
gmb2007
Neuer User


Anmeldungsdatum: 04.06.2007
Beiträge: 4

Beitrag05.06.2007 6:56     Antworten mit Zitat

Hi,

hab einen Bug-Report gemacht.
Dritter Parameter bei strpos() ist der Offset, ab welchem begonnen werden soll, den String zu suchen.

Grüsse
Bjoern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berdir
Power User


Anmeldungsdatum: 22.09.2005
Beiträge: 1347

Beitrag05.06.2007 14:10     Antworten mit Zitat

Ich kann das Problem bei mir nicht nachvollziehen:

Code:

- Cache anlegen mit id test1 in Gruppe test1
- Cache anlegen mit id test2 in Gruppe test2
- Beide sind vorhanden
- Cache-Gruppe test1 löschen
- test1 ist nicht mehr vorhanden, test2 ist vorhanden
- Kompletter Cache löschen
- Beide sind nicht mehr vorhanden


Kannst du ein ähnliches Beispiel erstellen bei dem es nicht wie gewünscht funktioniert? Möglichst einfach..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
gmb2007
Neuer User


Anmeldungsdatum: 04.06.2007
Beiträge: 4

Beitrag05.06.2007 14:14     Antworten mit Zitat

Ja, wie gesagt, es kann auch ne race-condition sein...
Lässt sich nicht leicht nachbilden, evtl. ist es auch ein Problem, weil eine andere Komponente spinnt (Hardware, OS, ...).
Versuche nur, gewissen Sachen auszuschliessen und Erfahrungen, anderer zu erfahren.
Danke mal soweit!

Grüsse
Bjoern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berdir
Power User


Anmeldungsdatum: 22.09.2005
Beiträge: 1347

Beitrag05.06.2007 14:25     Antworten mit Zitat

Ja, du hast halt im ersten Post gesagt das du so etwas vermutest, bei mir hat das aber fehlerfrei geklappt.

Wenn du ein solches einfaches Beispiel erstellen kannst, bei dem es einen Fehler gibt ist die Chance halt deutlich höher, das es gefixt wird, ein nicht reproduzierbarer Fehler ist praktisch nicht korrigierbar.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
gmb2007
Neuer User


Anmeldungsdatum: 04.06.2007
Beiträge: 4

Beitrag05.06.2007 14:34     Antworten mit Zitat

Das Problem ist, dass sich da kein einfaches Beispiel erstellen lässt...
Naja, primäres Ziel wie gesagt, ist ein Einschätzung der Code-Stelle...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » Caching
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen