Skip to content

Commit

Permalink
*: force_init_stats doesn't block http api's startup (pingcap#50853)
Browse files Browse the repository at this point in the history
  • Loading branch information
hawkingrei authored Feb 2, 2024
1 parent 1befe98 commit b7ce239
Show file tree
Hide file tree
Showing 11 changed files with 28 additions and 27 deletions.
2 changes: 1 addition & 1 deletion br/pkg/mock/mock_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func (mock *Cluster) Start() error {
}
mock.Server = svr
go func() {
if err1 := svr.Run(); err1 != nil {
if err1 := svr.Run(nil); err1 != nil {
panic(err1)
}
}()
Expand Down
6 changes: 2 additions & 4 deletions cmd/tidb-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -317,10 +317,8 @@ func main() {
close(exited)
})
topsql.SetupTopSQL()
if config.GetGlobalConfig().Performance.ForceInitStats {
<-dom.StatsHandle().InitStatsDone
}
terror.MustNil(svr.Run())

terror.MustNil(svr.Run(dom))
<-exited
syncLog()
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/server/handler/extractorhandler/extract_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func TestExtractHandler(t *testing.T) {
client.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
client.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
client.WaitUntilServerOnline()
Expand Down
2 changes: 1 addition & 1 deletion pkg/server/handler/optimizor/optimize_trace_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func TestDumpOptimizeTraceAPI(t *testing.T) {
client.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
client.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
client.WaitUntilServerOnline()
Expand Down
2 changes: 1 addition & 1 deletion pkg/server/handler/optimizor/plan_replayer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func prepareServerAndClientForTest(t *testing.T, store kv.Storage, dom *domain.D
srv.SetDomain(dom)
require.NoError(t, err)
go func() {
err := srv.Run()
err := srv.Run(nil)
require.NoError(t, err)
}()

Expand Down
2 changes: 1 addition & 1 deletion pkg/server/handler/optimizor/statistics_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func TestDumpStatsAPI(t *testing.T) {
client.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
client.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
client.WaitUntilServerOnline()
Expand Down
2 changes: 1 addition & 1 deletion pkg/server/handler/tests/http_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ func (ts *basicHTTPHandlerTestSuite) startServer(t *testing.T) {
ts.server = server
ts.server.SetDomain(ts.domain)
go func() {
err := server.Run()
err := server.Run(ts.domain)
require.NoError(t, err)
}()
ts.WaitUntilServerOnline()
Expand Down
5 changes: 4 additions & 1 deletion pkg/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -420,14 +420,17 @@ func (s *Server) reportConfig() {
}

// Run runs the server.
func (s *Server) Run() error {
func (s *Server) Run(dom *domain.Domain) error {
metrics.ServerEventCounter.WithLabelValues(metrics.ServerStart).Inc()
s.reportConfig()

// Start HTTP API to report tidb info such as TPS.
if s.cfg.Status.ReportStatus {
s.startStatusHTTP()
}
if config.GetGlobalConfig().Performance.ForceInitStats && dom != nil {
<-dom.StatsHandle().InitStatsDone
}
// If error should be reported and exit the server it can be sent on this
// channel. Otherwise, end with sending a nil error to signal "done"
errChan := make(chan error, 2)
Expand Down
16 changes: 8 additions & 8 deletions pkg/server/tests/commontest/tidb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ func TestSocketForwarding(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -202,7 +202,7 @@ func TestSocket(t *testing.T) {
require.NoError(t, err)
server.SetDomain(ts.Domain)
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -238,7 +238,7 @@ func TestSocketAndIp(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
cli.WaitUntilServerCanConnect()
Expand Down Expand Up @@ -402,7 +402,7 @@ func TestOnlySocket(t *testing.T) {
require.NoError(t, err)
server.SetDomain(ts.Domain)
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -904,7 +904,7 @@ func TestGracefulShutdown(t *testing.T) {
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
cli.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -2147,7 +2147,7 @@ func TestLocalhostClientMapping(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
defer server.Close()
Expand Down Expand Up @@ -2888,7 +2888,7 @@ func TestProxyProtocolWithIpFallbackable(t *testing.T) {
require.NoError(t, err)
server.SetDomain(ts.Domain)
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -2953,7 +2953,7 @@ func TestProxyProtocolWithIpNoFallbackable(t *testing.T) {
require.NoError(t, err)
server.SetDomain(ts.Domain)
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 1000)
Expand Down
2 changes: 1 addition & 1 deletion pkg/server/tests/servertestkit/testkit.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func CreateTidbTestSuiteWithCfg(t *testing.T, cfg *config.Config) *TidbTestSuite
ts.Server.SetDomain(ts.Domain)
ts.Domain.InfoSyncer().SetSessionManager(ts.Server)
go func() {
err := ts.Server.Run()
err := ts.Server.Run(nil)
require.NoError(t, err)
}()
ts.WaitUntilServerOnline()
Expand Down
14 changes: 7 additions & 7 deletions pkg/server/tests/tls/tls_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ func TestTLSVerify(t *testing.T) {
defer server.Close()
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -308,7 +308,7 @@ func TestTLSBasic(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -384,7 +384,7 @@ func TestErrorNoRollback(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
defer server.Close()
Expand Down Expand Up @@ -443,7 +443,7 @@ func TestReloadTLS(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -536,7 +536,7 @@ func TestStatusAPIWithTLS(t *testing.T) {
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
cli.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down Expand Up @@ -594,7 +594,7 @@ func TestStatusAPIWithTLSCNCheck(t *testing.T) {
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
cli.StatusPort = testutil.GetPortFromTCPAddr(server.StatusListenerAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
defer server.Close()
Expand Down Expand Up @@ -652,7 +652,7 @@ func TestTLSAuto(t *testing.T) {
server.SetDomain(ts.Domain)
cli.Port = testutil.GetPortFromTCPAddr(server.ListenAddr())
go func() {
err := server.Run()
err := server.Run(nil)
require.NoError(t, err)
}()
time.Sleep(time.Millisecond * 100)
Expand Down

0 comments on commit b7ce239

Please sign in to comment.