1. 07 Feb, 2019 1 commit
    • Stan Hu's avatar
      Fix failing test in spec/workers/post_receive_spec.rb · 28c48804
      Stan Hu authored
      This is what was happening before:
      1. `Project#set_timestamps_for_create` was called at creation time
      and set the `last_activity_at` and `last_repository_updated_at`
      to the current timestamp T.
      2. The test ran `PostReceive#perform`, which then called
      `PostReceive#process_wiki_changes`. If less than 500 milliseconds
      elapsed since T, then the update would just set the timestamp to T.
      To fix this problem, we can just use Timecop to ensure at least
      one second has elapsed after attempting to process changes.
      Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/8871
  2. 06 Feb, 2019 2 commits
  3. 05 Feb, 2019 1 commit
  4. 25 Jan, 2019 4 commits
    • Gabriel Mazetto's avatar
      Refactor Storage Migration · 7bc16889
      Gabriel Mazetto authored
      Specs were reviewed and improved to better cover the current behavior.
      There was some standardization done as well to facilitate the
      implementation of the rollback functionality.
      StorageMigratorWorker was extracted to HashedStorage namespace were
      RollbackerWorker will live one as well.
    • Gabriel Mazetto's avatar
      Move MigrationService to HashedStorage module · cf52488c
      Gabriel Mazetto authored
      This is part of the refactor to include a RollbackService into
      HashedStorage module
    • Gabriel Mazetto's avatar
      Prepare rake task for storage rollback · c2c34eba
      Gabriel Mazetto authored
      We are keeping compatibility with existing scheduled jobs.
    • Kamil Trzciński's avatar
      Add Container Registry API · 045d07ba
      Kamil Trzciński authored
      This includes a set of APIs to manipulate container registry.
      This includes also an ability to delete tags based on requested
      criteria, like keep-last-n, matching-name, older-than.
  5. 24 Jan, 2019 2 commits
  6. 15 Jan, 2019 1 commit
    • Stan Hu's avatar
      Only send one notification for failed remote mirror · 6fbbd4ab
      Stan Hu authored
      Retries in Sidekiq and in the remote mirror scheduler can cause repeated
      attempts in quick succession if the sync fails. Each failure will then
      send an e-mail to all project maintainers, which can spam users
      Modify the logic to send one notification the first time the mirror
      fails by setting `error_notification_sent` to `true` and reset the
      flag after a successful sync.
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56222
  7. 14 Jan, 2019 1 commit
    • Zeger-Jan van de Weg's avatar
      Ensure pool participants are linked before GC · e03602e0
      Zeger-Jan van de Weg authored
      In theory the case could happen that the initial linking of the pool
      fails and so do all the retries that Sidekiq performs. This could lead
      to data loss.
      To prevent that case, linking is done before Gits GC too. This makes
      sure that case doesn't happen.
  8. 07 Jan, 2019 1 commit
  9. 04 Jan, 2019 1 commit
  10. 21 Dec, 2018 2 commits
  11. 19 Dec, 2018 1 commit
  12. 18 Dec, 2018 1 commit
  13. 12 Dec, 2018 1 commit
  14. 07 Dec, 2018 3 commits
    • Zeger-Jan van de Weg's avatar
      Allow public forks to be deduplicated · 896c0bdb
      Zeger-Jan van de Weg authored
      When a project is forked, the new repository used to be a deep copy of everything
      stored on disk by leveraging `git clone`. This works well, and makes isolation
      between repository easy. However, the clone is at the start 100% the same as the
      origin repository. And in the case of the objects in the object directory, this
      is almost always going to be a lot of duplication.
      Object Pools are a way to create a third repository that essentially only exists
      for its 'objects' subdirectory. This third repository's object directory will be
      set as alternate location for objects. This means that in the case an object is
      missing in the local repository, git will look in another location. This other
      location is the object pool repository.
      When Git performs garbage collection, it's smart enough to check the
      alternate location. When objects are duplicated, it will allow git to
      throw one copy away. This copy is on the local repository, where to pool
      remains as is.
      These pools have an origin location, which for now will always be a
      repository that itself is not a fork. When the root of a fork network is
      forked by a user, the fork still clones the full repository. Async, the
      pool repository will be created.
      Either one of these processes can be done earlier than the other. To
      handle this race condition, the Join ObjectPool operation is
      idempotent. Given its idempotent, we can schedule it twice, with the
      same effect.
      To accommodate the holding of state two migrations have been added.
      1. Added a state column to the pool_repositories column. This column is
      managed by the state machine, allowing for hooks on transitions.
      2. pool_repositories now has a source_project_id. This column in
      convenient to have for multiple reasons: it has a unique index allowing
      the database to handle race conditions when creating a new record. Also,
      it's nice to know who the host is. As that's a short link to the fork
      networks root.
      Object pools are only available for public project, which use hashed
      storage and when forking from the root of the fork network. (That is,
      the project being forked from itself isn't a fork)
      In this commit message I use both ObjectPool and Pool repositories,
      which are alike, but different from each other. ObjectPool refers to
      whatever is on the disk stored and managed by Gitaly. PoolRepository is
      the record in the database.
    • Douwe Maan's avatar
      Improve PruneWebHookLogsWorker spec · d5094e7c
      Douwe Maan authored
    • Douwe Maan's avatar
      Remove RemoveOldWebHookLogsWorker · 536c1e40
      Douwe Maan authored
  15. 06 Dec, 2018 1 commit
  16. 05 Dec, 2018 2 commits
  17. 04 Dec, 2018 2 commits
    • Thong Kuah's avatar
      Create k8s namespace for project in group clusters · d54791e0
      Thong Kuah authored
      AFAIK the only relevant place is Projects::CreateService, this gets
      called when user creates a new project, forks a new project and does
      those things via the api.
      Also create k8s namespace for new group hierarchy
      when transferring project between groups
      Uses new Refresh service to create k8s namespaces
      - Ensure we use Cluster#cluster_project
      If a project has multiple clusters (EE), using Project#cluster_project
      is not guaranteed to return the cluster_project for this cluster. So
      switch to using Cluster#cluster_project - at this stage a cluster can
      only have 1 cluster_project.
      Also, remove rescue so that sidekiq can retry
    • Francisco Javier López's avatar
  18. 30 Nov, 2018 1 commit
    • Shinya Maeda's avatar
      Squashed commit of the following: · d56d419a
      Shinya Maeda authored
      commit 0c00e52d339f8471a6ea425d5a4a59751a3f4a35
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Fri Nov 30 15:41:46 2018 +0900
          Update schedules.md
      commit 0ae56bf5a0ba9254d2ebd4c846395113ae72d686
      Merge: c143777c9f2 9ce28bf0
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Fri Nov 30 15:38:01 2018 +0900
          Merge branch 'master-ce' into ignore-failed-pipeline-creation-on-pipeline-schedule
      commit c143777c9f250c8075355ac07e9bae7b074665c3
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Thu Nov 29 17:18:07 2018 +0900
          Fix coding offence
      commit 7c816dfa634b5911310c67c285fc3c37d5f03517
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Thu Nov 29 16:12:06 2018 +0900
          Improve spec quality
      commit f78eed45e991123f8af4a7b24f041529bbb35e91
      Merge: 96d20ce9144 a5f46278
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Thu Nov 29 15:20:16 2018 +0900
          Merge branch 'master-ce' into ignore-failed-pipeline-creation-on-pipeline-schedule
      commit 96d20ce914458f86e68b57bc1bb88ab8d27f010b
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Tue Nov 27 16:25:42 2018 +0900
          Print pipeline error
      commit 97842068b6cf1432cd400ead749843946b4f51ee
      Merge: c2b015949af 2ee8c40f
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Tue Nov 27 15:51:49 2018 +0900
          Merge branch 'master-ce' into ignore-failed-pipeline-creation-on-pipeline-schedule
      commit c2b015949afb3ecc70cb057e2d13672f378c0d03
      Merge: 3435137c17b fbbe5ccd
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Mon Nov 26 15:26:17 2018 +0900
          Merge branch 'master-ce' into ignore-failed-pipeline-creation-on-pipeline-schedule
      commit 3435137c17b0ef03003e39dd08c7370fe916c626
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Tue Nov 20 17:45:38 2018 +0900
          Track exception with Sentry
      commit 3f01f10d3b7380f0e8ceb3a379d8b6c602e9d6ca
      Merge: 5749c62355f 8a581d53
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Tue Nov 20 17:12:41 2018 +0900
          Merge branch 'master-ce' into ignore-failed-pipeline-creation-on-pipeline-schedule
      commit 5749c62355f8de62bb4e36ba1e351a78350607c1
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Thu Nov 1 11:14:26 2018 +0900
          Create a pipeline even if it is corrupted
      commit e01789890b6949b346d40fadef41aa133191cc43
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Wed Oct 31 14:26:09 2018 +0900
          Improve production log message
      commit f20d698a535f1dc70d5437c20b629fd1d956fb27
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Fri Oct 19 17:11:20 2018 +0900
          Fix typo
      commit 01323b02ac41ec50bcf237409f2e3c5c214bbfc1
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Thu Oct 18 14:46:44 2018 +0900
          Update documents
      commit 460337bf4a7e67a35d6c342678b4cfe66710ad56
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Wed Oct 10 13:21:26 2018 +0900
          Add changelog
      commit a3c4711752fedebfacbdf52da94058524af3c9f4
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Wed Oct 10 09:20:06 2018 +0900
          Ignore failed pipeline creation in pipeline schedule worker. Instead, logging the event.
  19. 29 Nov, 2018 3 commits
    • Shinya Maeda's avatar
      Improve comments · 137541c0
      Shinya Maeda authored
    • Shinya Maeda's avatar
      Improve spec · af5bf568
      Shinya Maeda authored
    • Shinya Maeda's avatar
      Squashed commit of the following: · 3fbd48e1
      Shinya Maeda authored
      commit 10456b1e9240886432f565dd17689080bbb133b9
      Merge: 312c1a9bdf8 a5f46278
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Thu Nov 29 14:33:21 2018 +0900
          Merge branch 'master-ce' into add-counter-for-trace-chunks
      commit 312c1a9bdf8efc45c3fed5ff50f05cc589bbb4ed
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Wed Nov 28 20:06:18 2018 +0900
          Fix coding offence
      commit e397cc2ccc1b2cf7f8b3558b8fa81fe2aa0ab366
      Author: Shinya Maeda <shinya@gitlab.com>
      Date:   Wed Nov 28 14:40:24 2018 +0900
          Fix tracking archive failure
  20. 27 Nov, 2018 2 commits
  21. 26 Nov, 2018 1 commit
  22. 19 Nov, 2018 1 commit
  23. 15 Nov, 2018 1 commit
  24. 09 Nov, 2018 1 commit
  25. 07 Nov, 2018 3 commits
    • Tiago Botelho's avatar
      StuckImportJobsWorker query performance optimization · 46b28842
      Tiago Botelho authored
      Improves the performance of fetching the enqueued
      projects for StuckImportJobsWorker, preventing a
      statement timeout.
    • Bob Van Landuyt's avatar
      Apply patches when creating MR via email · 6fbdc5ed
      Bob Van Landuyt authored
      This allows users to add patches as attachments to merge request
      created via email.
      When an email to create a merge request is sent, all the attachments
      ending in `.patch` will be applied to the branch specified in the
      subject of the email. If the branch did not exist, it will be created
      from the HEAD of the repository.
      When the patches could not be applied, the error message will be
      replied to the user.
      The patches can have a maximum combined size of 2MB for now.
    • Shinya Maeda's avatar
      Revert add action column changes · 9c811566
      Shinya Maeda authored