97eff6517e5eb77c21c4b9c24d9efc0bdca9aa1c
LoginServer.exec() -> checkServerHealth() -> isPortInUse() shelled out to `lsof -i tcp:<port>` through /bin/bash and read the child's stdout until EOF. There is no timeout and no waitFor(), so a child that blocks is fatal: in the container lsof was observed stuck in uninterruptible I/O (D state) while it was scanning the busy world server. The login server then never returned from its startup path, the accept loop never started, and clients could open a TCP connection to 6000 and wait forever for the 100 byte DH handshake, surfacing as "Failed to open a server connection" after the client's own timeout. A container restart was the only way out. Replace the external probe with a bind probe: it cannot hang, needs no external tool, and SO_REUSEADDR still does not allow stealing a port that is actively listening, so a successful bind keeps meaning "free".
Magicbane Open-Source MMO Project
The Community written Shadowbane emulator
Magicbane
Public Repository
magicbot@magicbane.com
Magicbane is an emulator for the long dead but much beloved Ubisoft MMO, Shadowbane. The project was founded in 2013 with the concept of free availability of gameplay; players unencumbered by any factor other than a desire to again play a game they once loved. A game where the developers do not play is guaranteed to be the fairest game.
The Magicbane Team has wanted to open source Shadowbane for half a decade. We are excited to now finally have the opportunity, along with some new technology, to truly democratize Shadowbane.
- Written in some 80k lines of Java 8 and bash.
- Project with real infrastructure; Production and development servers supporting multiple containerized apps.
- MagicBox container technology enables instant deployment and trouble free development on modest hardware.
- MagicBox plugin capability allows for new and interesting player experiences.
Contributing
- Project is released under an MIT license. Please see the LICENSE file.
- Inbound == Outbound.
- IntelliJ is the supported IDE.
- Write code today see it running on the Magicbane production server tomorrow.
Support
Documentation is available through the Magicbane Wiki and Discord server.
Description
Public Repository for the Magicbane Shadowbane Emulator
13 MiB
0 Stars
1 Watchers
0 Forks
Languages
Java
100%
