Quota-Ausgabe Fehler ISPConfig 3.0.3.1

Dieses Thema im Forum "Entwicklerforum" wurde erstellt von daben, 5. Jan. 2011.

  1. daben

    daben Member

    Quota-Ausgabe Fehler ISPConfig 3.0.3.1 / ISPConfig 3.0.4.4

    Hallo,

    mir ist kürzlich aufgefallen, dass die Quota-Ausgabe übers Controlpanel bei mir nur sporadisch funktioniert. Selten wird alles korrekt angezeigt (kurz nach einem Serverneustart), aber meistens bekomme ich den Fehler:
    Code:
    Fatal error:  Unsupported operand types in /usr/local/ispconfig/interface/web/sites/user_quota_stats.php on line 49
    Die betroffene Stelle in der Datei user_quota_stats.php sieht so aus:
    Code:
    if($rec['used'] > 1024) {
                            $rec['used'] = [B]round($rec['used'] / 1024,2)[/B].' MB';
                    } else {
                            $rec['used'] .= ' KB';
                    }
    
    Der Fehler taucht in der round()-Funktion auf. Ich habe mir nun $rec['used'] genauer angesehen. Der Inhalt davon ist wieder ein Array.
    ==> Der Zugriff muss auf das richtige Array Element geschehen.

    Durch den Zugriff auf das 2. Array Element funktioniert es:
    Code:
     ...
                            $rec['used'] = round($rec['used'][B][1][/B] / 1024,2).' MB';
     ...
     
    Merkwürdig ist, dass der Fehler nur bei mir auftritt. Zumindest habe ich noch niemanden mit selbigem Problem gefunden.
     
    Zuletzt bearbeitet: 11. Mai 2012
  2. JanPeters

    JanPeters New Member

    Kann den Fehler auf unserer Installation auch bestätigen.

    Tauchte nach dem automatischen Update auf 3.0.3.1 auf, während dessen allerdings meine SSH Verbindung mit dem Server abbrach aus welchen Gründen auch immer.

    Hatte vor ISPConfig nächste Woche einmal neu zu installieren, in der Hoffnung das Problem zu fixen. Sollte es dafür allerdings eine alternative Lösung geben - gerne.

    Habe mich daher auch noch nicht mit Ursachenforschung beschäftigt, bin aber gerne bereit dazu, wenn es hilfreich ist.

    Grüße

    Jan Peters
     
  3. daben

    daben Member

    also mein Hotfix sieht so aus:

    nach
    Code:
      $rec['used'] = $monitor_data['user'][$username]['used'];
      $rec['soft'] = $monitor_data['user'][$username]['soft'];
      $rec['hard'] = $monitor_data['user'][$username]['hard'];
    
    füge ich in Zeile 48

    Code:
    if (!is_numeric($rec['used']))
      $rec['used']=$rec['used'][1];
    if (!is_numeric($rec['soft']))
      $rec['soft']=$rec['soft'][1];
    if (!is_numeric($rec['hard']))
      $rec['hard']=$rec['hard'][1];
    
    ein. Der Rest der Datei bleibt unangetastet.
     
  4. Till

    Till Administrator

    Ich hab es mal im Bugtracker aufgenommen.
     
  5. JanPeters

    JanPeters New Member

    Dankeschön für den Lösungshinweis, hat wunderbar funktioniert!

    Grüße und einen schönen Abend noch!
     
  6. JanPeters

    JanPeters New Member

    Noch eine kurze Ergänzung: Es werden jetzt zwar Werte angezeigt, diese stimmen aber zum Großteil nicht. Bei den meißten Sites steht dort "4kb", bei einigen wenigen allerdings die richtige Größe.
    Inzwischen läuft 3.0.3.2 bei uns auf dem Server.

    Nun das merkwürdige: Ich habe bereits einmal, nach dem Einspielen des "Patches" die (vermeintlich) richtigen Werte gesehen.

    Irgenwelche Ideen?
    @daben: Stimmen die Werte bei dir? Falls ja, muss ich wohl nochmal checken, was da mit dem Quota bei uns nicht stimmt.

    Grüße und Danke für die Unterstützung

    Jan Peters
     
  7. daben

    daben Member

    bei mir sind die Werte korrekt!
    Was sagt denn die quota-Ausgabe, wenn du diese direkt von der Kommandozeile aus machst?

    repquota -a -u

    Sind die Werte korrekt?
     
  8. JanPeters

    JanPeters New Member

    Die Werte passen, kurzer Auszug anbei:

    Code:
    .
    .
    .
    web110     +-   31232   30720   31744   none    1990     0     0
    web112     --   62512  102400  103424           3223     0     0
    web113     --   86888  153600  154624           2877     0     0
    web114     --   50220   51200   52224           2882     0     0
    web115     --   25152   51200   52224           1989     0     0
    web116     --   21664   51200   52224           1812     0     0
    web117     --   71356  102400  103424           2372     0     0
    web119     --   82064 1536000 1537024           1888     0     0
    web120     --   14740   51200   52224           1151     0     0
    web121     --  110196  512000  513024           4828     0     0
    web122     --   95092  512000  513024           8674     0     0
    web124     --   32100  307200  308224           4088     0     0
    web125     --   32284  102400  103424           2074     0     0
    web132     --  108788  204800  205824           4179     0     0
    web141     --   50960 1024000 1025024           6903     0     0
    web142     --   16740  102400  103424           2468     0     0
    web143     --  233584  256000  257024          14141     0     0
    web144     --      68  102400  103424             19     0     0
    web146     --   44280   51200   52224           2627     0     0
    web150     --   14200  102400  103424           1763     0     0
    web151     --   44256   51200   52224           2984     0     0
    web152     --   58632 1536000 1537024           2813     0     0
    web154     --  125016 1024000 1025024          14054     0     0
    web155     --   10588  102400  103424           1088     0     0
    .
    .
    .
    
    In ISPConfig hat die Domain von web155 z.B. nur 4kb.
    Spaßig ... jetzt gerade nach dem Ausführen von repquota -a -u stimmen die Werte "mal wieder"... sehr komisch.

    //Update (19:25 Uhr):
    Und schwups, da sind nun fast alle Einträge wieder auf "4kb". Irgendwas scheint da nicht richtig zu laufen...

    Grüße
     
    Zuletzt bearbeitet: 5. Feb. 2011
  9. daben

    daben Member

    Du kannst nach
    mal $rec['used'] komplett ausgeben lassen:

    evtl. steht der korrekte Wert an einer anderen Array-Position.
     
  10. daben

    daben Member

    Nach einem Distributionsupgrade von Debian 5 auf Debian 6 habe ich nun mit ISPConfig 3.0.4.4 erneut den Fehler.
    Die korrekten Werte stehen auf dem Server nun in $rec['used'][0] anstatt $rec['used'][1].

    Da es bei meinem zweiten Server im Element [1] steht habe ich den Code nun folgendermaßen angepasst:
    Code:
    if (!is_numeric($rec['used'])){
                            if ($rec['used'][0] > $rec['used'][1]){
                                    $rec['used']=$rec['used'][0];
                            }else{
                                    $rec['used']=$rec['used'][1];
                            }
                    }
                    if (!is_numeric($rec['soft'])) $rec['soft']=$rec['soft'][1];
                    if (!is_numeric($rec['hard'])) $rec['hard']=$rec['hard'][1];
    
    Damit werden nun überall wieder die korrekten Werte angezeigt. Es ist aber schon etwas seltsam...
     
  11. Till

    Till Administrator

    Ok, danke für die info.Ich hab es im bugtracker aufgenommen.
     

Diese Seite empfehlen