Browser upgrade fails when discourse is configured to use one unicorn worker

AI-generated summary

The discussion revolves around a bug in Discourse where a browser upgrade fails when the system is configured to use one unicorn worker. RBoy links to previous posts suggesting this might be a bug. Ed_S points out that the issue seems to be caused by hardcoded values in the upgrader.rb file, which temporarily reduces the number of unicorn workers to one during the upgrade process. sam suggests that the bug fix would be to make it impossible to upgrade via the UI with only one unicorn worker, forcing users to rebuild from the console. Ed_S questions this approach, noting that a single unicorn worker has worked in the past and is sufficient during the upgrade process. sam clarifies that the intention is to prevent upgrades via the UI with limited memory, while Ed_S agrees, sharing their own experience of always using the console for upgrades on memory-limited instances.

Linked to the posts here where it was suggested this may be a bug.

2 Likes

Let me redo my response here:

This seems like a bug, especially as the system cuts down to a single unicorn temporarily very shortly afterwards.

The number 2 is hardcoded, as is the number 1 for the reduction.

Edit: looks like this change introduced the inconsistency
https://github.com/discourse/docker_manager/commit/8bfea831c7b423d26d85585f9a3d7301d58e00ae

Thanks for the new thread.

1 Like

Yeah I just don’t think we can support this, the bug fix here will be simply to make it impossible to happen, not fix the upgrade code.

2 Likes

Make what impossible? Setting a single unicorn? And yet such a setup worked better for the OP, until the upgrade.

And because the upgrade drops the number of unicorns to 1, it seems clear to me that 1 unicorn is enough at the time of an upgrade.

Have you looked at the history of this bit of code?

No just make it impossible to upgrade via the ui if you only have 1 unicorn

Force you to rebuild from console, memory is too constrained anyway

2 Likes

Fair enough - I’ve resorted to always using the console these days, on my memory-limited instances.