# Ошибка для вошедших пользователей и зависание Git

**URL:** <https://meta.discourse.org/t/error-for-logged-in-users-and-git-hang/411513>\
**Category:** Support\
**Created:** [02.Сентябрь.2026 19:08:59 UTC](https://meta.discourse.org/t/error-for-logged-in-users-and-git-hang/411513 "2026-09-02T19:08:59Z")\
**Posts on this page:** 1\
**Showing post:** 20

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [03.Сентябрь.2026 16:55:48 UTC](https://meta.discourse.org/t/error-for-logged-in-users-and-git-hang/411513/20 "2026-09-03T16:55:48Z")

</div>

@Ed_S Я, кажется, нашёл проблему и создал PR с исправлением. Можешь проверить, затрагивает ли он область, в которой ты заметил ошибки?

> <https://github.com/discourse/discourse/pull/43143>
>
> Previously, \`CurrentUserSerializer#has\_unseen\_features\` could derive the newest …new-feature timestamp inline, which filters the feed through \`GitUtils.has\_commit?\` — and since we deploy from a partial clone (\`--filter=tree:0\`), \`git merge-base --is-ancestor\` on a commit missing from the local graph is lazily fetched from the promisor remote, i.e. a blocking, untimed network call to GitHub, once per feed entry, in a request. Compounding it, a fully-filtered feed cached no result at all, so every logged-in page render redid the whole loop until the worker timed out.
> 
> This change runs that check with \`GIT\_NO\_LAZY\_FETCH=1\` under a hard timeout so it stays local and bounded, memoizes it per process, and makes \`DiscourseUpdates.latest\_new\_feature\_created\_at\` a plain Redis read derived on write (\`update\_new\_features\`, plus a throttled \`Jobs::RefreshLatestNewFeature\` to self-heal after a deploy or an upcoming change changing status).

---

_[View the full topic](https://meta.discourse.org/t/error-for-logged-in-users-and-git-hang/411513)._
