Uploaded image for project: 'Crucible'
  1. Crucible
  2. CRUC-6770

Error when indexing git commits containing unicode filenames

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Low
    • None
    • 3.3.2, 3.3.1
    • None
    • None

    Description

      Yesterday our Crucible threw the following error:

      Repository index failed due to error com.cenqua.fisheye.rep.RepositoryClientExoeption: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: 
      com.atlassian.utils.process.ProcessException: While executing: "git whatchanged --always --reverse --date-order -m ‐-no-abbrev -C --find-copies-harder 5e2ebe6a0aa239635ddc91d8064636436f759f38..ab78600b4b48f1efefd7871f55750943c1963dee --pretty=format:C:%H%nP:%P%nA:%aN%nE:%aE%nR:%cN%nF:%cE%nD:%at%n5:%s%nB:%b%n@@fe_body_end@@" in [/var/www/fecru/var/cache/in/clone] 
      com.atlassian.utils.process.ProcessException: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessRuntimeException: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessRuntimeException: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: 
      com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: 
      com.atlassian.utils.process.ProcessException: While executing: "git diff -C --find-copies-harder --no-abbrev --full-index -UO 46b53509c9d384f697306480993df888c9058f..61d862daa5290309d708d365423a998377d584b4" in [/var/www/fecru/var/cache/in/clone] 
      com.atlassian.utils.process.ProcessException: 
      java.lang.StringIndexOutOfBoundsException: String index out of range: 209 
      java.lang.StringIndexOutOfBoundsException: String index out of range: 209
      

      Having no idea what to look for (since the error doesn't really point out the problem), I ran this command to look for lines in the changes that are longer than 209 characters:

      git diff -C --find-copies-harder --no-abbrev --full-index -U0 46b85af50ec9d384fe9730648c993dfe88c9c58f..61d862daa52e030ed7c8d36542aaee8377d584b4 | grep  '.\{209,\}'
      

      I found one interesting line:

      diff --git a/vendor/liip/imagine-bundle/Liip/ImagineBundle/Tests/Fixtures/assets/%F0%C9%F0%F4%F0%F4%F0%F9.jpeg "b/vendor/liip/imagine-bundle/Liip/ImagineBundle/Tests/Fixtures/assets/\320\220\320\223\320\223\320\227.jpeg"
      

      Calculating the line length with and without interpreting unicode characters looked promising as the candidate for this error. Having no other idea what makes Crucible complain, we rebased and removed that file and suddenly everything was working again.

      So obviously there is something wrong in processing changes that contain filenames with unicode characters. I wonder that no one ran into this problem before (at least I didn't find a ticket related to that problem).

      To reproduce the issue: just add a file containing unicode characters to the git repository (i.e. АГГЗ.txt) and let Crucible index the changes. That should trigger the error.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              5e2fab5068b9 Michael Weinrich
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: