Absturz EEP17 beim speichern der Anlage im Fahrmodus

!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
In the case of pictures that are attached to the article, the source must also be stated. This also applies to your own pictures, which were taken by you. Pictures without source information will be deleted!
  • EEP_Player

    Ist es eine Lua-Datei, die mit der Anlage gespeichert wird,

    Habe die Lua-Datei "BetterContacts" im EEP- Ordner "Lua". Der Aufruf erfolgt in den Anlagen, wo es benötigt wird mit "require"

    Viele Grüße

    Karl Heinz

    Benutzte Programme und Hardware

    Programme:

    EEP 17.3 Expert [x64], PlugIn 1, 2, 3

    HomeNos 17.0

    Tauschmanager, Model Multiplier, Modell Explorer


    Hardware:

    Acer Nitro 5 AN517-41

    AMD Ryzen 7 5800H with Radeon Graphics

    64 GB RAM, nVidia Geforce RTX3080 Laptop GPU7552

    Windows 11 Home, Version 23H2, Betriebssystembuild 22631.3296

    Windows Defender

  • Ich habe dieses Thema erst jetzt entdeckt, danke Karlchen57 für die Erwähnung!

    Ich sollte Bettercontacts installieren und mir genauer ansehen, wie es funktioniert.

    Ist es eine Lua-Datei, die mit der Anlage gespeichert wird, ich meine nur für diese eine Anlage mit gleichem Namen usw. gedacht ist, oder ist es eine Datei, die verschiedene Einstellungen für mehrere Anlagen enthält, jedes Mal beim Start einer Anlage (also vom Lua-Skript) aufgerufen und beim Speichern der Anlage auch ergänzt wird?

    Falls du es nicht eh schon gefunden hast: BetterContacts kannst du von meiner Homepage herunterladen, und den Quelltext kannst du dir auch auf GitHub anschauen.

    BetterContacts ist eine (allgemeine, also nicht anlagenspezifische) Lua-Datei, die per require eingebunden wird. Dabei passiert ein bisschen "Lua-Magie" mit Metatables, _ENV und load() (um einen String als Lua-Befehl auszuführen). Das alles passiert aber innerhalb von EEP-Lua, es finden keinerlei Dateiänderungen oder Schreibzugriffe auf der Festplatte statt.


    Die Fehlerbeschreibung "EEP hängt sich auf und alle Änderungen weg" höre ich im Zusammenhang mit BetterContacts übrigens nicht zum ersten Mal. In der Doku (auf meiner Homepage, oben verlinkt) steht unter anderem folgendes (den hier wichtigen Teil habe ich fett gemacht):

    preventReturn0

    true (Standardwert) oder false. Wenn true, wird ein return 0 in der EEPMain abgefangen und stattdessen 1 zurückgegeben. Dieser Eingriff wird mit einer Warnung im Ereignisfenster kommentiert.
    Eine kurze Erklärung dazu: Wird die EEPMain einmal mit return 0 beendet, wird sie anschließend von EEP nicht mehr erneut aufgerufen. Das ist das gewollte Verhalten (wobei mir kein sinnvoller Anwendungsfall dafür einfällt). Es gibt aber auch eine ungewollte Konsequenz: Wenn du nun einen Kontaktpunkt-Dialog mit „komplexem“ Lua-Eintrag (der von BetterContacts behandelt werden muss) per Klick auf OK schließen willst, hängt sich EEP komplett auf, und alle ungespeicherten Änderungen sind verloren. Die Option preventReturn0 versucht dies zu verhindern. Wenn du dir sicher bist, dass deine EEPMain niemals mit return 0 beendet wird, kannst du dieses Sicherheitsfeature auf eigene Gefahr abschalten.


    Ich habe nicht genau verstanden, warum sich EEP unter diesen Umständen komplett aufhängt. Vermutlich wartet es auf irgendeine Antwort, die aber erst mit der nächsten "Ausführungsrunde" von Lua kommt, die aber nicht mehr stattfindet, wenn die EEPMain mit return 0 beendet wurde. Vielleicht gibt es beim Speichern in 3D ein ähnliches Problem, dass noch auf eine Antwort gewartet wird, die aber nicht mehr kommt, weil Lua nicht mehr ausgeführt wird.

    An Karlchen57 hätte ich noch ein paar Rückfragen:

    • Tritt das Problem "EEP hängt sich beim Speichern auf" jedes Mal (wenn BetterContacts eingebunden ist), oder nur manchmal?
    • Tritt das Problem auch auf einer komplett leeren Anlage auf, oder nur dann, wenn Kontaktpunkte mit Lua-Eintrag "im Spiel sind"?
    • Tritt das Problem auch auf, wenn du statt require("BetterContacts_BH2") den Vorgänger-Codeschnipsel verwendest? Der findet sich auch noch auf meiner Homepage. Falls ja (was ich vermute), reduziert das den zu analysierenden Lua-Code aufs Wesentliche.

    Viele Grüße
    Benny

  • Benny (BH2)

    Moin

    Wenn ich eine leere Anlage nur mit BetterContacts versehe, dann hängt sich EEP immer auf.

    Die Vorgänger Version ändert daran leider auch nichts!

    Gruß Reinhard

    Der Oldenburger :bd_1:

    EEP 9 - 17.2/2 | Home-Nos 17 und Blender 2.79 & 3.6 |Moodellkatalog | Bilder Scanner | Modell Explorer

    Desktop: Gigabyte Z790 Gaming | Intel i5-13600K | Corsair Venegance 32 GB DDR5 | Gigabyte GeForce RTX 4060 |1TB M.2 SSD + 2TB M. 2SSD + 2 x 1TB SSD

    LG 34WQ75X + Samsung S34J550WQR 3440x1440 | Win 11 Pro

  • Benny (BH2)

    Mach dir mal nicht so einen argen Kopf um dein Script.

    Ich habe ja dazu aufgerufen, ob das mit dem Script von anderen bestätigt werden kann. Die Antwort ist "Nein".

    Außerdem muss die Antwort mit dem Aufhängen relativiert werden. Nach bisherigen Schilderungen spricht einiges dafür, dass EEP sehr wohl noch arbeitsfähig ist, jedoch auf eine Rückmeldung wartet. Die Meldung "Keine Rückmaldung" kommt von Windows selbst. Das ist ne alte Lachnummer von verwirrend übersetzt. Gemeint ist, dass kein Feedback auf den Request von Windows folgt. Eine Größere Datenbank Abfrage per SQL führt schon dazu. Klickt man die Anwendung noch einmal an, würde sich der Graphik-Zyklus "aufhängen". Deshalb klinkt Windows diese Anwendung erstmal von der Aktualisierung aus und quittiert das mit dem grauen Fenster.

    Dein Trick mit den Metatables findet schon zur Laufzeit statt, also wenn es irgendwo durch einen Kontakt, oder wie auch immer aufgerufen wird. Deshalb glaube ich nicht, dass das bei einer leeren Anlage, bei dem das require aufgerufen wird, relevant ist.

    Das muss was anderes sein. Du wirst also als unschuldig frei gesprochen :ba_1::an_1:

    Einige Schilderungen hier scheinen sogar etwas zu sein, dass schon vor dem Plugin 3 relevant waren.

    Wenn man jetzt mal zurück zum ersten Post geht, dann tritt das auf, wenn EEP aus dem Playmodus gespeichert wird:

    Beim Speichern einer Anlage im Fahrmodus geht EEP in den Dauerschlaf, [...] EEP zur Zeit auf Pause steht!

    [...]

    Damit sind dann auch alle gemachten Änderungen hinfällig.

    Wird vorher EEP in den Pausenmodus, oder in 3D Editiermodus geschaltet, tritt der Fehler nicht auf!

    Im Playmodus rennen ja noch RMs und KPs werden ausgelöst. Drückt man auf Speichern, ruft EEP die Pausen-Funktion auf.

    Drückt man im Playmodus selbst auf Pause und speichert dann, so hängt sich nix auf. Es scheint als so, als ruft EEP die Speicher Routine in einem eigenen Thread auf während im Nanosekundenbereich erst danach Pause kommt. Möglich, dass das zu so nem Art Deadlock führt.

    Jetzt gibt es ja noch die Meldung vom Jürgen:

    macht uns Windows mit dem DEP-Update (Data Execution Prevention) Probleme

    Ich glaube Reinhard hat was, dass er als einziger hat (oder einer von wenigen). Die anderen Meldungen was zu sein, dass schon länger existiert. Ich glaube, da passiert was auf Windows-DLL-Ebene. Das dauert sehr lange das zu finden, da die Firma Miniweich selbst unter Microsoft Certified (Das war ich ja auch mal) die Änderungen dürftig weitergibt.

    Kurzum:

    Der vorerst beste Weg ist erst einmal den Würg-Around:

    kurz in den 2 D Modus zu wechseln oder eben [...] P auf der Tastatur zu drücken und dann zu speichern

    Liebe Grüße, Alex

    Rechner:

    CPU: 2 mal AMD A4-3600 APU / Speicher: 16 GB / Graphik: AMD Radeon R7 370 4G / Windows 10 64-bit
    EEP 5.0: Patch 2; Plugins 1, 2, 3

    EEP 17; Patch 1, 2, 3; Plugins 1, 2, 3

    Derzeitige Projekte: LNG-Terminal, Entsalzungsanlage, Salzgewinnung, Dagenhof

  • Hallo,

    was ich bei mir im TaskManager oft beobachtet habe wenn EEP keine Rückmeldung bekommt.

    Die Anlage wird fast komplett aus dem RAM Speicher entfernt.

    Ich frage mich also wo soll die Rückmeldung herkommen wenn da nichts mehr im Speicher ist und warum wird die Anlage überhaupt aus dem Speicher entfernt.

    EEP ist dann zwar immer noch auf dem Bildschirm vorhanden aber es rührt sich nichts mehr und kann nur noch auf die harte Tour beendet werden.

    Viele Grüße

    Karl Heinz

    Benutzte Programme und Hardware

    Programme:

    EEP 17.3 Expert [x64], PlugIn 1, 2, 3

    HomeNos 17.0

    Tauschmanager, Model Multiplier, Modell Explorer


    Hardware:

    Acer Nitro 5 AN517-41

    AMD Ryzen 7 5800H with Radeon Graphics

    64 GB RAM, nVidia Geforce RTX3080 Laptop GPU7552

    Windows 11 Home, Version 23H2, Betriebssystembuild 22631.3296

    Windows Defender

  • Ich frage mich also wo soll die Rückmeldung herkommen wenn da nichts mehr im Speicher ist und warum wird die Anlage überhaupt aus dem Speicher entfernt.

    Servus Karl-Heinz

    Das nennt man pagen (päidschn). Einfach gesagt wird ein Speicherabbild des Arbeitsspeichers, der im Moment nicht "gebraucht" wird, auf einen geschützten Berreich der Festplatte gelegt. Mit diesem Trick steht der Arbeitsspeicher dann dem Programm mit der nächsten Priorität zu. Das ist also im Grunde eine Folge des stehenden EEPs.

    Im Grunde passiert das laufend.

    Liebe Grüße, Alex

    Übriens besteht EEP genau genommen aus zwei Anwendungen. Die eine ist die EEP.exe, die ihrerseits dann eine EPP 64 Exe aufruft. Ich sage es aber als Warnung dazu. IMMER DIE EEP.EXE starten; NIE die andere. Das wäre ungefähr so, als wenn du mit einem Anhänger den Berg runterfährst und spaßeshalber mal den Anhänger vorausschickst =O

    Rechner:

    CPU: 2 mal AMD A4-3600 APU / Speicher: 16 GB / Graphik: AMD Radeon R7 370 4G / Windows 10 64-bit
    EEP 5.0: Patch 2; Plugins 1, 2, 3

    EEP 17; Patch 1, 2, 3; Plugins 1, 2, 3

    Derzeitige Projekte: LNG-Terminal, Entsalzungsanlage, Salzgewinnung, Dagenhof

  • Alexander

    Einfach gesagt wird ein Speicherabbild des Arbeitsspeichers, der im Moment nicht "gebraucht" wird, auf einen geschützten Berreich der Festplatte gelegt.

    Hallo Alex,

    die Funktion ist mir schon geläufig, aber dass die Anlage und EEP so gut wie ganz aus dem Speicher verschwindet ist nicht normal.

    Ganz davon abgesehen ist mein RAM mit 64 GB groß genug um die Auslagerung überhaupt nicht zu benötigen.

    Als der Speicher noch 32GB hatte konnte man das beobachten beim Speichern der Anlage und das ist ja wohl das Problem um das es hier geht.

    Da scheint was mit dem Speicher- Managment nicht so zu funktionieren wie es sollte.

    Viele Grüße

    Karl Heinz

    Benutzte Programme und Hardware

    Programme:

    EEP 17.3 Expert [x64], PlugIn 1, 2, 3

    HomeNos 17.0

    Tauschmanager, Model Multiplier, Modell Explorer


    Hardware:

    Acer Nitro 5 AN517-41

    AMD Ryzen 7 5800H with Radeon Graphics

    64 GB RAM, nVidia Geforce RTX3080 Laptop GPU7552

    Windows 11 Home, Version 23H2, Betriebssystembuild 22631.3296

    Windows Defender

  • Ganz davon abgesehen ist mein RAM mit 64 GB groß genug um die Auslagerung überhaupt nicht zu benötigen.

    Öffne mal deinen Taskmanager --> Füge die Spalte "Seitenfehler" hinzu. Sind da alle Werte auf 0.000?

    Rechner:

    CPU: 2 mal AMD A4-3600 APU / Speicher: 16 GB / Graphik: AMD Radeon R7 370 4G / Windows 10 64-bit
    EEP 5.0: Patch 2; Plugins 1, 2, 3

    EEP 17; Patch 1, 2, 3; Plugins 1, 2, 3

    Derzeitige Projekte: LNG-Terminal, Entsalzungsanlage, Salzgewinnung, Dagenhof

  • Alexander

    Füge die Spalte "Seitenfehler" hinzu. Sind da alle Werte auf 0.000?

    Das wird im Ressourcenmonitor als "Harte Fehler" aufgelistet und die sind bei laufendem EEP auf Null.

    Als der RAM Speicher noch bei 32GB war sind da Fehler aufgetreten.

    Viele Grüße

    Karl Heinz

    Benutzte Programme und Hardware

    Programme:

    EEP 17.3 Expert [x64], PlugIn 1, 2, 3

    HomeNos 17.0

    Tauschmanager, Model Multiplier, Modell Explorer


    Hardware:

    Acer Nitro 5 AN517-41

    AMD Ryzen 7 5800H with Radeon Graphics

    64 GB RAM, nVidia Geforce RTX3080 Laptop GPU7552

    Windows 11 Home, Version 23H2, Betriebssystembuild 22631.3296

    Windows Defender

  • Hallo,

    Ich habe in den letzten Tagen regelmäßig an meiner Anlage gearbeitet. Habe die Anlage regelmäßig gespeichert. Seit ich Eep konsequent über 2D > Menü > Beenden beende, hatte ich keine Abstürze/Hängen mehr. Bin ich froh :) Bleibt die Kernfrage, was Eep beim Speichern und Beenden im 3D-Modus zum Absturz bringt. Andere Prozesse? Grafikkartentreiber?
    Nebenbei bemerkt: wenn ein Spiel meines Tauchboot-Simulators zwischendurch gespeichert wird ... kein Problem.

    VG,

    Ries

    ~ Kein Wesen endet im Nichts ~

    Hardware - Software

    Eep 17.3 Expert, Plugins 1-2

    Laptop:

    Windows 11 23H2 - Build 22631.3296
    Intel(R) Core(TM) i7-12700H, 12th Gen - 32 GB 4800 MHz
    NVIDIA Geforce RTX 3070 8 GB GDDR6 TI, + Intel UDH-Grafik - Bild: 2560x1440 240Hz
    Audio Realtek High Def
    2x Samsung SSD Pro (1 TB - 2TB)