*gelöst* Fatal error: Allowed memory size bei Aufruf von Infrastruktur/Gebäude



  • Hallo,

    gerade installiert und schon kaputt bekommen … 😞 Ich habe zwei Gebäude und einen Raum in die Inventarliste eingetragen um ein bisserl 'rumzuspielen' und das System kennen zu lernen. Nach einer Änderung an einem Gebäude (ich weiß nicht mehr was ich geändert habe) kann ich nun die gesamte Gebäudeliste nicht mehr aufrufen. Nach Klick auf Infrastruktur/Gebäude/Objekte rödelt das System ca 30 Sek. (Apache-Server ist voll ausgelastet in der Zeit) und bricht dann ab mit folgender Fehlermeldung:

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in 
    /var/www/idoit/src/classes/components/isys_component_database_mysql.class.php on line 259 
    

    Alle anderen Objekt-Kategorien kann ich aufrufen, egal ob leer oder Einträge vorhanden. Ich glaube ich habe in den Beziehungen eines Gebäudes auf sich selbst verwiesen. Geht das? Kann das sein? Kann ich irgendwie direkt in der Datenbank die Gebäude löschen? Es sind ja nur Testdaten … Ich vermute nicht, dass es ein Speicherproblem ist, wie der Fehler angezeigt wird. PHP-Speicherbegrenzung liegt bei 128MB.

    Danke vorab für eine Idee/Lösung ...

    Benki


  • i-doit Kenner

    Hi,

    kannst du bitte versuchen es genauer nachzustellen? Mit einer Beziehung kann man dieses Verhalten nicht nachstellen (Eine Beziehung auf sich selber ist möglich, verursacht aber keine Probleme).

    Lieben Gruß
    Christian


  • i-doit Kenner

    Hi nochmal,

    also mit den "räumlich zugeordneten Objekten" kann man tatsächlich den Objekttypen lahmlegen, wenn man dem Objekt sich selbst zuweist. Das werden wir (obwohl man dies sowieso nie tun sollte) im nächsten Release verbieten.

    Lieben Gruß


  • i-doit Kenner

    Und noch eine dritte Antwort hinterher ;),

    du kannst in der Tabelle isys_catg_location_list den Eintrag löschen in dem die isys_catg_location_list__isys_obj__id mit der isys_catg_location_list__parentid übereinstimmen. Damit löscht du diese falsche Zuweisung.

    Lieben Gruß
    Christian



  • Wow,

    danke für die schnelle Antwort. Da hab ich aber ne goldenes Händchen gehabt. Gleich der zweite Klick und das System zerschrotet 😉 Dein Tipp hat funktioniert und es läuft wieder alles!

    Besten Dank!

    Benki



  • @creiss:

    Und noch eine dritte Antwort hinterher ;),

    du kannst in der Tabelle isys_catg_location_list den Eintrag löschen in dem die isys_catg_location_list__isys_obj__id mit der isys_catg_location_list__parentid übereinstimmen. Damit löscht du diese falsche Zuweisung.

    Lieben Gruß
    Christian

    t

    Noch eine Ergänzung: Man kann sich auch wunderbar Kreisreferenzen in o.g. Tabelle erzeugen, die sich über mehrere Objekte erstrecken Objekt A hat Objekt B als parent und Objekt B hat Objekt A als parent. Dann gestaltet sich das Suchen etwas aufwändiger.


  • i-doit Kenner

    Hi,

    sowas soll man ja auch nicht machen. 😉

    Lieben Gruß
    Christian



  • Hallo,

    habe gleichen Fehler.

    Zuletzt viele Räume zugeordnet.

    Die letze Änderung, die ich gemacht habe laut Log:

    Titel: HP 25 10G-48 (Typ: "Switch"): Ein Eintrag in Kategorie "Standort" wurde geändert
    Datum: 2013-06-06 10:47:27
    Alarmlevel: 0 (Hinweis)
    Benutzer: 1234
    Geänderte Werte: 2
    Änderungskommentar:
    SQL Beschreibung / Log: »
    Änderungen
    Wert Von Auf
    Standort Schrank-P1 (Schrank)
    Einschub hinten vorne

    Kann mir jemand die Tabellen nennen, die hier geändert werden müssen um wieder arbeiten zu können?

    Arbeite mit: i-doit - 0.9.9-7



  • Hallo,

    ich habe anscheinend auch den Fehler gemacht und eine "Schleife" eingebaut. Reaktion: Virtuelle MAschine ist zu 100% ausgelastet und ich kann nichts mehr aufrufen.

    Letzte Änderung an einem Switch Eintrag gemacht.
    Wie kann ich einen kompletten Switch aus der DB löschen? Finde die Tabelle nicht.

    @creiss:

    Und noch eine dritte Antwort hinterher ;),

    du kannst in der Tabelle isys_catg_location_list den Eintrag löschen in dem die isys_catg_location_list__isys_obj__id mit der isys_catg_location_list__parentid übereinstimmen. Damit löscht du diese falsche Zuweisung.

    Lieben Gruß
    Christian

    Hat jemand eine ähnlich Lösung für mich?

    Eine SQl Abfrage:```
    SELECT * FROM isys_catg_location_list WHERE isys_catg_location_list__isys_obj__id = isys_catg_location_list__parentid

    
    Hat jemand eine Idee wo ich suchen muss?
    
    Danke. Gruß TL


  • Hallo
    bei mir auch derselbe Fehler.
    Ich bin mir ziemlich sicher, dass ich keine Rekursion (Schleife) mit den locations produziert habe.
    Ein Hauptstandort mit der gesamten Struktur ist nicht mehr vorhanden.
    Der oben beschriebene select gibt auch kein Ergebnis aus.
    Ich hatte gerade angefangen das Programm zu mögen …. 😞

    Gruss
    Jens


 


Datenschutz / Privacy Policy