Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 26. Mai 2015 09:20

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Automated Task Failed UploadsCleanupExpiredTasks

Moin!

Im Systemprotokoll einer 1.12er Installation (alle Module aktuell) finden sich haufenweise Fehlermeldungen

Automated Task Failed     UploadsCleanupExpiredTasks

In einem Thread in der .org wurde angedeutet es läge wohl an einem fehlenden "Grant all", aber das trifft nicht zu.

Irgendne Idee was das sein könnte?


Servus,
Alex

Offline

#2 26. Mai 2015 09:39

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

Welche Module sind installiert?

Was passiert, wenn du den Eintrag "Speicherdauer der Einträge im Systemprotokoll:" auf "Manuell löschen" setzt?

Offline

#3 26. Mai 2015 10:44

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

cyberman schrieb:

Welche Module sind installiert?


CMSMailer         5.2.2
FileManager         1.4.5
MenuManager         1.8.6
ModuleManager         1.5.8
News         2.15.1
Search         1.7.12
CGExtensions         1.46.4
CGFeedMaker         1.0.20
FormBuilder         0.8.1.1
MleCMS         1.11.4
Revisions         1.0-Beta2
Showtime         3.4
SiteMapMadeSimple         1.2.8
TinyMCE         2.9.13
ToolBox         1.3.11
CGSimpleSmarty         1.8
Uploads         1.18.5

cyberman schrieb:

Was passiert, wenn du den Eintrag "Speicherdauer der Einträge im Systemprotokoll:" auf "Manuell löschen" setzt?

Ähem ... Wo stell ich denn das ein? Ich find da nix.
Mach ich grad mal.

EDIT: keine Änderung

Servus,
Alex

Beitrag geändert von faglork (26. Mai 2015 11:39)

Offline

#4 26. Mai 2015 10:53

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

Ahh ...

ich hab das mal mit einer anderen Website verglichen. Es könnte das Uploads-Modul sein ...

EDIT: Da gibts seit gestern ein Update

Werds mal installieren und sehen was dann passiert.

EDIT: Update hat nix geändert.

Servus,
Alex

Beitrag geändert von faglork (26. Mai 2015 11:38)

Offline

#5 26. Mai 2015 19:38

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

Nutzt du denn im Rahmen des Uploads-Moduls die Funktionalität des automatischen Löschens von Kategorien und Dateien?

Falls nein, kann man das im Backend irgendwo deaktivieren?

Offline

#6 26. Mai 2015 19:54

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

Bin mir ziemlich sicher dass es das Uploads-Modul ist.

Siehe Uploads/lib/class.UploadsCleanupExpiredTasks.php

Da sollen wohl die zeitlich begrenzten Uploads gelöscht werden, gesteuert durch den Pseudocron.

Anscheinend gibt es da ein "Problem" wenn es gar nix zu löschen gibt. Also kein wirkliches Problem, es gibt halt permanente Fehlermeldungen die das System log zumüllen.

Normalerweise würde ich da nen Bug-Report absetzen, aber ratet mal von wem das Modul ist ...


Servus,
Alex

Offline

#7 26. Mai 2015 19:56

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

cyberman schrieb:

Nutzt du denn im Rahmen des Uploads-Moduls die Funktionalität des automatischen Löschens von Kategorien und Dateien?

Falls nein, kann man das im Backend irgendwo deaktivieren?

"Auto delete expired entries after N hours (specify 0 to disable autodelete)::"

steht auf "0" ...

Servus,
Alex

Offline

#8 26. Mai 2015 20:59

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

Soll denn da überhaupt etwas gelöscht werden?

Oder benötigst du diese Funktionalität überhaupt nicht?

In diesem Fall ändere mal Uploads.module.php Zeile 983 von

		if( $capability == 'tasks' ) return TRUE;

auf

		if( $capability == 'tasks' ) return FALSE;

Offline

#9 27. Mai 2015 23:26

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

cyberman schrieb:

Soll denn da überhaupt etwas gelöscht werden?

Na derzeit nicht.
Das Modul ist auf der einen Seite ja grad erst installiert, noch gar nix konfiguriert/eingetragen/hochgeladen, aber schon Fehlermeldungen ...

cyberman schrieb:

Oder benötigst du diese Funktionalität überhaupt nicht?

