ryzom / ryzomcore

Ryzom Core is the open-source project related to the Ryzom game. This community repository is synchronized with the Ryzom Forge repository, based on the Core branch.
https://wiki.ryzom.dev
GNU Affero General Public License v3.0
339 stars 90 forks source link

Ryzom_client development build crashes on startup #307

Closed ryzom-pipeline closed 7 years ago

ryzom-pipeline commented 7 years ago

Original report by Alistair Leslie-Hughes (Bitbucket: alesliehughes, GitHub: alesliehughes).


When using a self compiled version of the ryzom client, it crashes on startup (when the world is first displayed).

Please find attached a patch that fixes to the problem.

ryzom-pipeline commented 7 years ago

Original comment by Guillaume DUPUY (Bitbucket: [Guillaume DUPUY](https://bitbucket.org/Guillaume DUPUY), ).


Yeah, last version client is currently only compatible with last version of server, not live version of server (because database was altered to add unique item ID), this is expected (and live server will be patched anytime soon). Also client still crashes with patch (on last develop or compatibility-develop), are you sure of it ?

If you want to compile a client for live server, last working commit is https://bitbucket.org/ryzom/ryzomcore/commits/d7e06586e2a21dddea97af1024e6324020f06c70

ryzom-pipeline commented 7 years ago

Original comment by Alistair Leslie-Hughes (Bitbucket: alesliehughes, GitHub: alesliehughes).


Yes, I'm sure that it stops the crash for me. It doesn't mean that when you login with your character it's travel down a different code path. My character is only new, hasn't done anything, no quests, nothing.

ryzom-pipeline commented 7 years ago

Original comment by Meelis Mägi (Bitbucket: [Meelis Mägi](https://bitbucket.org/Meelis Mägi), ).


Crash happens because client-server netcode is changed.

Client with newer netcode, reads too many bits from stream, overshots right location for slot index value and read in garbage. It probably crashes while reading in inventory slot 1.

Normally, client-server will compare database.xml and msg.xml checksums on handshake and display warning, but you probably only updated binaries, so client-server have same copy.

While its not nice to crash on null-pointer error, its better than continuing in this situation.