evilight 97eff6517e login: probe the world port with a bind test instead of lsof
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".
2026-10-10 16:06:55 +08:00
2022-04-30 13:11:10 +00:00
2022-04-30 09:36:18 -04:00
2023-07-15 09:23:48 -04:00

Logo

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.

S
Description
Public Repository for the Magicbane Shadowbane Emulator
Readme MIT
13 MiB
0 Stars 1 Watchers 0 Forks
Languages
Java 100%