1. 17 Jun, 2021 4 commits
  2. 16 Jun, 2021 1 commit
  3. 26 May, 2021 5 commits
  4. 25 Mar, 2021 2 commits
  5. 23 Mar, 2021 1 commit
  6. 25 May, 2021 1 commit
  7. 04 Apr, 2021 1 commit
    • Georges Racinet's avatar
      message: wrapper class for easy logging · 10be0d6ac733
      Georges Racinet authored
      With gRPC, the `repr` of messages, notably Gitaly Requests
      is made of multiple lines.
      This is very bad for logging: a log should always be made of
      a single line for:
      
      - meaningful grepping
      - detangling when several processes log to the same file
      
      We want in particular service method to be able to log
      easily their incoming requests and/or more messages, but
      we want the formatting to be done only if the log is
      actually to be emitted (important to avoid debug logs to
      make production servers choke). This is usually achieved with
      the following pattern, because logging evaluation is inherently
      lazy.
      
      ```python
      logging.debug('the interesting object is %r', obj)
      ```
      
      We could use extras, as `hg-loggingmod` does for the repository,
      but that is evaluated in the final formatting of the entire log
      line, and requires to register a specific format, then a specific
      handler to use it.
      
      The provided solution (wrapping in a class), is not zero-cost,
      but is expected to be cheap enough for the time being.
      10be0d6ac733
  8. 18 May, 2021 1 commit
  9. 25 Apr, 2021 2 commits
  10. 24 Apr, 2021 1 commit
  11. 22 Apr, 2021 11 commits
  12. 11 Apr, 2021 5 commits
  13. 21 Apr, 2021 2 commits
    • Georges Racinet's avatar
      Blob service: streaming in chunks of WRITE_BUFFER_SIZE · 92c2deb0bf56
      Georges Racinet authored
      The reason why Gitaly does not respect `WRITE_BUFFER_SIZE`
      even though the Blob serving method go through its
      `streamio.SendWriter` object which enforces it is now
      roughly understood: the `SendWriter` object is called for
      the smaller chunks generated by `io.CopyN`.
      
      Since this does not look to be the actual intent in Gitaly
      and may be corrected later, we make HGitaly abide to
      `WRITE_BUFFER_SIZE` right away. This makes our code
      more consistent.
      
      Also, this makes the default chunk size go up from 16kB to
      128kB. It wouldn't be very surprising if the penalty for
      chunks that are too small (number of requests multiplied by 8)
      would be bigger in a Python program than in a Go program, because
      we may have a higher overhead per request.
      92c2deb0bf56
    • Georges Racinet's avatar
      Gitaly Comparison tests: Gitaly Blob chunking can vary · 9e62dfcb2c9d
      Georges Racinet authored
      This fixes a flakiness in the comparison tests for `get_blob` and
      `get_blobs`: Gitaly's chunking is not constant, seems to depend
      on the (circumstantial) size of some inner buffers or similar.
      Hence a direct comparison of Gitaly and HGitaly responses is
      flay.
      
      Instead, we are focusing on what matters: repetition of metadata
      like oid and size (or not) and of course that the whole content
      is correct.
      9e62dfcb2c9d
  14. 22 Apr, 2021 2 commits
  15. 15 Apr, 2021 1 commit