Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programmabsturz, wenn KI baut
#1
Hallo in die Runde,
ich habe oft Abstürze (vermutlich) kurz bevor ein Mitbewerber eine neue Strecke baut / bauen will - ist das bekannt bzw. kennt das jemand?

Mittelmäßig reproduzierbar: Große Karte auswählen, 5 Mitspieler "Fracht-KI", schneller Vorlauf. Kleinere Strecken scheinen zu klappen, ich schätze das längere Strecken(-planungen) der KI in die Hose gehen.
Simutrans antwortet dann nicht mehr (laut Windows 7), dann kommt Simutrans für ein paar stotternde Frames zurück, um dann überhaupt gar nicht mehr zu funktionieren. Debug sagt, das von einer nicht zugreifbaren Adresse versucht worden ist, zu lesen.

Habe SuFu versucht und das Bug-Forum konsultiert - soll ich einen neuen Eintrag aufmachen oder ist das möglicherweise schon bekannt/ gibt es einen Workaround?
Leider habe ich in den vorherigen Versionen fast nie mit (vielen) Konkurrenten gespielt, daher weiß ich nicht, ob es "neu" in 112.1 passiert.
Ich würde so gerne meinen sündhaft teuren Strom an alle Fabriken der Welt verteilen - vielleicht sollte ich bei Vattenfall anfangen. :-)

Win 7, AMD Dual Core, 4 GB Ram, pak 128 2.2.0, simutrans 112.1 - r6212.
Zitieren
#2
Mir ist das nicht bekannt. Kannst du das versuchen, etwas einzugrenzen, bzw. das Spiel mit den Optionen "-debug 3 -log" zu starten (z.B. in dem du eine Verknüpfung erzeugst). Dann bitte das in der Datei "simu.log" in Eigenen Dateien/Simutrans nachschauen, was am Ende so steht (Die letzten 20 Zeilen.) Das würde beim Eingrenzen der Ursache ziemlich weiterhelfen.
Zitieren
#3
Hallo prissi und Danke für die gute Beschreibung, konnte ich alles so erstellen und machen. Vielen Dank für die Hilfe!

Vielleicht noch ein paar zusätzliche Infos:
duck island, mit epoche ab 1990, keine addons, ich habe nichts gebaut

Mir sagen die letzten 20 Zeilen leider nichts, ich glaub das sind noch die letzten Frames, daher hab ich das volle Log mit hochgeladen, genauso wie Screenshots (s.u.).

Im Log kommen viele Einträge vor a la:

200 Zeilen zusammenhängend:
Code:
Warning: ding_t::~ding_t(): couldn't remove 215A8CF0 from 266,693,1
Einzeln:
Code:
ERROR: vehikel_basis_t::verlasse_feld(): 'typ 66' 222C1460 could not be removed from 266 693 For help with this error or to file a bug report please see the Simutrans forum: http://forum.simutrans.com
28 Zeilen zusammenhängend:
Code:
Warning: wegbauer_t::intern_calc_route(): Too many steps (2747>=max 1000000) in route (too long/complex)

Logdatei (einmal als zip, einmal als text):
simu.zip
simu.log

Screenshots:
[Bild: error.jpg]
[Bild: debug.jpg]
Zitieren
#4
Ich habe noch ein bisschen herumprobiert und versucht, mich dem Problem zu nähern.

Der Bug ist anscheinend unabhängig vom PAK und von der Größe der Karte.
Dieses Mal verwendet: Karten-Generator, No. 7, 768x768, PAK128.german v0.5 (sehr nice übrigends!).

Der Bug hat scheinbar manchmal was mit der Länge der Strecke zu tun, welche die KI bereits gebaut hat!
Direkt nach dem Bau der längsten KI-Strecke, stürzt es ab.

Der Ablauf ist immer gleich:
1. Die neue Strecke erscheint und gleichzeitig fängt das Spiel an, total zu stottern (ruckeln).
2. Ganz selten fängt es sich noch. (Ist es eine Art Aufräum-Algorithmus, welcher nach Bau einer KI-Strecke irgend etwas versucht, aufzuräumen?)
3. Das Spiel "funktioniert nicht mehr".

Siehe Screenshot, markiert mit dem Pfeil ist die neueste Strecke.
Die Meldung dazu unten Rechts kann noch ein paar ruckelnde Frames reinscrollen, danach ist Schluss.

Wenn ich das richtig sehe, war die neue Strecke knapp länger als 256 Felder (Luftlinie, vermutlich).
Die Strecken davor waren alle kürzer.
Ich werde weiter rumprobieren, u.a. mal eine Karte mit 256x256 spielen.
Mal sehen.

Timestamps im Log wären vermutlich ganz gut.
Kann man die anschalten?

---

Versuch 1:
Kartengenerator No. 7, 256x256. Pak 128.German.
Mit Epoche ab Jahr 1970.
30 Fabriken und Geschäfte
9 Fracht KIs.
Log: 185 x "Warning: ding_t::~ding_t(): couldn't remove 080763C8 from 63,51,6"
Log: 182 x "Warning: ding_t::~ding_t(): couldn't remove 08077F48 from 91,237,-1"

Versuch 2:
Heruntergeschraubt auf 4 Fracht-KIs.
Kein Absturz.

Versuch 3:
Karte auf 384x384.
Kein Absturz.

Versuch 4:
Gewechselt auf PAK 128, damit die KI was zu tun hat. (auf 128.german will die KI nicht so richtig viel transportieren, scheint mir)
Absturz.
Log: 645 x "Warning: ding_t::~ding_t(): couldn't remove 18E4C550 from 156,34,4"
Anscheinend stürzt es nur bei Bahnstrecken ab.

Versuch 5:
40 Fabriken, 7 große Städte.
Eine sehr lange KI-Strecke funktionierte.
Kreuzt keine Flüsse. Möglicherweise das das Problem?
Absturz nach nächster Strecke.
Log: 176 x "Warning: ding_t::~ding_t(): couldn't remove 18EBEFD0 from 361,180,1"
Wenn das Koordinaten sind, werde ich beim nächsten Mal abspeichern, und hinterher gucken, was dort war.

Versuch 6:
Absturz.
Log: 424 x "Warning: ding_t::~ding_t(): couldn't remove 18C7E950 from 311,5,-1"
(dazwischen einmal "ERROR: vehikel_basis_t::verlasse_feld(): 'typ 66' 2074AB48 could not be removed from 311, 5, -1")
(Auf dieser Stelle ist ein Grasfleck. In der Nähe einer Kohlemine.)
Log: 81 x "Warning: ding_t::~ding_t(): couldn't remove 18C8A450 from 73,50,6"
(An der Stelle ist ein Grasfleck. In der Nähe eines Kohle-Tagebaus.)
Hat anscheinend doch nichts mit flüssen zu tun. Aber was will er dort entfernen? "verlasse Feld"?

Versuch 7:
Gleiche Karte wie Versuch 6 (geladen).
Versuch, alle KIs auf Nur-Eisenbahn einzustellen scheitert, der erste baut ein Schiff (?).
6 KIs wollen nichts bauen. Undecided
wenn ich mir anschaue, was die Fehlermeldungen vom Typ 67 so in der Welt darstellen, wenn es nicht zu Abstürzen kommt,
dann sehe ich z.B. für:
"ERROR: vehikel_basis_t::verlasse_feld(): 'typ 67' 1F0DA3E8 could not be removed from 371 351"
(siehe allerletzter Screenshot).
D.h. NACH erstellen der Strecke gibt es ein Problem mit der Ausfahrt des Zuges.
Nicht das ich das nicht von der DB ab und an mal höre, aber warum stürzt gleich das ganze Programm ab?

KI-Spieler wollen nicht.
[Bild: 3_ki_spieler_wollen_nicht.jpg]

Die neueste Strecke erscheint... und schon stürzt das Spiel ab.
[Bild: bug2.jpg]

Dieses Feld hat beim erstellen der Strecke den Fehler im Log mehrmals ausgelöst. (Aber nicht genug, um das Spiel zu stoppen.)
[Bild: bug3.jpg]
Zitieren
#5
Hoert sich danach an, als ob die KI zuviele Fahrzeuge auf ein Feld knallt. Sollte eigentlich mit neueren Versionen (Nightly) nicht auftreten.
Zitieren
#6
Hi Dwachs und danke für die Info.

