Strange behaviour in URL routing

I’ve got an instance of v2.3.2 on Debian 10 Buster which started acting strangely within the last few days.

We’re getting URL rewriting in a way that makes no sense. For example… in the main index, URLs to two of our future events are fine, but URLs to one future event and all past events have category/0/event-list/ pre-pended to their URLs. So, the event URLs are:

  • /category/0/event-list/event/40/
  • /event/41/
  • /event/39/
  • /category/0/event-list/event/38/
  • /category/0/event-list/event/37/
  • … etc.

Also on the homepage, the link to Administration goes to /admin/admin/settings. When you edit that URL and enter the admin settings, the link to the Plugins page is /admin/settings/admin/plugins.

Inside events, generated links will have the event URL pre-pended unnecessarily. So, for example, in event 39, the image to the left of the event title will link to /event/39/event/39/. In event management, the short URL which should display as https://indico.example.com/e/foo is showing up as https://indico.example.com/event/39/manage/e/foo

Basically, every single place that Indico generates a URL, whether it’s in a link or in the text, it’s incorrect. But incorrect in what appears to be inconsistent ways.

The only thing that comes to mind as a possible trigger for this to start happening is that maybe in the last round of Debian updates some dependency got updated that has triggered a routing bug? This past Saturday there were updates to both Apache and mod-proxy-uwsgi. An upgrade of those applications shouldn’t cause a problem like this, but at the moment they’re my best guess.

Anyone have any ideas about what’s going on here, and what the fix might be?

Did you modify any templates? I can’t imagine anything that would cause this weird behavior.

If the instance is publicly accessible, could you post the actual link?

PS: 2.3.2 is somewhat outdated; you should update.

It’s at https://indico.dns-oarc.net/

No, we haven’t modified any templates. Nothing that requires change from the shell has been touched, and I’m about 99% sure that nothing in the configs that can be accessed from the web UI have been changed. This is why I was thinking it might have to do with the uwsgi update or something.

And yes, we’re aware it’s a bit outdated, but ops priorities, and all that. Since we can’t just update packages like with most of the software we run, it tends to get attended to last.

Okay, so the proximal cause of the problem was an upgrade away from the following Debian Buster packages to slightly newer versions:

libapache2-mod-proxy-uwsgi:amd64=2.4.38-3+deb10u5
apache2:amd64=2.4.38-3+deb10u5
apache2-bin:amd64=2.4.38-3+deb10u5
apache2-data:all=2.4.38-3+deb10u5
apache2-utils:amd64=2.4.38-3+deb10u5

I wouldn’t expect such minor updates to include any functionality changes, but there you go. Rolling back to the above listed versions fixed the Indico problem.

I’m actually on vacation at the moment, while I fix this, so it’s going to be a bit before I come back to it to figure out why that update broke it … but perhaps someone here can suggest

That’s still extremely strange… my guess would be that for some reason it now sends garbage path information to uWSGI, which is then used when building URLs.