Codeberg/Community
54
325
Fork
You've already forked Community
12

Suggestion: new feature freeze until performance issues are fixed #908

Closed
opened 2023年01月23日 16:38:08 +01:00 by aral · 8 comments

Codeberg is basically unusable right now with a 2kb push taking over 2 minutes (see #887 (comment)).

I recommend a feature freeze so that all effort can be focused on not just fixing this but doing so with lots of headroom going forward.

I know it’s not popular but I’m also going to reiterate that new account sign-ups should be closed until what’s causing this is understood and rectified and until Codeberg is usable again. It won’t help to have more people experience Codeberg in its current state (quite on the contrary, it can hurt its reputation going forward).

Codeberg is basically unusable right now with a 2kb push taking over 2 minutes (see https://codeberg.org/Codeberg/Community/issues/887#issuecomment-779987). I recommend a feature freeze so that all effort can be focused on not just fixing this but doing so with lots of headroom going forward. I know it’s not popular but I’m also going to reiterate that new account sign-ups should be closed until what’s causing this is understood and rectified and until Codeberg is usable again. It won’t help to have more people experience Codeberg in its current state (quite on the contrary, it can hurt its reputation going forward).

I recommend a feature freeze so that all effort can be focused on not just fixing this but doing so with lots of headroom going forward.

The main infrastructure team is already putting all the effort into fixing this performance issue and the pages stability issues.


So to inform you about the current state of affairs:

We have concrete evidence that the slowdown is being caused in the queue code of Gitea/Forgejo, the code to push items into the queue (in this case, repository updates). It's a blocking call until the item is either in the "internal buffered queue" of the Go channel or if one of the workers is able to receive the item via the Go channel. We've noticed that the internal buffered queue is constantly full and that the workers are likely not fast enough to process the queue, this hasn't been a problem until recently (we do not have a clue why). We've already fine-tuned the queue settings, however this has only helped to reduce the waiting times.

We could fairly easily make the queue push operation a non-blocking call by doing the push in a new goroutine, but this will cause a side-effect that a git push may succeed while you don't see any result on the target repository or pull request.

There's an underlying issue as to why the workers have suddenly become slow, it has been quite a daunting task to diagnose this issue.

> I recommend a feature freeze so that all effort can be focused on not just fixing this but doing so with lots of headroom going forward. The main infrastructure team is already putting all the effort into fixing this performance issue and the pages stability issues. --- So to inform you about the current state of affairs: We have concrete evidence that the slowdown is being caused in the queue code of Gitea/Forgejo, the code to push items into the queue (in this case, repository updates). It's a blocking call until the item is either in the "internal buffered queue" of the Go channel or if one of the workers is able to receive the item via the Go channel. We've noticed that the internal buffered queue is constantly full and that the workers are likely not fast enough to process the queue, this hasn't been a problem until recently (we do not have a clue why). We've already fine-tuned the queue settings, however this has only helped to reduce the waiting times. We could fairly easily make the queue push operation a non-blocking call by doing the push in a new goroutine, but this will cause a side-effect that a `git push` may succeed while you don't see any result on the target repository or pull request. There's an underlying issue as to why the workers have suddenly become slow, it has been quite a daunting task to diagnose this issue.

Thank you for all the efforts that Forgejo team and Codeberg are putting in 💚

Thank you for all the efforts that Forgejo team and Codeberg are putting in 💚

There's an underlying issue as to why the workers have suddenly become slow, it has been quite a daunting task to diagnose this issue.

In that case, IMHO closing signups temporarily makes sense until the team figures out the root cause. Because if it turns out that the current infra isn't sufficient to support the existing user-base, having more people sign up in the meanwhile would just make it worse.

this will cause a side-effect that a git push may succeed while you don't see any result on the target repository or pull request

Just FYI, this happens even as of now (I encountered it just yesterday) where it takes about 3~5mins (after the cli git push already completed) for a PR to "update" to the new (forced) pushes.

> There's an underlying issue as to why the workers have suddenly become slow, it has been quite a daunting task to diagnose this issue. In that case, IMHO closing signups temporarily makes sense until the team figures out the root cause. Because if it turns out that the current infra isn't sufficient to support the existing user-base, having more people sign up in the meanwhile would just make it worse. > this will cause a side-effect that a git push may succeed while you don't see any result on the target repository or pull request Just FYI, this happens even as of now (I encountered it just yesterday) where it takes about 3~5mins (*after* the cli `git push` already completed) for a PR to "update" to the new (forced) pushes.

Closing sign ups would mean, that People can't report Bugs to Projects hosted on Codeberg unless they already have a Account

Closing sign ups would mean, that People can't report Bugs to Projects hosted on Codeberg unless they already have a Account
Author
Copy link

@JakobDev It might be an idea to add the ability to have Issue-only accounts for Forgejo, then, because the current situation is untenable. It just took me a minute to push 415 bytes.

Personally, I’m going to have to move my repositories to a different forge at least until these performance issues are sorted because I’m getting distracted every time and it’s ruining my flow.

@JakobDev It might be an idea to add the ability to have Issue-only accounts for Forgejo, then, because the current situation is untenable. It just took me a minute to push 415 bytes. Personally, I’m going to have to move my repositories to a different forge at least until these performance issues are sorted because I’m getting distracted every time and it’s ruining my flow.

I also want to suggest locking signups temporarily. A few of the people that I know have moved away from Codeberg as they deem it to be unreliable and buggy. The state that Codeberg is operating now is very less likely to seem as a reliable alternative to platforms like Github and Gitlab.

Closing sign ups would mean, that People can't report Bugs to Projects hosted on Codeberg unless they already have a Account

I may be wrong on this one, but I think there are a very few projects that use Codeberg exclusively as their main git forge that have their user base outside people using Codeberg. So, with proper communication, I don't think it will be much of an issue.
As for Codeberg itself, I think Codeberg has enough members for bugs to be noticed and reported.

I also want to suggest locking signups temporarily. A few of the people that I know have moved away from Codeberg as they deem it to be unreliable and buggy. The state that Codeberg is operating now is very less likely to seem as a reliable alternative to platforms like Github and Gitlab. > Closing sign ups would mean, that People can't report Bugs to Projects hosted on Codeberg unless they already have a Account I may be wrong on this one, but I think there are a very few projects that use Codeberg exclusively as their main git forge that have their user base outside people using Codeberg. So, with proper communication, I don't think it will be much of an issue. As for Codeberg itself, I think Codeberg has enough members for bugs to be noticed and reported.

Closing this issue because of inactivity and because the primary topic of this issue is referring to a situation that isn't present anymore, let me know if you believe that this shouldn't be the case.

Closing this issue because of inactivity and because the primary topic of this issue is referring to a situation that isn't present anymore, let me know if you believe that this shouldn't be the case.
Owner
Copy link

@aral I am looking forward to your feedback on #1297.

@aral I am looking forward to your feedback on #1297.
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Labels
Clear labels
accessibility

Reduces accessibility and is thus a "bug" for certain user groups on Codeberg.
bug

Something is not working the way it should. Does not concern outages.
bug
infrastructure

Errors evidently caused by infrastructure malfunctions or outages
Codeberg

This issue involves Codeberg's downstream modifications and settings and/or Codeberg's structures.
contributions welcome

Please join the discussion and consider contributing a PR!
docs

No bug, but an improvement to the docs or UI description will help
duplicate

This issue or pull request already exists
enhancement

New feature
infrastructure

Involves changes to the server setups, use `bug/infrastructure` for infrastructure-related user errors.
legal

An issue directly involving legal compliance
licence / ToS

involving questions about the ToS, especially licencing compliance
please chill
we are volunteers

Please consider editing your posts and remember that there is a human on the other side. We get that you are frustrated, but it's harder for us to help you this way.
public relations

Things related to Codeberg's external communication
question

More information is needed
question
user support

This issue contains a clearly stated problem. However, it is not clear whether we have to fix anything on Codeberg's end, but we're helping them fix it and/or find the cause.
s/Forgejo

Related to Forgejo. Please also check Forgejo's issue tracker.
s/Forgejo/migration

Migration related issues in Forgejo
s/Pages

Issues related to the Codeberg Pages feature
s/Weblate

Issue is related to the Weblate instance at https://translate.codeberg.org
s/Woodpecker

Woodpecker CI related issue
security

involves improvements to the sites security
service

Add a new service to the Codeberg ecosystem (instead of implementing into Gitea)
upstream

An open issue or pull request to an upstream repository to fix this issue (partially or completely) exists (i.e. Gitea, Forgejo, etc.)
wontfix

Codeberg's current set of contributors are not planning to spend time on delegating this issue.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
8 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Codeberg/Community#908
Reference in a new issue
Codeberg/Community
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?