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 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...