Skip to content

Commit b7ce239

Browse files
authored
*: force_init_stats doesn't block http api's startup (pingcap#50853)
close pingcap#50854
1 parent 1befe98 commit b7ce239

File tree

11 files changed

+28
-27
lines changed

11 files changed

+28
-27
lines changed

br/pkg/mock/mock_cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func (mock *Cluster) Start() error {
103103
}
104104
mock.Server = svr
105105
go func() {
106-
if err1 := svr.Run(); err1 != nil {
106+
if err1 := svr.Run(nil); err1 != nil {
107107
panic(err1)
108108
}
109109
}()

cmd/tidb-server/main.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,8 @@ func main() {
317317
close(exited)
318318
})
319319
topsql.SetupTopSQL()
320-
if config.GetGlobalConfig().Performance.ForceInitStats {
321-
<-dom.StatsHandle().InitStatsDone
322-
}
323-
terror.MustNil(svr.Run())
320+
321+
terror.MustNil(svr.Run(dom))
324322
<-exited
325323
syncLog()
326324
}

pkg/server/handler/extractorhandler/extract_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func TestExtractHandler(t *testing.T) {
6363
client.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
6464
client.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
6565
go func() {
66-
err := server.Run()
66+
err := server.Run(nil)
6767
require.NoError(t, err)
6868
}()
6969
client.WaitUntilServerOnline()

pkg/server/handler/optimizor/optimize_trace_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func TestDumpOptimizeTraceAPI(t *testing.T) {
5252
client.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
5353
client.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
5454
go func() {
55-
err := server.Run()
55+
err := server.Run(nil)
5656
require.NoError(t, err)
5757
}()
5858
client.WaitUntilServerOnline()

pkg/server/handler/optimizor/plan_replayer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func prepareServerAndClientForTest(t *testing.T, store kv.Storage, dom *domain.D
9494
srv.SetDomain(dom)
9595
require.NoError(t, err)
9696
go func() {
97-
err := srv.Run()
97+
err := srv.Run(nil)
9898
require.NoError(t, err)
9999
}()
100100

pkg/server/handler/optimizor/statistics_handler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func TestDumpStatsAPI(t *testing.T) {
5959
client.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
6060
client.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
6161
go func() {
62-
err := server.Run()
62+
err := server.Run(nil)
6363
require.NoError(t, err)
6464
}()
6565
client.WaitUntilServerOnline()

pkg/server/handler/tests/http_handler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ func (ts *basicHTTPHandlerTestSuite) startServer(t *testing.T) {
469469
ts.server = server
470470
ts.server.SetDomain(ts.domain)
471471
go func() {
472-
err := server.Run()
472+
err := server.Run(ts.domain)
473473
require.NoError(t, err)
474474
}()
475475
ts.WaitUntilServerOnline()

pkg/server/server.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,14 +420,17 @@ func (s *Server) reportConfig() {
420420
}
421421

422422
// Run runs the server.
423-
func (s *Server) Run() error {
423+
func (s *Server) Run(dom *domain.Domain) error {
424424
metrics.ServerEventCounter.WithLabelValues(metrics.ServerStart).Inc()
425425
s.reportConfig()
426426

427427
// Start HTTP API to report tidb info such as TPS.
428428
if s.cfg.Status.ReportStatus {
429429
s.startStatusHTTP()
430430
}
431+
if config.GetGlobalConfig().Performance.ForceInitStats && dom != nil {
432+
<-dom.StatsHandle().InitStatsDone
433+
}
431434
// If error should be reported and exit the server it can be sent on this
432435
// channel. Otherwise, end with sending a nil error to signal "done"
433436
errChan := make(chan error, 2)

pkg/server/tests/commontest/tidb_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ func TestSocketForwarding(t *testing.T) {
170170
server.SetDomain(ts.Domain)
171171
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
172172
go func() {
173-
err := server.Run()
173+
err := server.Run(nil)
174174
require.NoError(t, err)
175175
}()
176176
time.Sleep(time.Millisecond * 100)
@@ -202,7 +202,7 @@ func TestSocket(t *testing.T) {
202202
require.NoError(t, err)
203203
server.SetDomain(ts.Domain)
204204
go func() {
205-
err := server.Run()
205+
err := server.Run(nil)
206206
require.NoError(t, err)
207207
}()
208208
time.Sleep(time.Millisecond * 100)
@@ -238,7 +238,7 @@ func TestSocketAndIp(t *testing.T) {
238238
server.SetDomain(ts.Domain)
239239
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
240240
go func() {
241-
err := server.Run()
241+
err := server.Run(nil)
242242
require.NoError(t, err)
243243
}()
244244
cli.WaitUntilServerCanConnect()
@@ -402,7 +402,7 @@ func TestOnlySocket(t *testing.T) {
402402
require.NoError(t, err)
403403
server.SetDomain(ts.Domain)
404404
go func() {
405-
err := server.Run()
405+
err := server.Run(nil)
406406
require.NoError(t, err)
407407
}()
408408
time.Sleep(time.Millisecond * 100)
@@ -904,7 +904,7 @@ func TestGracefulShutdown(t *testing.T) {
904904
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
905905
cli.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
906906
go func() {
907-
err := server.Run()
907+
err := server.Run(nil)
908908
require.NoError(t, err)
909909
}()
910910
time.Sleep(time.Millisecond * 100)
@@ -2147,7 +2147,7 @@ func TestLocalhostClientMapping(t *testing.T) {
21472147
server.SetDomain(ts.Domain)
21482148
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
21492149
go func() {
2150-
err := server.Run()
2150+
err := server.Run(nil)
21512151
require.NoError(t, err)
21522152
}()
21532153
defer server.Close()
@@ -2888,7 +2888,7 @@ func TestProxyProtocolWithIpFallbackable(t *testing.T) {
28882888
require.NoError(t, err)
28892889
server.SetDomain(ts.Domain)
28902890
go func() {
2891-
err := server.Run()
2891+
err := server.Run(nil)
28922892
require.NoError(t, err)
28932893
}()
28942894
time.Sleep(time.Millisecond * 100)
@@ -2953,7 +2953,7 @@ func TestProxyProtocolWithIpNoFallbackable(t *testing.T) {
29532953
require.NoError(t, err)
29542954
server.SetDomain(ts.Domain)
29552955
go func() {
2956-
err := server.Run()
2956+
err := server.Run(nil)
29572957
require.NoError(t, err)
29582958
}()
29592959
time.Sleep(time.Millisecond * 1000)

pkg/server/tests/servertestkit/testkit.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func CreateTidbTestSuiteWithCfg(t *testing.T, cfg *config.Config) *TidbTestSuite
7878
ts.Server.SetDomain(ts.Domain)
7979
ts.Domain.InfoSyncer().SetSessionManager(ts.Server)
8080
go func() {
81-
err := ts.Server.Run()
81+
err := ts.Server.Run(nil)
8282
require.NoError(t, err)
8383
}()
8484
ts.WaitUntilServerOnline()

0 commit comments

Comments
 (0)