Dungeon Bug

08/01/2015 17:47 Drabur#1
Kurze Frage in einigen Threads wurden ja schon gefragt was die Worldcrashes bei Kalgas / Behe auslöst. Also die wenn man einfach geht.

Hat einer eine Ahnung woran das liegt ?
.lua Eintrag ist drin und die map ist auch komplett
einträge sind alles drin

Bei mir Crasht der in

Quote:
void CLinkMap::Init( int nLandWidth, int nLandHeight, int nView, int nMPU )
08/03/2015 11:27 TrøublêMakêr#2
Darf ich dein Coreserver.ini sehen?

Bin mir nicht ganz sicher, aber bei mir lag es an der Map Größe oder am Rande des Maps waren Objekte.
08/03/2015 13:44 Sedrika#3
Schau mit dem Map editor nach.
Bei den mittleren Grids, dürfen am Rand je 3x3 Felder keine Objekte stehen.
Kannst ja gerne mal versuchen dich an ein solchen Bereich zu teleportieren, der server bringt dich dann an die nächst gelegene Position zurück.
08/03/2015 15:05 Drabur#4
Quote:
Originally Posted by Sedrika View Post
Schau mit dem Map editor nach.
Bei den mittleren Grids, dürfen am Rand je 3x3 Felder keine Objekte stehen.
Kannst ja gerne mal versuchen dich an ein solchen Bereich zu teleportieren, der server bringt dich dann an die nächst gelegene Position zurück.
Naja der Server stürzt aber direkt ab wenn ich auf die Map gehe. Irgendwie kann der den layer nicht erstellen
08/03/2015 15:10 Sedrika#5
Kannst ja testweise Error Meldungen einbauen und somit eingrenzen nach welchem Befehl er Bye bye sagt.
08/03/2015 15:28 Drabur#6
Naja ich versuch gerade was anderes
Weil es nicht bei alles Dungeons ist

Edit: Hab gerade mal etwas getestet und es Crasht wenn mehr als 48 Maps drin sind in der Coreserver.ini

Einer eine Idee wo das im Source gemacht ist?
08/04/2015 05:18 xTwiLightx#7
Was sagt der Speicherverbrauch vom Worldserver?An welcher Stelle crasht er genau? Nur der Methodenname ist etwas unausreichend.

Zumal Runtimefehler nicht "im Source gemacht" sind, sondern Fehler sind, wo keine Exception richtig abgefangen wird oder ein Problem in Verbindung mit z.B. dem .NET Framework, C++ Redis, etc. auftaucht. Auch Probleme mit dem Speicher können eine Ursache sein. Deshalb ist auch vernünftiges Error-Handling das A und O in der Programmierung - Runtime Exceptions sind ziemlich nichts aussagend, da es nun mal fast alles sein kann.

Ich weiß nicht, wie man im Flyff Sourcecode mit (std:: )-Exceptions umgehen kann, aber try & catch Blöcke und damit abgefangene Exceptions können dir mehr Aufschluss über die Problemursache geben ( catch(std::runtime_error& e) {} ).

Wenn du um die genaue Crashstelle einen Try-Block machst und darunter die Exception abfängst (catch), dann solltest du mit dem e Objekt auch eine Messagebox mit der Fehlerursache ausgeben können oder sie loggen lassen ( mit std::runtime_error wäre das e.what() ).
08/04/2015 12:24 Drabur#8
Quote:
Originally Posted by xTwiLightx View Post
Was sagt der Speicherverbrauch vom Worldserver?An welcher Stelle crasht er genau? Nur der Methodenname ist etwas unausreichend.

Zumal Runtimefehler nicht "im Source gemacht" sind, sondern Fehler sind, wo keine Exception richtig abgefangen wird oder ein Problem in Verbindung mit z.B. dem .NET Framework, C++ Redis, etc. auftaucht. Auch Probleme mit dem Speicher können eine Ursache sein. Deshalb ist auch vernünftiges Error-Handling das A und O in der Programmierung - Runtime Exceptions sind ziemlich nichts aussagend, da es nun mal fast alles sein kann.

Ich weiß nicht, wie man im Flyff Sourcecode mit (std:: )-Exceptions umgehen kann, aber try & catch Blöcke und damit abgefangene Exceptions können dir mehr Aufschluss über die Problemursache geben ( catch(std::runtime_error& e) {} ).

Wenn du um die genaue Crashstelle einen Try-Block machst und darunter die Exception abfängst (catch), dann solltest du mit dem e Objekt auch eine Messagebox mit der Fehlerursache ausgeben können oder sie loggen lassen ( mit std::runtime_error wäre das e.what() ).
Danke für die Hilfe. Es kommt jedoch kein Runtime Error. Ich habs soweit eigentlich gefunden nur da ich ansich von C++ absolut keine Ahnung habe, weiß ich nicht was das Problem ist.
PHP Code:
pInfo->apObj[nLevel] = new CObj*[ nCount ]; 
Da soll er ja ein neue CObj Klasse erstellen und das geht scheinbar nicht bei über 48 Maps. Aber in dem Integer nCount gehen bis 21000 oder sowas.
08/04/2015 18:43 xTwiLightx#9
Keine Ahnung, wie ich auf Runtime kam. :(

Mal in der Initialisierung von CObj* geschaut, wo es dort crasht?
05/12/2016 16:09 Mr.Greenthumb#10
sry das ich das hier ncohmal auskrame aber hast du nun rausgefunden woran es liegt das der worldserver crasht bei betretten des dungeon ? würde mich auf eine antwort freuen habe auch das problem
05/12/2016 16:15 Drabur#11
nö habs nie rausgefunden hatte nur den workaround maps rauszunehmen damit nicht so viele da sind.
05/12/2016 18:52 Sedrika#12
Das Problem ist eher die 2GB (oder eher 1.85GB) grenze bei 32-Bit programmen. Du könntest zwar Largeadresses aktivieren um dieses limit auf 4GB anzuheben ABER ab 2GB verbrauch spinnt der WorldServer massiv, es kommt zu ghost DC's und sonstigem.

Bei uns mussten wir mega auf Performance setzen und haben so einige Systeme neu schreiben dürfen. Bei guter Leistung kommst du auf 1.16GB WS verbrauch bei 58 aktiven maps (gerade nochmal nachgesehen).

RAM unten halten durch sauberes coding und nichts stresst mehr.
05/12/2016 20:47 xTwiLightx#13
Quote:
Originally Posted by Sedrika View Post
Das Problem ist eher die 2GB (oder eher 1.85GB) grenze bei 32-Bit programmen. Du könntest zwar Largeadresses aktivieren um dieses limit auf 4GB anzuheben ABER ab 2GB verbrauch spinnt der WorldServer massiv, es kommt zu ghost DC's und sonstigem.

Bei uns mussten wir mega auf Performance setzen und haben so einige Systeme neu schreiben dürfen. Bei guter Leistung kommst du auf 1.16GB WS verbrauch bei 58 aktiven maps (gerade nochmal nachgesehen).

RAM unten halten durch sauberes coding und nichts stresst mehr.
... oder ein wenig Mühe geben und auf 64bit umsteigen. Sollte man heutzutage sowieso :pimp:
05/12/2016 20:52 Sedrika#14
Quote:
Originally Posted by xTwiLightx View Post
... oder ein wenig Mühe geben und auf 64bit umsteigen. Sollte man heutzutage sowieso :pimp:
Auch eine Möglichkeit wobei ich immernoch sauberes Programmieren vorziehe.
05/12/2016 21:35 xTwiLightx#15
Quote:
Originally Posted by Sedrika View Post
Auch eine Möglichkeit wobei ich immernoch sauberes Programmieren vorziehe.
Das heißt im Flyff Sourcecode 100% refactoring ( ͡° ͜ʖ ͡°)