1. 08 Dec, 2017 1 commit
    • Bob Van Landuyt's avatar
      Move the circuitbreaker check out in a separate process · f1ae1e39
      Bob Van Landuyt authored
      Moving the check out of the general requests, makes sure we don't have
      any slowdown in the regular requests.
      
      To keep the process performing this checks small, the check is still
      performed inside a unicorn. But that is called from a process running
      on the same server.
      
      Because the checks are now done outside normal request, we can have a
      simpler failure strategy:
      
      The check is now performed in the background every
      `circuitbreaker_check_interval`. Failures are logged in redis. The
      failures are reset when the check succeeds. Per check we will try
      `circuitbreaker_access_retries` times within
      `circuitbreaker_storage_timeout` seconds.
      
      When the number of failures exceeds
      `circuitbreaker_failure_count_threshold`, we will block access to the
      storage.
      
      After `failure_reset_time` of no checks, we will clear the stored
      failures. This could happen when the process that performs the checks
      is not running.
      f1ae1e39
  2. 13 Oct, 2017 1 commit
  3. 09 Aug, 2017 1 commit
  4. 22 Jul, 2017 1 commit
    • Jacopo's avatar
      Let's start labeling our CHANGELOG entries · eb2b895a
      Jacopo authored
      Added the type attribute to a CHANGELOG entry. When you create a new
      entry the software asks for the category of the change and sets the
      associated type in the file.
      eb2b895a
  5. 23 Jun, 2017 1 commit
  6. 21 Mar, 2017 1 commit
  7. 06 Feb, 2017 2 commits
  8. 10 Jan, 2017 1 commit
  9. 09 Dec, 2016 1 commit
  10. 02 Dec, 2016 1 commit
  11. 29 Nov, 2016 1 commit
  12. 03 Nov, 2016 1 commit
  13. 02 Nov, 2016 1 commit
  14. 31 Oct, 2016 2 commits
  15. 21 Oct, 2016 1 commit
    • Yorick Peterse's avatar
      Re-organize queues to use for Sidekiq · 97731760
      Yorick Peterse authored
      Dumping too many jobs in the same queue (e.g. the "default" queue) is a
      dangerous setup. Jobs that take a long time to process can effectively
      block any other work from being performed given there are enough of
      these jobs.
      
      Furthermore it becomes harder to monitor the jobs as a single queue
      could contain jobs for different workers. In such a setup the only
      reliable way of getting counts per job is to iterate over all jobs in a
      queue, which is a rather time consuming process.
      
      By using separate queues for various workers we have better control over
      throughput, we can add weight to queues, and we can monitor queues
      better. Some workers still use the same queue whenever their work is
      related. For example, the various CI pipeline workers use the same
      "pipeline" queue.
      
      This commit includes a Rails migration that moves Sidekiq jobs from the
      old queues to the new ones. This migration also takes care of doing the
      inverse if ever needed. This does require downtime as otherwise new jobs
      could be scheduled in the old queues after this migration completes.
      
      This commit also includes an RSpec test that blacklists the use of the
      "default" queue and ensures cron workers use the "cronjob" queue.
      
      Fixes gitlab-org/gitlab-ce#23370
      97731760
  16. 12 Aug, 2016 2 commits
  17. 17 Jun, 2016 1 commit
  18. 28 Apr, 2016 1 commit
    • Jacob Vosmaer's avatar
      Use 'exec' in Unicorn and Sidekiq launch scripts · 8a6776ca
      Jacob Vosmaer authored
      When running Unicorn or Sidekiq in the foreground this change removes
      an intermediate /bin/sh process. This makes process supervision in the
      GitLab Development Kit more reliable.
      
      This change does not affect Omnibus-GitLab (because there we do not
      use these launch scripts). Installations from source do use the launch
      scripts but for the standard GitLab init script this change will not
      make a difference.
      
      Custom installations using Upstart or Systemd may be affected however,
      because under certain configurations these systems count exactly how
      many forks happen during process startup, and we are reducing that
      number by one here.
      8a6776ca
  19. 22 Apr, 2016 1 commit
  20. 14 Apr, 2016 1 commit
    • Yorick Peterse's avatar
      Use rake db:reset instead of db:setup · a54af831
      Yorick Peterse authored
      Using db:reset ensures existing tables are first dropped. This in turn
      ensures that we can drop tables regardless of any foreign key
      constraints. While CE currently doesn't have any foreign keys EE defines
      the following relation:
      
          remote_mirrors.project_id -> projects.id
      
      MySQL will complain whenever you try to drop the "projects" table first
      even when using "DROP TABLE ... CASCADE".
      a54af831
  21. 15 Jan, 2016 1 commit
  22. 14 Jan, 2016 1 commit
  23. 08 Dec, 2015 1 commit
  24. 03 Dec, 2015 1 commit
  25. 25 Nov, 2015 1 commit
  26. 05 Oct, 2015 1 commit
  27. 25 Sep, 2015 1 commit
  28. 27 Aug, 2015 1 commit
    • Jacob Vosmaer's avatar
      Properly daemonize the mail_room process · 1081a322
      Jacob Vosmaer authored
      The old invocation only worked by accident because we have a '&'
      somewhere in the init script for expediency. When ran from a terminal,
      the mail_room daemon process ended up in the session of the terminal.
      This commit adds a small wrapper that tries to do the textbook
      daemonization steps (double fork, setsid etc.) while also taking
      care that the pidfile is written before the 'start' process exits.
      1081a322
  29. 26 Aug, 2015 1 commit
  30. 19 Aug, 2015 2 commits
  31. 18 Jun, 2015 1 commit
  32. 17 Jun, 2015 1 commit
  33. 04 Jun, 2015 1 commit
  34. 21 May, 2015 2 commits
  35. 01 Apr, 2015 1 commit