Woher soll ich das wissen? Es sind verschiedene Kunden, mit verschiedenen Ansprüchen. Derzeit nutzt das niemand, aber das kann sich ja jederzeit ändern.


cyberman schrieb:

In diesem Fall ändere mal Uploads.module.php Zeile 983 von

		if( $capability == 'tasks' ) return TRUE;

auf

		if( $capability == 'tasks' ) return FALSE;

Auf jeden Fall ein Workaround. Thx!

Ich bau mal ein testsystem zusammen um das mit zeitlich begrenzten Downloads zu testen.

Ich hasse es wie die Pest wenn ich da überall Codeänderungen vornehmen muss um die Defaultwerte(!!) zu ändern/korrigieren. Naja, CG halt.

Servus,
Alex

Offline

#10 27. Mai 2015 08:48

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Automated Task Failed UploadsCleanupExpiredTasks

Ich hasse es wie die Pest wenn ich da überall Codeänderungen vornehmen muss um die Defaultwerte(!!) zu ändern/korrigieren.

Ich finde man sollte einerseits das Admin-Log im Backend komplett abschalten können, und andererseits bei jedem Modul eine Einstellung haben, ob es Logs schreiben soll, oder nicht.
Ebenso sollte man diese Pseudo-Crons für jedes Modul einzeln an-/abstellen können.

Im Prinzip müsste man im Uploads-Modul nur in der Datei /modules/Uploads/lib/class.UploadsCleanupExpiredTasks.php die Zeile 88:

ändern in

Damit bleibt die Funktionalität erhalten, generiert aber keine Fehler im Log, wenn es nichts zu tun gibt.
Wenn etwas anderes als "true" zurückgegeben wird, wird das vom CMS als Fehler interpretiert. Aber nur, weil keine Dateien zum Löschen gefunden werden, heißt das nicht, dass der Task fehlgeschlagen ist.



EDIT:

Man könnte natürlich auch stattdessen die Core-Funktion so abändern, dass hunderprozent eindeutig auf true/false prüft wird. Also in der Datei "/lib/classes/class.CmsRegularTaskHandler.php" die Zeile 130-141:

$res = $task->execute($time);
if( !$res )
{
	// test failed.
	audit('','Automated Task Failed',$task->get_name());
	$task->on_failure($time);
}
else
{
	audit('','Automated Task Succeeded',$task->get_name());
	$task->on_success($time);
}

So ändern:

$res = $task->execute($time);
if($res === false)
{
	// test failed.
	audit('','Automated Task Failed',$task->get_name());
	$task->on_failure($time);
}
else if($res === true)
{
	audit('','Automated Task Succeeded',$task->get_name());
	$task->on_success($time);
}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#11 27. Mai 2015 09:39

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

NaN schrieb:

Ich finde man sollte einerseits das Admin-Log im Backend komplett abschalten können, und andererseits bei jedem Modul eine Einstellung haben, ob es Logs schreiben soll, oder nicht.
Ebenso sollte man diese Pseudo-Crons für jedes Modul einzeln an-/abstellen können.

Also doch weitere Modularisierung des Backends big_smile ... LogManager, CronManager wink.

By the way - beim Uploads Module gibt es diese Funktionalität zum Abschalten. Ist allerdings die Frage, ob eine zentrale Verwaltung dann nicht den Code wieder zu sehr aufbauschen würde ...

Offline

#12 27. Mai 2015 09:53

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

cyberman schrieb:

By the way - beim Uploads Module gibt es diese Funktionalität zum Abschalten.

Reden wir über dasselbe Modul?

Ich find da nix zum Abschalten. Wo soll das denn sein?

Servus,
Alex

Offline

#13 27. Mai 2015 10:05

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

Hab das Modul aktuell nirgends am Laufen, sondern hab mir gestern nur im Rahmen des Code-Reviews die vernachlässigte / unvollständige deutsche Übersetzung angesehen

$lang['info_dflt_category_expiry'] = 'Mit diesem Wert wird festgelegt, wie lange die Dateien dieser Kategorie verfügbar sein sollen, bevor sie automatisch gelöscht werden. Mit dem Wert 0 wird das automatische Löschen der Dateien deaktiviert.';

und bin davon ausgegangen, dass diese Funktionalität vorhanden ist ...

Offline

#14 27. Mai 2015 10:53

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

cyberman schrieb:

