Jump to content

game currently down?


ZuluWizard
 Share

Recommended Posts

So here is what happened yesterday:

We deploy changes to the lobby using Infrastructure-as-Code (the code for that is available at https://github.com/0ad/lobby-infrastructure/). Applying changes yesterday included a value for an XMPP MUC room option as a boolean (true) in our YAML configuration. That got converted by Ansible into a Python boolean (True) and when applying it to a string (True). As you might notice that changed the capitalization.

While ejabberd (the XMPP server we're using) accepted that value, it doesn't support capitalized booleans and hell broke loose when a code path accessing such a configuration option got executed. For one option (like: "ejabberdctl room conference.host logging True") this does cause the XMPP MUC room the option got applied for to get completely deleted immediately.

This resulted in the lobby not being available anymore. Debugging what happened took some time. As a workaround we're now passing the configuration values as strings in the first place, which ensures the capitalization stays as desired and doesn't trigger that behavior anymore. I've also opened a bug report for ejabberd, so hopefully it won't be possible in future anymore to set such invalid options: https://github.com/processone/ejabberd/issues/4337.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

10 minutes ago, Dunedan said:

So here is what happened yesterday:

We deploy changes to the lobby using Infrastructure-as-Code (the code for that is available at https://github.com/0ad/lobby-infrastructure/). Applying changes yesterday included a value for an XMPP MUC room option as a boolean (true) in our YAML configuration. That got converted by Ansible into a Python boolean (True) and when applying it to a string (True). As you might notice that changed the capitalization.

While ejabberd (the XMPP server we're using) accepted that value, it doesn't support capitalized booleans and hell broke loose when a code path accessing such a configuration option got executed. For one option (like: "ejabberdctl room conference.host logging True") this does cause the XMPP MUC room the option got applied for to get completely deleted immediately.

This resulted in the lobby not being available anymore. Debugging what happened took some time. As a workaround we're now passing the configuration values as strings in the first place, which ensures the capitalization stays as desired and doesn't trigger that behavior anymore. I've also opened a bug report for ejabberd, so hopefully it won't be possible in future anymore to set such invalid options: https://github.com/processone/ejabberd/issues/4337.

Are you guys putting on to lobby new code and updates?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...