Speicherplatzbeschränkung wird nicht angezeigt unter Webseiten

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von isp_geek, 13. Sep. 2015.

  1. isp_geek

    isp_geek Member

    Hallo Leute, hallo Till,
    ich hab schon in diesem anderen [Thread] versucht das Problem zu klären, es kam aber leider nicht zur Lösung - nun mache ich ein eigenes Thema dazu auf, da ich nun alle Server auf p8 geupdatet habe und mir dieses Problem erneut ins Auge stochen ist .

    Ich hatte dieses Problem gefixt indem ich in der lib/classes/tpl.inc.php:~974 in Funktion _arrayBuild() diese Zeile auskommentiert habe:
    Code:
    //if(!is_array($arr[$i])) return false;
    Auch jetzt nach dem Patch musste ich das wieder auskommentieren, damit alle Daten unter Speicherplatzbeschränkung angezeigt werden. Damit das nicht zur ollen Gewohnheit wird möchte ich diesem Problem jetzt mal auf den Grund gehen und habe die Zeile wieder einkommentiert:

    Code:
    repquota -avugs
    auf allen Servern, auf denen Quota installiert ist liefern auch korrekte Daten. Es gibt aber auch Server, auf denen kein Quota installiert ist, weil ich das dort nicht benötige.

    Alle Server sind mit ISPConfig3 Patch8

    In der user_quoata_stats.php:22 habe ich den SQL Befehl
    Code:
    SELECT data from monitor_data WHERE server_id > 2 AND type = 'harddisk_quota' ORDER BY created DESC
    erweitert, um einzelne Server selektieren zu können.

    Server 1 und 2 sind ohne Quota, 3 und 4 sind mit Quota. Beim Testen ist mir folgendes aufgefallen:
    mit "server_id < 3": Liste wird angezeigt, alles "unlimited": soweit korrekt
    mit "server_id < 4": Liste wird angezeigt, Speicherbelegung wird nur für Server 3 angegeben, sonst alles "unlimited": soweit korrekt
    mit "server_id = 3": Liste wird angezeigt, Speicherbelegung wird nur für Server 3 angegeben, sonst alles "unlimited": soweit korrekt
    mit "server_id > 3": Liste wird angezeigt, Speicherbelegung wird nur für Server 4 angegeben, sonst alles "unlimited": soweit korrekt
    mit "server_id = 4": Liste wird angezeigt, Speicherbelegung wird nur für Server 4 angegeben, sonst alles "unlimited": soweit korrekt
    mit "server_id > 2": Liste wird nicht angezeigt: alles leer

    Daraus folgere ich, dass wenn man mehrere Server anzeigen lassen möchte, die Quota haben, hier etwas kaputt geht und $arr[$i] aus Abfrage if(!is_array($arr[$i])) kein Array ist:

    Habe in der lib/classes/tpl.inc.php:~974 vor diesem Befehl eine Ausgabe gemacht, der mir $arr[$i] ausgibt
    Code:
            private function _arrayBuild($arr)
            {
                if (is_array($arr) && !empty($arr)) {
                    $arr = array_values($arr); // to prevent problems w/ non sequential arrays
                 
                    for ($i = 0; $i < count($arr); $i++) {
                        echo "arr[i]:".$arr[$i]."<br>";
                        if(!is_array($arr[$i]))  {
                            echo "var i:".$i;
                            return false;
                            }
                        foreach ($arr[$i] as $k => $v) { ...
    Ergebnis auf der Webseite für alle Server:
    Code:
    arr[i]:Array
    arr[i]:Array
    arr[i]:40176
    var i:0
    Ergebnis auf der Webseite nur für Server mit Quota (server_id > 2):
    Code:
    arr[i]:Array
    arr[i]:Array
    arr[i]:40176
    var i:0
    40176 findet sich nur in $rec['used_sort'] in user_quoata_stats.php:~34 in Funktion prepareDataRow($rec) - aus diesem Grund reicht es vollkommen aus dieses Feld wegzulassen damit die Speicherplatzbelegung wieder angezeigt wird.

    Auch keine schöne und dauerhafte Lösung. Ich möchte Euch bitten, dass sich einer der Entwickler dem anmehmen könnte, damit - was auch immer dieser Fehler ist - mit dem nächsten Patch beseitigt werden kann.

    Danke Euch vielmals.
     
    Zuletzt bearbeitet: 13. Sep. 2015
  2. Till

    Till Administrator

    Ich habe das unter Debian Single und multiserver, ubuntu, CentOS und opensuse getestet und es funktioniert auf allen Servern in p8 fehlerfrei. Da du sagst dass du in deinen Servern etwas gepatcht hast gehe ich davon aus dass deine Patches irgend etwas am Code ändern was dieses Problem bei dir verursacht, denn woanders gibt es keine Probleme.

    Wenn du sicher bist dass du keine Zeile in einer der ispconfig Dateien geändert hast, dann mach bitte einen bugreport im bugtracker.
     
  3. isp_geek

    isp_geek Member

    Na ich habe lediglich alle Server von p5 auf p8 aktualisiert - mehr erstmal nicht.

    Bevor ich ein Bugreport mache, hab ich noch eine Frage:

    Beim Updpate von ISPConfig, hab ich die Erfahrung, gemacht, dass alle Änderungen, welche ich zuvor gemacht habe verworfen werden .. defacto eine neue gepachte Version eingespielt wird. Ist das der Fall oder gibt es Teile der Installation, welche nicht neu eingespielt werden?

    Dann kann ich mir auch wirklich sicher sein, dass ich keine der ispconfig Dateien geändert habe.
     
  4. Till

    Till Administrator

    Es wird alles überschrieben außer config Dateien in conf-custom und eigene Templates.
     
  5. isp_geek

    isp_geek Member

    Also ich glaube den Fehler gefunden zu haben
    Code:
    if(!is_array($arr[$i])) return false;
    sollte nicht FALSE sondern müsste TRUE zurückgeben
    Code:
    if(!is_array($arr[$i])) return TRUE;
    Ist das nicht der Fall dann wird die Abarbeitung abgebrochen, wenn sich in $arr[$i] ein Array befindet.
    Das ist für das Feld $rec["used_sort"] der Fall, da hier nicht wie bei allen anderen Feldern wie used, hard, soft, files darauf geachtet wird, siehe z.B
    Code:
    if (!is_numeric($rec['soft'])) $rec['soft']=$rec['soft'][1];
    , dass dieFelder numerisch sind.
    Oder zweitens eben hier sicherstellen dass
    Code:
    $rec['used_sort'] = $rec['used'];
    ist nachdem die Nummerik von $rec['used'] geprüft wurde .. beides geht ich tendiere zu dem Zweiten.

    Warum, das bei dir funktioniert ist mir echt unklar.

    Ich würde ja gern ein Bugreport schreiben, muss ich das hier http://bugtracker.ispconfig.org/ machen und gibt es da was zu beachten oder einfach Problem schildern wie hier?
     
    Till gefällt das.
  6. Till

    Till Administrator

    Einfach anmelden und das problem schildern.
     

Diese Seite empfehlen