Summary
FishEye/Crucible fails to index a Git repository on Windows if that repository contains a file of name with both a space and certain UTF-8 characters.
Environment
- Windows
- Git 2.11.1
Steps to Reproduce
- Add the repository at https://bitbucket.org/atlassian-jeff/doc_test to FishEye running Windows
- Allow the repository to index
Expected Results
Indexing completes without error.
Actual Results
Repository fails to index. The following error is in atlassian-fisheye-YYYY-MM-DD.log:
2017-02-07 15:30:29,570 DEBUG [InitPing2 doc_test ] fisheye DvcsProcessMonitor-onAfterFinished - Finished process: git show -m --no-abbrev --raw --stdin --no-renames --pretty=format:C:%H%nP:%P%nA:%aN%nE:%aE%nR:%cN%nF:%cE%nD:%at%nS:%s%nB:%b%n@@fe_body_end@@ took 28783ms 2017-02-07 15:30:29,570 WARN [InitPing2 doc_test ] fisheye BaseRepositoryScanner-handleSlurpException - Problem processing revisions from repository doc_test (doc_test) due to class com.cenqua.fisheye.rep.RepositoryClientException - com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: com.cenqua.fisheye.rep.RepositoryClientException: com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: at com.atlassian.fisheye.dvcs.DvcsScanner.processRevisions(DvcsScanner.java:345) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner.processRevisions(GitScanner.java:385) [fisheye.jar:?] at com.cenqua.fisheye.rep.LifecycleRepositoryScanner.slurpRepository(LifecycleRepositoryScanner.java:83) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner.slurpRepository(GitScanner.java:1597) [fisheye.jar:?] at com.cenqua.fisheye.rep.LifecycleRepositoryScanner.doSlurpTransaction(LifecycleRepositoryScanner.java:50) [fisheye.jar:?] at com.cenqua.fisheye.rep.BaseRepositoryScanner.ping(BaseRepositoryScanner.java:73) [fisheye.jar:?] at com.cenqua.fisheye.rep.BaseRepositoryEngine.doSlurp(BaseRepositoryEngine.java:85) [fisheye.jar:?] at com.cenqua.fisheye.rep.RepositoryEngine.slurp(RepositoryEngine.java:419) [fisheye.jar:?] at com.cenqua.fisheye.rep.ping.IndexingPingRequest.doRequest(IndexingPingRequest.java:28) [fisheye.jar:?] at com.cenqua.fisheye.rep.ping.IncrementalPingRequest.doRequest(IncrementalPingRequest.java:30) [fisheye.jar:?] at com.cenqua.fisheye.rep.ping.PingRequest$1.run(PingRequest.java:55) [fisheye.jar:?] at com.cenqua.fisheye.util.NamedExecution.run(NamedExecution.java:27) [fisheye.jar:?] at com.cenqua.fisheye.rep.ping.PingRequest.process(PingRequest.java:52) [fisheye.jar:?] at com.cenqua.fisheye.rep.RepositoryHandle.processPingRequests(RepositoryHandle.java:211) [fisheye.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_102] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102] Caused by: com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: at com.atlassian.fisheye.dvcs.client.DvcsContext.executeWithInput(DvcsContext.java:226) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner.processChanges(GitScanner.java:1431) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner.slurpCommits(GitScanner.java:1402) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.DvcsScanner.processCommitStream(DvcsScanner.java:534) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.DvcsScanner.processBranch(DvcsScanner.java:492) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.DvcsScanner.processRevisions(DvcsScanner.java:270) [fisheye.jar:?] ... 16 more Caused by: com.atlassian.utils.process.ProcessException: While executing: "git show -m --no-abbrev --raw --stdin --no-renames --pretty=format:C:%H%nP:%P%nA:%aN%nE:%aE%nR:%cN%nF:%cE%nD:%at%nS:%s%nB:%b%n@@fe_body_end@@" in [D:\Atlassian\Fisheye\home\var\cache\doc_test\clone] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:263) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:235) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeWithInput(DvcsContext.java:224) [fisheye.jar:?] ... 21 more Caused by: com.atlassian.utils.process.ProcessException: com.atlassian.fisheye.dvcs.handler.DvcsProcessRuntimeException: com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: E: unsupported filetype "C:/Windows/TEMP/lfVyZa_wo rdüdoc.docx" fatal: unable to read files to diff at com.atlassian.utils.process.ExternalProcessImpl.handleHandlerError(ExternalProcessImpl.java:273) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.utils.process.ExternalProcessImpl.access$300(ExternalProcessImpl.java:18) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.utils.process.ExternalProcessImpl$3.doTask(ExternalProcessImpl.java:317) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.utils.process.LatchedRunnable.run(LatchedRunnable.java:36) [atlassian-processutils-1.5.14.jar:?] ... 3 more Caused by: com.atlassian.fisheye.dvcs.handler.DvcsProcessRuntimeException: com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: E: unsupported filetype "C:/Windows/TEMP/lfVyZa__wo rdüdoc.docx" fatal: unable to read files to diff at com.atlassian.fisheye.git.GitScanner$13.processCommit(GitScanner.java:1540) [fisheye.jar:?] at com.atlassian.fisheye.git.client.GitChangeParser.handleCommit(GitChangeParser.java:235) [fisheye.jar:?] at com.atlassian.fisheye.git.client.GitChangeParser.scanPaths(GitChangeParser.java:165) [fisheye.jar:?] at com.atlassian.fisheye.git.client.GitChangeParser.processLine(GitChangeParser.java:63) [fisheye.jar:?] at com.atlassian.utils.process.LineOutputHandler.process(LineOutputHandler.java:70) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsLineOutputHandler.process(DvcsLineOutputHandler.java:66) [fisheye.jar:?] at com.atlassian.utils.process.PluggableProcessHandler.processOutput(PluggableProcessHandler.java:127) [atlassian-processutils-1.5.14.jar:?] at com.cenqua.fisheye.util.NamedProcessHandler.processOutput(NamedProcessHandler.java:31) [fisheye.jar:?] at com.atlassian.utils.process.ExternalProcessImpl$3.doTask(ExternalProcessImpl.java:315) [atlassian-processutils-1.5.14.jar:?] ... 4 more Caused by: com.atlassian.fisheye.dvcs.handler.DvcsProcessException: Error while communicating with VCS: E: unsupported filetype "C:/Windows/TEMP/lfVyZa__wo rdüdoc.docx" fatal: unable to read files to diff at com.atlassian.fisheye.dvcs.client.DvcsContext.executeWithInput(DvcsContext.java:226) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:212) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner.populateDiffInfo(GitScanner.java:1463) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner.processGitCommit(GitScanner.java:873) [fisheye.jar:?] at com.atlassian.fisheye.git.GitScanner$13.processCommit(GitScanner.java:1538) [fisheye.jar:?] ... 12 more Caused by: com.atlassian.utils.process.ProcessException: While executing: "git diff --no-renames --no-abbrev --full-index -U0 fcffd6c740ee334d2ba73a87ffcbbec0b035b883..f8b1cc0b78858eee710c428d62c4feaed281050e" in [D:\Atlassian\Fisheye\home\var\cache\doc_test\clone] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:263) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:235) [fisheye.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeWithInput(DvcsContext.java:224) [fisheye.jar:?] ... 16 more Caused by: com.atlassian.utils.process.ProcessException: Non-zero exit code: 128 at com.atlassian.utils.process.PluggableProcessHandler.complete(PluggableProcessHandler.java:69) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.utils.process.ExternalProcessImpl.wrapUpProcess(ExternalProcessImpl.java:509) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.utils.process.ExternalProcessImpl.finish(ExternalProcessImpl.java:423) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.utils.process.ExternalProcessImpl.execute(ExternalProcessImpl.java:378) [atlassian-processutils-1.5.14.jar:?] at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:250) [fisheye.jar:?] ... 18 more
Workaround
Follow the instructions on https://confluence.atlassian.com/fishkb/fisheye-fails-to-index-a-repository-and-throws-unsupported-filetype-unable-to-read-files-to-diff-858758674.html
FishEye is passing in quotes to the astextplain script which results in the file extension not being matched. For example, the file extension is being passed in as .docx" which does not match .docx. Modifying astextplain can workaround this, simply add | .docx\" to the list:
*.docx | *.DOCX | *.docm | *.DOCM | *.dotm | *.DOTM| .docx\")