Git Commits Are Not Linking to JIRA Tickets Due to Corrupted Indexes
Symptoms
Upon configuring the Application link and the Project link from JIRA to Stash (or Vice Versa), the commits are not linking to JIRA Tickets.
The following appears in the atlassian-stash.log
:
2012-07-30 13:58:37,938 ERROR [pool-4-thread-1] admin 815x27x1 a7bq5z 93.220.70.231,217.115.149.100 /projects/TEST/repos/test/browse c.a.s.i.i.impl.ChangesetIndexingJob Error during indexing of test
com.atlassian.stash.exception.ServerException: An error occurred while executing an external process: /opt/stash/caches/idx-snapshots/1/1339427723617 (No such file or directory)
at com.atlassian.stash.internal.scm.git.GitCommandExitHandler.evaluateThrowable(GitCommandExitHandler.java:123) ~[na:na]
at com.atlassian.stash.internal.scm.git.GitCommandExitHandler.onCancel(GitCommandExitHandler.java:47) ~[na:na]
at com.atlassian.stash.scm.BaseCommand.callExitHandler(BaseCommand.java:131) ~[stash-spi-1.1.2.jar:na]
at com.atlassian.stash.scm.BaseCommand$CommandFuture.internalGet(BaseCommand.java:217) ~[stash-spi-1.1.2.jar:na]
...
Caused by: java.io.FileNotFoundException: /opt/stash/caches/idx-snapshots/1/1339427723617 (No such file or directory)
at java.io.FileInputStream.open(Native Method) ~[na:1.7.0_04]
at java.io.FileInputStream.<init>(FileInputStream.java:138) ~[na:1.7.0_04]
at java.io.FileReader.<init>(FileReader.java:72) ~[na:1.7.0_04]
at com.atlassian.stash.internal.idx.impl.RepositorySnapshotServiceImpl$RepositorySnapshotIterable$1.readPage(RepositorySnapshotServiceImpl.java:143) ~[stash-service-impl-1.1.2.jar:na]
Cause
It is possible that some of the files from the STASH_HOME/caches/
directory were deleted/removed.
Workaround
Since Stash does not have a reindex function at the moment, it is not possible to re-create the indexes (caches). Therefore, we recommend to remove the repository from the Stash Project and create it again. To do this:
- Clone the repository (the repository that is affected by the problem) to a location on your local disk (by executing
git clone <repository_url> <location_on_disk>
) - Delete the repository at
Repositories >> <name_of_repo> >> Settings >> Delete Repository
- Recreate the repository (using the same name) at
Projects >> <name_of_project> >> Create Repository
- Push your local clone to the newly created repository (executing
git push --all
from within your clone directory should work provided you've used the same repository name for the newly created repository) - The repository should re-index automatically at this point, check to see whether the Issues column is populated in the UI
Limitation
Do note that performing the above workaround will delete the pull request history.
Help us improve!