Merge branch '2.2' into develop

This commit is contained in:
Johan Wikman
2018-05-16 09:31:13 +03:00
37 changed files with 380 additions and 419 deletions

View File

@ -3545,7 +3545,7 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
{
MXS_NOTICE("Monitor '%s' is missing the '%s' parameter, "
"using default value of %d milliseconds.",
CN_MONITOR_INTERVAL, obj->object, DEFAULT_MONITOR_INTERVAL);
obj->object, CN_MONITOR_INTERVAL, DEFAULT_MONITOR_INTERVAL);
}
char *journal_age = config_get_value(obj->parameters, CN_JOURNAL_MAX_AGE);

View File

@ -930,20 +930,15 @@ static void server_parameter_free(SERVER_PARAM *tofree)
}
/**
* Retrieve a parameter value from a server
* Same as server_get_parameter but doesn't lock the server
*
* @param server The server we are looking for a parameter of
* @param name The name of the parameter we require
* @param out Buffer where value is stored, use NULL to check if the parameter exists
* @param size Size of @c out, ignored if @c out is NULL
*
* @return Length of the parameter value or 0 if parameter was not found
* @note Should only be called when the server is already locked
*/
size_t server_get_parameter(const SERVER *server, const char *name, char* out, size_t size)
size_t server_get_parameter_nolock(const SERVER *server, const char *name, char* out, size_t size)
{
int len = 0;
ss_dassert(SPINLOCK_IS_LOCKED(&server->lock));
size_t len = 0;
SERVER_PARAM *param = server->parameters;
spinlock_acquire(&server->lock);
while (param)
{
@ -955,6 +950,23 @@ size_t server_get_parameter(const SERVER *server, const char *name, char* out, s
param = param->next;
}
return len;
}
/**
* Retrieve a parameter value from a server
*
* @param server The server we are looking for a parameter of
* @param name The name of the parameter we require
* @param out Buffer where value is stored, use NULL to check if the parameter exists
* @param size Size of @c out, ignored if @c out is NULL
*
* @return Length of the parameter value or 0 if parameter was not found
*/
size_t server_get_parameter(const SERVER *server, const char *name, char* out, size_t size)
{
spinlock_acquire(&server->lock);
size_t len = server_get_parameter_nolock(server, name, out, size);
spinlock_release(&server->lock);
return len;
}

View File

@ -35,7 +35,8 @@ using std::string;
namespace
{
const char LOGNAME[] = "/tmp/maxscale.log";
const char LOGNAME[] = "maxscale.log";
static string logfile;
const size_t N_THREADS = 4;
sem_t u_semstart;
@ -110,7 +111,7 @@ bool run(const MXS_LOG_THROTTLING& throttling, int priority, size_t n_generate,
mxs_log_set_throttling(&throttling); // Causes message to be logged.
mxs_log_flush_sync();
ifstream in(LOGNAME);
ifstream in(logfile);
in.seekg(0, ios_base::end);
THREAD_ARG args[N_THREADS];
@ -167,9 +168,13 @@ int main(int argc, char* argv[])
rc = sem_init(&u_semfinish, 0, 0);
ensure(rc == 0);
unlink(LOGNAME);
if (mxs_log_init(NULL, "/tmp", MXS_LOG_TARGET_FS))
char tmpbuf[] = "/tmp/maxscale_test_logthrottling_XXXXXX";
char* logdir = mkdtemp(tmpbuf);
ensure(logdir);
logfile.assign(string{logdir} + '/' + LOGNAME);
if (mxs_log_init(NULL, logdir, MXS_LOG_TARGET_FS))
{
MXS_LOG_THROTTLING t;
@ -266,5 +271,10 @@ int main(int argc, char* argv[])
rc = EXIT_FAILURE;
}
// A crude method to remove all files but it works
string cmd = "rm -r ";
cmd += logdir;
system(cmd.c_str());
return rc;
}