Hab das Modul aktuell nirgends am Laufen, sondern hab mir gestern nur im Rahmen des Code-Reviews die vernachlässigte / unvollständige deutsche Übersetzung angesehen

$lang['info_dflt_category_expiry'] = 'Mit diesem Wert wird festgelegt, wie lange die Dateien dieser Kategorie verfügbar sein sollen, bevor sie automatisch gelöscht werden. Mit dem Wert 0 wird das automatische Löschen der Dateien deaktiviert.';

und bin davon ausgegangen, dass diese Funktionalität vorhanden ist ...

Ach so, das ... ist da, steht auch auf 0, aber die Fehlermeldung gibts trotzdem ...

Servus,
Alex

Beitrag geändert von faglork (27. Mai 2015 11:05)

Offline

#15 27. Mai 2015 12:08

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Automated Task Failed UploadsCleanupExpiredTasks

bin davon ausgegangen, dass diese Funktionalität vorhanden ist ...

Naja, speichern kann man diesen Wert.
Er wird allerdings nirgends verwendet.

Man müsste also in der Datei "/modules/Uploads/Uploads.module.php" die bereits von Cyberman angesprochene Zeile 983 (in der Funktion 'HasCapability()') so ändern:

if( $capability == 'tasks' ) return $this->GetPreference('category_expiry') > 0;

Damit wird der Task nur dann ausgeführt, wenn er auch wirklich ausgeführt werden soll.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#16 27. Mai 2015 12:16

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Automated Task Failed UploadsCleanupExpiredTasks

NaN schrieb:

bin davon ausgegangen, dass diese Funktionalität vorhanden ist ...

Naja, speichern kann man diesen Wert.
Er wird allerdings nirgends verwendet.

Von wem war das Modul noch gleich? Das kommt mir doch irgendwie bekannt vor ;-)

Bei dem anderen Bug des Moduls (kein WYSIWYG für Beschreibung/Extra Felder) wird ein Wert verwendet, der aber nirgends gesetzt wird ...

Aber keine Bug Reports von uns annehmen. Bravo. Weiter so.

Servus,
Alex

Beitrag geändert von faglork (27. Mai 2015 12:19)

Offline

#17 27. Mai 2015 12:23

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Automated Task Failed UploadsCleanupExpiredTasks

Also doch weitere Modularisierung des Backends big_smile ... LogManager, CronManager wink.

Wa... ?!?
Nicht doch!
Dazu reicht eine Einstellung in den Globalen Einstellungen (on/off) und eine, die jedes Modul selber mitzubringen hat.
Dann muss man nur noch - wie vom Erfinder eigentlich gedacht - die Modul-API-Funktion Audit() nutzen (anstelle der globalen Funktion) und kann diese im Modul so überschreiben, dass sie die Einstellung vorher prüft, bevor sie Logs schreibt:

public function Audit($itemid = '', $itemname, $action)
{
	!$this->GetPreference('audit', true) || parent::Audit($itemid, $itemname, $action);
}

Allerdings ist man dabei immer noch vom Entwickler abhängig. Wenn der macht, was er will, kommt man da keinen Schritt weiter. Und die vom System generierten Logs betreffs einiger Modul-Aktionen kann man damit leider auch nicht umgehen. Mit einem separaten Modul kann es dem Entwickler und dem Anwender Wurscht sein. Der Entwickler schreibt einfach seine Logs und der LogManager entscheidet dann anhand der Einstellungen des Anwenders, ob das auch wirklich in die DB geschrieben wird. Gleiches für die Tasks/Pseudo crons. Klingt zwar nach Overhead, aber die Idee hat was.

Dazu müsste man z.B. den CmsRegularTaskHandler als Modul auslagern (siehe Edit: hier), der dann entweder die Einstellung des Moduls oder eine eigene Liste mit Einstellungen für Module prüft.

Das Problem ist jedoch, dass entweder der Core abhängig wird von einem Modul (es sollte eigentlich immer andersherum sein - die ContentOperations sind in der 2.0 z.B. auch nicht abhängig vom CMSContentManager) oder sehr viele Module bzw. der Core umgeschrieben werden müssen - was wiederum bedeutet, dass man auf den Entwickler angewiesen ist, die Audits/Tasks (können die sich mal auf einen einheitlichen Namen einigen? Logs, Audits, Tasks, Jobs ... roll das macht mich voll wuschig) über das Modul vorzunehmen.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline