Details
-
Bug
-
Status: Done
-
High
-
Resolution: Fixed
-
4.3.10
-
None
-
None
-
Sprint 27 - Ends Nov 1
-
0.3
Description
Using the enforce trusted commit authors hook with a large number of branches results in the following exception because the excluded branches list is too long on Windows.
com.atlassian.bitbucket.ServerException: An error occurred while executing an external process: CreateProcess error=206, The filename or extension is too long at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.evaluateThrowable(GitCommandExitHandler.java:113) ~[na:na] at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.onError(GitCommandExitHandler.java:201) ~[na:na] at com.atlassian.bitbucket.scm.DefaultCommandExitHandler.onExit(DefaultCommandExitHandler.java:31) ~[bitbucket-spi-4.9.1.jar:na] at com.atlassian.bitbucket.scm.BaseCommand.callExitHandler(BaseCommand.java:146) ~[bitbucket-spi-4.9.1.jar:na] at com.atlassian.bitbucket.scm.BaseCommand$CommandFuture.internalGet(BaseCommand.java:272) ~[bitbucket-spi-4.9.1.jar:na] at com.atlassian.bitbucket.scm.BaseCommand$CommandFuture.get(BaseCommand.java:241) ~[bitbucket-spi-4.9.1.jar:na] at com.atlassian.bitbucket.scm.BaseCommand.call(BaseCommand.java:83) ~[bitbucket-spi-4.9.1.jar:na] at com.atlassian.bitbucket.scm.Command$call.call(Unknown Source) ~[na:na] at com.onresolve.scriptrunner.canned.bitbucket.util.RawCommitsPageProvider.get(RawCommitsPageProvider.groovy:49) ~[na:na] at com.atlassian.bitbucket.util.PagedIterable.iterator(PagedIterable.java:27) ~[bitbucket-util-4.9.1.jar:na] at com.onresolve.scriptrunner.canned.bitbucket.hooks.TrustedCommitAuthors.doScript(TrustedCommitAuthors.groovy:170) ~[na:na] Caused by: java.io.IOException: CreateProcess error=206, The filename or extension is too long at com.atlassian.utils.process.ExternalProcessImpl.createDefaultProcess(ExternalProcessImpl.java:377) ~[atlassian-processutils-1.7.6.jar:na] at com.atlassian.utils.process.ExternalProcessImpl.createProcess(ExternalProcessImpl.java:385) ~[atlassian-processutils-1.7.6.jar:na] at com.atlassian.utils.process.ExternalProcessImpl.start(ExternalProcessImpl.java:339) ~[atlassian-processutils-1.7.6.jar:na] at com.atlassian.bitbucket.scm.BaseCommand.doStart(BaseCommand.java:209) ~[bitbucket-spi-4.9.1.jar:na] at com.atlassian.bitbucket.scm.BaseCommand.call(BaseCommand.java:80) ~[bitbucket-spi-4.9.1.jar:na] ... 4 common frames omitted
We should use the stdin option for git rev-list to get the raw commits to limit the maximum command size in Windows. This seems to be what Atlassian do when reading the commits