-
Bug
-
Resolution: Fixed
-
Low
-
4.14.5, 5.0.1
-
None
-
Severity 2 - Major
-
Summary
When committing a git typechange search indexing for the repository to which this change was committed to starts failing. Once it reaches the maximum retries the repository will be blacklisted and search indexing will stop indefinitely.
Steps to Reproduce
- Push a repository
- Wait for it to be indexed (code is searchable)
- Change a file in the repository to a symbolic link and commit the change. Push.
Expected Results
The change is indexed
Actual Results
The below exception is thrown in the atlassian-bitbucket.log file:
2016-12-07 23:53:53,722 ERROR [search-indexing:thread-1] c.a.b.s.i.i.e.DefaultIndexEventWorker Indexing - Failed for repository ISS/global-proxy (id: 5875) with error: Indexing for repository with id 5875 failed and should be retried com.atlassian.bitbucket.search.indexer.exceptions.IndexException: Indexing for repository with id 5875 failed and should be retried at com.atlassian.bitbucket.search.indexer.internal.DefaultIndexService.lambda$updateIndexStateForError$12(DefaultIndexService.java:360) ~[bitbucket-search-index-3.0.4.jar:na] at com.atlassian.bitbucket.search.indexer.internal.DefaultIndexService$$Lambda$1855/250167376.call(Unknown Source) ~[na:na] at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onNext(OperatorOnErrorResumeNextViaFunction.java:111) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.emitScalar(OperatorMerge.java:477) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.tryEmit(OperatorMerge.java:435) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:228) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:142) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.emitScalar(OperatorMerge.java:477) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.tryEmit(OperatorMerge.java:435) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:228) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:142) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OnSubscribeToObservableFuture$ToObservableFuture.call(OnSubscribeToObservableFuture.java:75) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OnSubscribeToObservableFuture$ToObservableFuture.call(OnSubscribeToObservableFuture.java:43) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:162) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable$2.call(Observable.java:154) [bitbucket-search-index-3.0.4.jar:na] at rx.Observable.unsafeSubscribe(Observable.java:8171) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:232) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:142) [bitbucket-search-index-3.0.4.jar:na] at rx.internal.operators.OperatorMapNotification$SingleEmitter.drain(OperatorMapNotification.java:206) [ ...... -3.0.4.jar:na] at com.atlassian.bitbucket.search.internal.indexing.event.IndexEventQueueProcessor$$Lambda$320/1513031166.call(Unknown Source) [bitbucket-search-index-3.0.4.jar:na] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] ... 1 frame trimmed Caused by: com.atlassian.bitbucket.ServerException: An error occurred while executing an external process: Unexpected change type UNKNOWN for file with path: certs_prod.txt at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.evaluateThrowable(GitCommandExitHandler.java:113) ~[na:na] at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.onCancel(GitCommandExitHandler.java:50) ~[na:na] at com.atlassian.bitbucket.scm.BaseCommand.callExitHandler(BaseCommand.java:143) ~[bitbucket-spi-4.12.0-rc4.jar:na] at com.atlassian.bitbucket.scm.BaseCommand$CommandFuture.internalGet(BaseCommand.java:280) ~[bitbucket-spi-4.12.0-rc4.jar:na] at com.atlassian.bitbucket.scm.BaseCommand$CommandFuture.get(BaseCommand.java:244) ~[bitbucket-spi-4.12.0-rc4.jar:na] at com.atlassian.bitbucket.scm.BaseCommand.call(BaseCommand.java:83) ~[bitbucket-spi-4.12.0-rc4.jar:na] at com.atlassian.stash.internal.scm.git.command.SimpleGitCommand.configureAndCall(SimpleGitCommand.java:84) ~[na:na] at com.atlassian.stash.internal.scm.git.bulk.BulkContentCommand.diffTree(BulkContentCommand.java:160) ~[na:na] at com.atlassian.stash.internal.scm.git.bulk.BulkContentCommand.bulkContentIncremental(BulkContentCommand.java:129) ~[na:na] at com.atlassian.stash.internal.scm.git.bulk.BulkContentCommand.bulkContent(BulkContentCommand.java:82) ~[na:na] at com.atlassian.stash.internal.scm.git.bulk.BulkContentCommand.call(BulkContentCommand.java:70) ~[na:na] at com.atlassian.stash.internal.scm.git.bulk.BulkContentCommand.call(BulkContentCommand.java:40) ~[na:na] at com.atlassian.bitbucket.search.internal.indexing.content.ServerContentService.streamContent(ServerContentService.java:161) ~[bitbucket-search-index-3.0.4.jar:na] at com.atlassian.bitbucket.search.internal.indexing.content.ServerContentService.lambda$doStreamFilesFromRepository$3(ServerContentService.java:118) ~[bitbucket-search-index-3.0.4.jar:na] at com.atlassian.bitbucket.search.internal.indexing.content.ServerContentService$$Lambda$1438/1296489727.call(Unknown Source) ~[na:na]
Workaround
Manually reindex the repository by using the REST endpoint:
curl -XPOST -H 'Content-Type: application/json' -H 'Accept: application/json' -u <adminUsername>:<adminPassword> http://<bitbucketBaseUrl>/rest/indexing/latest/sync