Skip to content

Commit 32572f7

Browse files
committed
[#23629]yugabyted: 2nd node doesn't join if webserver_port is changed
Summary: While doing the `validate_and_set_configs` step yugabyted didn't consider the user given custom value of webserver_port of master and tserver. Added a fix for this. Jira: DB-12544 Test Plan: ./yb_build.sh --java-test 'org.yb.yugabyted.*' Reviewers: nikhil Reviewed By: nikhil Subscribers: yugabyted-dev, sgarg-yb Differential Revision: https://phorge.dev.yugabyte.com/D37535
1 parent da4da45 commit 32572f7

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

bin/yugabyted

+14-10
Original file line numberDiff line numberDiff line change
@@ -6243,9 +6243,8 @@ class ControlScript(object):
62436243

62446244
# Get the current master leader known to a tserver using api/v1/masters endpoint
62456245
# of the tserver.
6246-
def get_current_master_leader_from_api(self, tserverIP, timeout=60):
6247-
tserver_addr = "{}:{}".format(tserverIP,
6248-
self.configs.saved_data.get("tserver_webserver_port"))
6246+
def get_current_master_leader_from_api(self, tserverIP, tserver_webserver_port, timeout=60):
6247+
tserver_addr = "{}:{}".format(tserverIP, tserver_webserver_port)
62496248
try:
62506249
tserverMastersAPI = "http://{}/api/v1/masters".format(tserver_addr)
62516250
Output.log("Trying to get masters information from {}".format(tserverMastersAPI) +
@@ -6961,6 +6960,13 @@ class ControlScript(object):
69616960
self.setup_env_init.set_ycql_keyspace(args.keyspace)
69626961

69636962
if args.parser == "start":
6963+
master_webserver_port = self.configs.saved_data.get("master_webserver_port")
6964+
if args.master_webserver_port is not None:
6965+
master_webserver_port = args.master_webserver_port
6966+
6967+
tserver_webserver_port = self.configs.saved_data.get("tserver_webserver_port")
6968+
if args.tserver_webserver_port is not None:
6969+
tserver_webserver_port = args.tserver_webserver_port
69646970
if args.read_replica and not args.join:
69656971
Output.print_out(Output.make_red("ERROR") + ": read_replica neds to be " +
69666972
"started with --join flag.")
@@ -7044,12 +7050,12 @@ class ControlScript(object):
70447050
if not cluster_member:
70457051
# Check if tserver webserver at join_IP is reachable or not
70467052
# Also get the leader master(used to get the info of all tservers)
7047-
master_leader = self.get_current_master_leader_from_api(args.join)
7053+
master_leader = self.get_current_master_leader_from_api(args.join,
7054+
tserver_webserver_port)
70487055
args.join = master_leader
70497056

70507057
# Get info on all tservers
7051-
master_leader_hostport = "{}:{}".format(master_leader,
7052-
self.configs.saved_data.get("master_webserver_port"))
7058+
master_leader_hostport = "{}:{}".format(master_leader, master_webserver_port)
70537059
tservers_info = dict(self.get_all_tserver_info(master_leader_hostport))
70547060

70557061
# Check if any existing node has the same IP as advertise address
@@ -7125,8 +7131,7 @@ class ControlScript(object):
71257131

71267132
if args.insecure:
71277133
if args.join and not cluster_member:
7128-
master_hostport = "{}:{}".format(args.join,
7129-
self.configs.saved_data.get("master_webserver_port"))
7134+
master_hostport = "{}:{}".format(args.join, master_webserver_port)
71307135
if self.is_leader_master_secure(master_hostport):
71317136
# Case Scenario: When a User starts the 1st node in secure mode and tries
71327137
# to start the second node in insecure mode
@@ -7136,8 +7141,7 @@ class ControlScript(object):
71367141
"secure and an insecure node.")
71377142
elif args.secure:
71387143
if args.join and not cluster_member:
7139-
master_hostport = "{}:{}".format(args.join,
7140-
self.configs.saved_data.get("master_webserver_port"))
7144+
master_hostport = "{}:{}".format(args.join, master_webserver_port)
71417145
if not self.is_leader_master_secure(master_hostport):
71427146
# Case Scenario: When the user starts the 1st node in insecure mode and
71437147
# tries to start the second node in secure mode.

0 commit comments

Comments
 (0)