Bundled Elasticsearch throws node validation exception after Bitbucket upgrade
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
After upgrading Bitbucket, the bundled Elasticsearch instance fails to start. In addition, the following error is found in the <BitbucketHome>/log/search/bitbucket_search.log
file:
[2020-02-24T06:15:46,142][ERROR][o.e.b.Bootstrap ] [bitbucket_bundled]node validation exception
Cluster name [bitbucket_search] subdirectory exists in data paths [<BITBUCKET_HOME>/shared/search/data/bitbucket_search]. All data under these paths must be moved up one directory to paths [<BITBUCKET_HOME>/shared/search/data]
原因
This bitbucket_search
directory may exist because an older Bitbucket version (Bitbucket 5.4.x or less) used the following path to store the Elasticsearch indexes:
$BITBUCKET_HOME/shared/search/data/bitbucket_search/nodes
From Bitbucket 5.15.x onward, it stores the Elasticsearch indexes in the following path:
$BITBUCKET_HOME/shared/search/data/nodes
In the following ticket, we upgraded the version of the bundled Elasticsearch instance to 6.8.6 - which contains a change from Elasticsearch which prevents the node from starting up if there's a cluster name in the provided data path:
- BSERV-12187Getting issue details... STATUS
ソリューション
The following bug ticket tracks our progress towards automatically applying the below steps in later versions of Bitbucket:
To resolve this problem, the older $BITBUCKET_HOME/shared/search/data/bitbucket_search
directory needs to be fully removed.
Once this directory has been removed, run the appropriate Bitbucket start-up script for your environment in order to attempt to start the bundled Elasticsearch instance.
This should not have any impact on the integrity of the indexes stored in $BITBUCKET_HOME/shared/search/data/nodes
, which is the current location where the bundled Elasticsearch instance stores its indexes.