Skip to content
Snippets Groups Projects
  1. Dec 20, 2020
    • Georges Racinet's avatar
      Gitaly comparison tests: discovery of Gitaly installation · 024370a0
      Georges Racinet authored
      The ultimate goal being to be able to compare HGitaly responses
      to Gitaly responses, this defines concepts to describe
      Gitaly installations and adds a discovery system.
      
      A Gitaly installation is at this point a directory with
      all the compiled executables and a `ruby` subdirectory for
      the gitaly-ruby side.
      
      The CI will run on a base image with an existing installation,
      which will be specified by passing the `GITALY_INSTALL_DIR`
      environment variable, interpreted by these tests as a strong
      promise, and triggering the coverage of `tests_with_gitaly`
      in the `run-all-tests` script.
      
      Otherwise, the tests are able to detect the common case where
      HGitaly is part of a HDK workspace and use the standard location
      for the Gitaly checkout (after minimal checking).
      024370a0
  2. Dec 19, 2020
  3. Dec 18, 2020
  4. Dec 17, 2020
  5. Dec 06, 2020
  6. Dec 05, 2020
  7. Dec 03, 2020
  8. Dec 02, 2020
  9. Dec 15, 2020
  10. Dec 14, 2020
  11. Dec 13, 2020
  12. Dec 06, 2020
  13. Dec 14, 2020
  14. Dec 06, 2020
    • Georges Racinet's avatar
      server: handling SIGTERM, propagating to worker processes · 5a14152b
      Georges Racinet authored
      While it sounds like a good idea to to register the handler even
      before the workers started, this actually has them inheriting
      it and mask the one installed by Mercurial. So currently,
      we theoretically still have a race: if the main process gets
      a SIGTERM before registration, there could already be some
      workers, to which it wouldn't be propagated.
      5a14152b
    • Georges Racinet's avatar
      Server: avoid useless workers if only Unix Domain sockets · 609a4238
      Georges Racinet authored
      Reminder: we can't yet do multiprocessing for Unix Domain sockets.
      The startup code had already only the first worker listen to them.
      But it's fairly common that there are no addition tcp URLs to bind
      to, and in that case it's useless (and perhaps even a source of
      trouble) to start more workers.
      609a4238
  15. Dec 08, 2020
  16. Dec 06, 2020
  17. Dec 04, 2020
  18. Dec 03, 2020
  19. Nov 26, 2020
  20. Nov 25, 2020
    • Georges Racinet's avatar
      multiprocessing: taking number of workers from config · 4e13d41b
      Georges Racinet authored
      With the `hgitaly.workers` config knob it's possible to
      specify it.
      
      If not specified, the default value is the one computed
      in `hgitaly.server`, i.e. upper rounding of half the number
      of CPUs (as seen by Python `multiprocessing`).
      4e13d41b
    • Georges Racinet's avatar
      server: multiprocessing (TCP only) · c5616da6
      Georges Racinet authored
      See #2
      
      This works for TCP sockets only and is essentially adapted
      from the standard multiprocessing example in the `grpc`
      package: pre-binding with `SO_REUSEPORT` and not
      starting the servers before forking.
      
      We're adding some logic to keep Unix Domain Socket
      mono-processed, because we can't support them in the
      same way (SO_REUSEPORT and associated kernel balancing
      is for IP sockets only).
      
      It looks like Unix Domain Socket support would be quite
      different, and probably would involve cooperation with
      upstream grpc code for server bind.
      c5616da6
    • Georges Racinet's avatar
      server: default port logic · 8dc60180
      Georges Racinet authored
      We're using as default the same port that is the default if no
      `--listen` option is passed.
      8dc60180
    • Georges Racinet's avatar
      A simple example client · e749a96d
      Georges Racinet authored
      This can already be used for some direct testing (e.g starting
      several clients to test server multiprocessing), and is
      generally meant as something the user will want to modify.
      e749a96d
    • Sushil Khanchi's avatar
      9494328b
Loading