MXS-710: Fix regression

MaxScale would crash if two or more listeners used the same service and
one of the listeners failed to start.
This commit is contained in:
Markus Makela 2016-11-09 06:42:52 +02:00
parent 5d930585f9
commit 7f500feb9d

View File

@ -270,8 +270,6 @@ serviceStartPort(SERVICE *service, SERV_LISTENER *port)
}
if (loaded == -1)
{
users_free(service->users);
service->users = NULL;
dcb_close(port->listener);
port->listener = NULL;
goto retblock;
@ -353,10 +351,7 @@ serviceStartPort(SERVICE *service, SERV_LISTENER *port)
if ((funcs = (GWPROTOCOL *)load_module(port->protocol, MODULE_PROTOCOL)) == NULL)
{
users_free(service->users);
service->users = NULL;
dcb_close(port->listener);
service->users = NULL;
port->listener = NULL;
MXS_ERROR("Unable to load protocol module %s. Listener "
"for service %s not started.",
@ -389,11 +384,8 @@ serviceStartPort(SERVICE *service, SERV_LISTENER *port)
MXS_ERROR("Failed to create session to service %s.",
service->name);
users_free(service->users);
service->users = NULL;
dcb_close(port->listener);
port->listener = NULL;
service->users = NULL;
goto retblock;
}
}
@ -403,8 +395,6 @@ serviceStartPort(SERVICE *service, SERV_LISTENER *port)
port->port,
port->protocol,
service->name);
users_free(service->users);
service->users = NULL;
dcb_close(port->listener);
port->listener = NULL;
}