]> source.dussan.org Git - gitea.git/commitdiff
fix indexer reindex bug when gitea restart (#5563)
authorLunny Xiao <xiaolunwen@gmail.com>
Wed, 19 Dec 2018 08:37:48 +0000 (16:37 +0800)
committerGitHub <noreply@github.com>
Wed, 19 Dec 2018 08:37:48 +0000 (16:37 +0800)
* fix issue indexer bug reindex when restart gitea

* also fix code indexer reindex when gitea restart

modules/indexer/issue.go
modules/indexer/repo.go

index b0d231a7cf729f1ec1524f4c3a8332cfead799ca..29c78307b6339aa240063c619081ee1e787a301a 100644 (file)
@@ -60,7 +60,7 @@ func InitIssueIndexer(populateIndexer func() error) {
                return
        }
 
-       if err = createIssueIndexer(); err != nil {
+       if err = createIssueIndexer(setting.Indexer.IssuePath, issueIndexerLatestVersion); err != nil {
                log.Fatal(4, "InitIssuesIndexer: create index, %v", err)
        }
        if err = populateIndexer(); err != nil {
@@ -69,7 +69,7 @@ func InitIssueIndexer(populateIndexer func() error) {
 }
 
 // createIssueIndexer create an issue indexer if one does not already exist
-func createIssueIndexer() error {
+func createIssueIndexer(path string, latestVersion int) error {
        mapping := bleve.NewIndexMapping()
        docMapping := bleve.NewDocumentMapping()
 
@@ -100,8 +100,14 @@ func createIssueIndexer() error {
        mapping.AddDocumentMapping("_all", bleve.NewDocumentDisabledMapping())
 
        var err error
-       issueIndexer, err = bleve.New(setting.Indexer.IssuePath, mapping)
-       return err
+       issueIndexer, err = bleve.New(path, mapping)
+       if err != nil {
+               return err
+       }
+
+       return rupture.WriteIndexMetadata(path, &rupture.IndexMetadata{
+               Version: latestVersion,
+       })
 }
 
 // IssueIndexerBatch batch to add updates to
index 4d1e7921524329efc84a6cebe53f820cc021c859..20e0fa6b1854e8a1872f4fab3611be8da3ff4b93 100644 (file)
@@ -84,7 +84,7 @@ func InitRepoIndexer(populateIndexer func() error) {
                return
        }
 
-       if err = createRepoIndexer(); err != nil {
+       if err = createRepoIndexer(setting.Indexer.RepoPath, repoIndexerLatestVersion); err != nil {
                log.Fatal(4, "CreateRepoIndexer: %v", err)
        }
        if err = populateIndexer(); err != nil {
@@ -93,7 +93,7 @@ func InitRepoIndexer(populateIndexer func() error) {
 }
 
 // createRepoIndexer create a repo indexer if one does not already exist
-func createRepoIndexer() error {
+func createRepoIndexer(path string, latestVersion int) error {
        var err error
        docMapping := bleve.NewDocumentMapping()
        numericFieldMapping := bleve.NewNumericFieldMapping()
@@ -119,8 +119,13 @@ func createRepoIndexer() error {
        mapping.AddDocumentMapping(repoIndexerDocType, docMapping)
        mapping.AddDocumentMapping("_all", bleve.NewDocumentDisabledMapping())
 
-       repoIndexer, err = bleve.New(setting.Indexer.RepoPath, mapping)
-       return err
+       repoIndexer, err = bleve.New(path, mapping)
+       if err != nil {
+               return err
+       }
+       return rupture.WriteIndexMetadata(path, &rupture.IndexMetadata{
+               Version: latestVersion,
+       })
 }
 
 func filenameIndexerID(repoID int64, filename string) string {