File tree Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Original file line number Diff line number Diff line change 5
5
package indexer
6
6
7
7
import (
8
+ "context"
9
+ "os"
8
10
"strings"
9
11
"sync"
10
12
13
+ "code.gitea.io/gitea/modules/graceful"
11
14
"code.gitea.io/gitea/modules/log"
12
15
"code.gitea.io/gitea/modules/setting"
13
16
@@ -104,10 +107,11 @@ func (update RepoIndexerUpdate) AddToFlushingBatch(batch rupture.FlushingBatch)
104
107
func InitRepoIndexer (populateIndexer func () error ) {
105
108
indexer , err := openIndexer (setting .Indexer .RepoPath , repoIndexerLatestVersion )
106
109
if err != nil {
107
- log .Fatal ("InitRepoIndexer: %v" , err )
110
+ log .Fatal ("InitRepoIndexer %s : %v" , setting . Indexer . RepoPath , err )
108
111
}
109
112
if indexer != nil {
110
113
indexerHolder .set (indexer )
114
+ closeAtTerminate ()
111
115
return
112
116
}
113
117
@@ -117,6 +121,21 @@ func InitRepoIndexer(populateIndexer func() error) {
117
121
if err = populateIndexer (); err != nil {
118
122
log .Fatal ("PopulateRepoIndex: %v" , err )
119
123
}
124
+ closeAtTerminate ()
125
+ }
126
+
127
+ func closeAtTerminate () {
128
+ graceful .GetManager ().RunAtTerminate (context .Background (), func () {
129
+ log .Debug ("Closing repo indexer" )
130
+ indexer := indexerHolder .get ()
131
+ if indexer != nil {
132
+ err := indexer .Close ()
133
+ if err != nil {
134
+ log .Error ("Error whilst closing the repository indexer: %v" , err )
135
+ }
136
+ }
137
+ log .Info ("PID: %d Repository Indexer closed" , os .Getpid ())
138
+ })
120
139
}
121
140
122
141
// createRepoIndexer create a repo indexer if one does not already exist
You can’t perform that action at this time.
0 commit comments