Skip to content
代码片段 群组 项目
该项目从 https://gitlab.com/gitlab-org/gitlab.git 镜像。 Pull mirroring failed .
上次成功更新
  1. 3月 13, 2025
    • Kev Kloss's avatar
      Expose correlation ID in overloaded message · d9fe2edb
      Kev Kloss 创作于
      This exposes the correlation ID in the 'GitLab is currently unable to
      handle this request due to load' in Workhorse, which should make
      investigating these failures easier.
      
      Changelog: changed
      d9fe2edb
  2. 3月 12, 2025
  3. 3月 04, 2025
  4. 3月 01, 2025
    • Stan Hu's avatar
      Implement repository archive cache cleaning inside Workhorse · 6ba45263
      Stan Hu 创作于
      When a user requests a Git archive, the resulting file is cached
      in `Gitlab.config.gitlab.repository_downloads_path` by Workhorse
      and cleaned up by the `RepositoryArchiveCleanUpService`, which runs
      as a cronjob every hour.
      
      However, on multi-node systems where Sidekiq and Workhorse are
      on different nodes, `Gitlab.config.gitlab.repository_downloads_path`
      may not be a shared volume. As a result, Sidekiq will not see any
      stale files in that path, while archives build up over time.
      
      Previously admins must make this a shared path for this to work, but
      this introduces a single point of failure and more configuration to
      get right. Alternatively, they can disable the cache.
      
      Instead we observe that because Workhorse writes these files, we
      can also have Workhorse clean the path periodically.
      
      To avoid having to set a configuration variable, Workhorse gets the
      `StoragePath` upon an archive request, which then initiates the
      cleaner to run. However, this has the downside of requiring a single
      user request to initiate the cleaning, but the tradeoff seems worth
      it. We can always add the path as a configuration parameter later.
      
      Relates to https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6005
      
      Changelog: fixed
      6ba45263
  5. 2月 28, 2025
  6. 2月 13, 2025
  7. 2月 12, 2025
  8. 2月 11, 2025
  9. 2月 06, 2025
    • Stan Hu's avatar
      Fix dependency proxy with some object storage providers · 72288588
      Stan Hu 创作于
      A customer reported the Docker client returns `missing or empty
      Content-Length header`:
      
      ```
      $ docker pull gitlab.example.com:443/cloud/dependency_proxy/containers/alpine:latest
      Error response from daemon: missing or empty Content-Length header
      ```
      
      I suspect the issue relates to:
      
      * https://gitlab.com/gitlab-org/gitlab-workhorse/-/issues/264
      * https://gitlab.com/gitlab-org/gitlab-workhorse/-/issues/267
      
      When a client requests an object to NetApp StorageGRID with
      `Accept-Encoding: gzip`, StorageGRID uses HTTP chunked encoding and
      omits `Content-Length`.
      
      As mentioned with `go doc http.Transport.DisableCompression`, the Go
      client will automatically add `Accept-Encoding: gzip` if
      `Accept-Encoding` is not included.
      
      It seems that for ZIP artifacts, we disabled gzip compression in
      https://gitlab.com/gitlab-org/gitlab-workhorse/-/merge_requests/508.
      
      However, we should do the same and leave it to the Docker client to
      determine whether gzip encoding can be used. On HEAD requests, the
      Docker client omits `Accept-Encoding`, while with GET requests it
      includes it. This is good because it means large objects will still be
      transferred via gzip, while the small metadata won't necessarily be
      compressed.
      
      Changelog: fixed
      72288588
  10. 2月 04, 2025
  11. 1月 30, 2025
  12. 1月 21, 2025
  13. 1月 20, 2025
  14. 1月 10, 2025
  15. 1月 09, 2025
    • Stan Hu's avatar
      Lazily initiate a Redis publish/subscribe channel · e8deefcc
      Stan Hu 创作于
      Previously a Redis PubSub channel would constantly be maintained
      during startup. If a Redis `TIMEOUT` value were configured, we could
      get into this repeated sequence:
      
      1. Redis tears down the channel.
      2. Workhorse reports an EOF error.
      3. Workhrose reconnects after a backoff time.
      
      We can avoid this by lazily initiating the publish/subscribe channel
      only when we need it. Note that since we don't block on establishing
      the channel, the first CI request might not be held in a long poll,
      but subsequent requests should.
      
      Relates to https://gitlab.com/gitlab-org/gitlab/-/issues/426006
      
      Changelog: fixed
      e8deefcc
  16. 1月 08, 2025
  17. 1月 02, 2025
  18. 11月 21, 2024
  19. 11月 16, 2024
    • Stan Hu's avatar
      Use -B gobuildid instead of sha1sum for Workhorse builds · 85a138bb
      Stan Hu 创作于
      We have some hacks in our Makefile that allow for the generation of
      reproducible GNU build IDs. The way this is implemented is kind of
      ugly:
      
      1. Build the required Workhorse binaries.
      
      2. To compute a unique and deterministic value for GNU build-id, we
         build the Go binaries a second time.
      
      3. From the first build, we extract its unique and deterministic Go
         build-id, and use that to derive a comparably unique and
         deterministic GNU build-id to inject into the final binary.
      
      4. If we cannot extract a Go build-id, we punt and fallback to using a
         random 32-byte hex string.
      
      This is rather complex and also wasteful, as we essentially have to build
      the binaries twice.
      
      To address this, we have upstreamed 089cc68676 (cmd/link: allow deriving
      GNU build ID from Go build ID ID, 2023-09-16) that does this for us in
      the Go build chain. When passing the `-B gobuildid` linker flag, then
      the linker will compute the GNU build ID from the Go build ID and thus
      do essentially the same as we did manually in Workhorse. This new feature
      has been released with Go v1.22.
      
      Now that we are on Go v1.23, we can finally use this new flag. This
      allows us to simplify our build instructions.
      
      In addition, this fixes fixes macOS build failures in Go v1.23.3,
      introudced by 54728538 (cmd/link: generate Mach-O UUID when -B flag is
      specified). On macOS, builds with our previous scheme failed:
      
      ```
      link: -B option too long (max 16 digits): 0x<SHA>
      ```
      
      This change aligns with what we have done in other projects:
      
      - Pages:
        https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/1082
      
      - Gitaly: https://gitlab.com/gitlab-org/gitaly/-/merge_requests/7221
      85a138bb
  20. 11月 14, 2024
  21. 11月 05, 2024
  22. 10月 26, 2024
  23. 10月 24, 2024
  24. 10月 22, 2024
    • Phil Hughes's avatar
      Improved code navigation parsing · 924b5c75
      Phil Hughes 创作于
      Improved the parsing for adding the definitions on the frontend for code navigation.
      Instead of just relying on the `start_char` there is a new property `end_char` that will
      also be used. This new property will allow us to parse multiple definitions within
      the same text node.
      This new parsing also helps improves cases where text would disappear, syntax
      highlighting would be lost. Instead of changing the elements we just update the
      text node - keeping the syntax highlighting nodes.
      
      https://gitlab.com/gitlab-org/gitlab/-/issues/386697
      924b5c75
  25. 10月 21, 2024
  26. 10月 18, 2024
  27. 10月 12, 2024
  28. 10月 08, 2024
  29. 10月 03, 2024
  30. 10月 02, 2024
  31. 10月 01, 2024
加载中