Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

server: set connection to TCP socket when unix and TCP used (#23463) #23513

Merged
merged 30 commits into from
May 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
8f4c61d
cherry pick #23463 to release-4.0
morgo Mar 24, 2021
bdb0368
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot Apr 30, 2021
f69af36
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot Apr 30, 2021
3840e7f
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot Apr 30, 2021
6202dad
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
d8a920b
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
e48cd39
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
350f695
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
be78eee
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
08fbfb5
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
70daef4
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 6, 2021
fbf6de6
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 7, 2021
aac3048
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 7, 2021
7b37370
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 7, 2021
09529dd
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 8, 2021
bac31aa
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 8, 2021
608cdd3
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 8, 2021
c9c2bfa
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 8, 2021
717846d
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
9479b19
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
e761cce
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
d5a4087
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
2de9dd2
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
8cb4200
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
a5e4633
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
a6a2642
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
f38e8d7
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
abb269b
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
5980c03
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 10, 2021
3f2bf99
Merge branch 'release-4.0' into release-4.0-fab0b934a47f
ti-chi-bot May 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,11 @@ func (s *Server) newConn(conn net.Conn) *clientConn {
return cc
}

// isUnixSocket should ideally be a function of clientConnection!
// But currently since unix-socket connections are forwarded to TCP when the server listens on both, it can really only be accurate on a server-level.
// If the server is listening on both, it *must* return FALSE for remote-host authentication to be performed correctly. See #23460.
func (s *Server) isUnixSocket() bool {
return s.cfg.Socket != ""
return s.cfg.Socket != "" && s.cfg.Port == 0
}

func (s *Server) forwardUnixSocketToTCP() {
Expand Down
3 changes: 3 additions & 0 deletions server/tidb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,7 @@ func (ts *tidbTestSuite) TestStatusAPIWithTLS(c *C) {
cli.statusPort = getPortFromTCPAddr(server.statusListener.Addr())
go server.Run()
time.Sleep(time.Millisecond * 100)
c.Assert(server.isUnixSocket(), IsFalse) // If listening on tcp-only, return FALSE

// https connection should work.
ts.runTestStatusAPI(c)
Expand Down Expand Up @@ -348,6 +349,7 @@ func (ts *tidbTestSuite) TestSocketForwarding(c *C) {
cli.port = getPortFromTCPAddr(server.listener.Addr())
go server.Run()
time.Sleep(time.Millisecond * 100)
c.Assert(server.isUnixSocket(), IsFalse) // If listening on both, return FALSE
defer server.Close()

cli.runTestRegression(c, func(config *mysql.Config) {
Expand All @@ -371,6 +373,7 @@ func (ts *tidbTestSuite) TestSocket(c *C) {
c.Assert(err, IsNil)
go server.Run()
time.Sleep(time.Millisecond * 100)
c.Assert(server.isUnixSocket(), IsTrue) // If listening on socket-only, return TRUE
defer server.Close()

//a fake server client, config is override, just used to run tests
Expand Down