Dann werde ich mal ein Nightly installieren.
Muss ich irgendwas beachten oder nehme ich einfach das aktuellste Nightly?
Zitieren
#7
einfch das aktuellste nehmne.
Zitieren
#8
Die verschiedenen (alters) Versionen gibt es zur einfacheren Fehlesuche. Wenn ein Fehler neu dazugekommen ist, kann man nachgucken, ab welcher Version. vereinfacht den Programmierern die Fehlersuche, wenn die Tester es vorquallifizieren können.
Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind expliziet unter die GPL gestellt ....

Für "Simutrans-Nightlys" und aktuelle PAK: http://nightly.simutrans-germany.com
Zitieren
#9
Ich hab das Nightly nun druff und teste.
*schauder* Unbefestigte Straßen in allen Städten... 20 kmh...
Und das 1950!

Also zurück zu meinem Testszenario:
Getreidehof wird angeschlossen, Hopfenhof auch, alles LKW bisher.
4 von 13 KIs bauen was...
*vorspul*
1 Jahr später: 1 Ki hat immer noch nix gebaut. (PSK & Co, obwohl ich denen sogar Straßenfahrzeuge erlaubt habe...)
Bisher kein Absturz! Schön!

Gleich mal ne größere Karte und länger simulieren... und mehr Fabriken!!!
pak 128.german, Mit Epoche ab Jahr 1970
1200x1200, 800 Fabriken... Wartet man 15 Minuten... beenden.
1200x1200, 400 Fabriken... Wartet man 10 Minuten... beenden.
1024x1024, 200 Fabriken... warte bereits 20 Minuten geht auch nicht. Was ist denn hier los? ;( (Nur 2 Städte.)
Ich teste morgen weiter...

Anregungen/Beobachtungen:
1. Ich wäre übrigens dafür, dass man mit Hochspannungsleitungen an seinen Strecken die Kosten der Eisenbahnen darauf senken kann. Von mir aus bau ich auch für 50k ein eigenes Umspannungswerk an die Bahnstrecke, solange ich dann was günstiger kriege... :-)
2. Ich würde gerne Fabriken selber upgraden können.
3. Die KI betreibt ja Reservierungen für das Land mithilfe der Textfelder. Könnte da nicht etwas sinnvolleres mit draufstehen? Big Grin (und warum sehe ich die so lange?)
4. Die KI baut, obwohl schon im Minus, munter weiter.
H-Trans, mein wichtigster Kunde Smile ist mit -100k in der Kreide, und hat jetzt auf -400k "erhöht". (Kam aber vor dem 3-Monats Limit wieder raus.)
5. Wenn die KI Straßen baut, und zwischendurch liegen schon Straßen, werden unbefestigte Straßen nicht mit ersetzt. Das wäre zumindest in diesem Fall aber realistischer, denke ich.
6. Ich denke ich muss mir mal das Umspannwerk günstiger cheaten.
7. Kann mir jemand was zu dem Stau siehe Screenshot sagen? Passiert sowas öfter? Haben die KIs früher nicht mal immer neue Straßen dran gebaut?
8. Könnte man nicht den User-Input vordefiniert als Last-Test mal so als Art Unit-Test vordefinieren? Und den nach dem built-prozess automatisch ausführen?
9. Insgesamt fühlt sich das Nightly auch wesentlich performanter an. Wow.

[Bild: lockup.jpg]
Zitieren
#10
Schreibe Wünsche immer ins passende Forum, hier in Bugs und Probleme Forum gehen die Wünsche verloren.

zu 1. wäre nur für elektrifizierte Strecken sinnvoll, erfordert aber viel Umbau im Spiel. a.) den Programmcode und b.) hinzufügen des Stromverbrauchs bei den E-Loks
zu 2. Bei Fabriken, die Felder verwenden, geht es. Mußt nur den Karteneditor benutzen.
zu 4. kann jeder Spieler, man muß nur vor der 3 Monatsfrist wieder ins Plus kommen.
zu 6. Warum?
zu 7. klassische Schach-matt Situation. Es fehlt sauber Trennung zwische Anlieferung und Abholer. Der Lkw im Ladeplatz wartet auf Ladung, die kann aber nicht kommen da in der Fabrik bereits alle Waren verarbeitet und ausgeliefert wurden. Neue Ware steht an 3. Stelle im Stau, kommt aber nicht zur Auslieferung da der Ladeplatz nicht erreichbar ist. Für KI Spieler ist dieses Problem nicht mehr lösbar.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste