mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
feedback plugin debug
make it possible to change feedback plugin wait intervals * only in debug builds * and force the feedback report to be ignored update the test to use this feature
This commit is contained in:
@ -38,6 +38,9 @@ max_heap_table_size= 1M
|
|||||||
loose-aria-pagecache-buffer-size=8M
|
loose-aria-pagecache-buffer-size=8M
|
||||||
|
|
||||||
loose-feedback-user-info= mysql-test
|
loose-feedback-user-info= mysql-test
|
||||||
|
loose-feedback-debug-startup-interval=20
|
||||||
|
loose-feedback-debug-first-interval=60
|
||||||
|
loose-feedback-debug-interval=60
|
||||||
|
|
||||||
loose-innodb_data_file_path= ibdata1:10M:autoextend
|
loose-innodb_data_file_path= ibdata1:10M:autoextend
|
||||||
loose-innodb_buffer_pool_size= 8M
|
loose-innodb_buffer_pool_size= 8M
|
||||||
|
@ -3,7 +3,8 @@ select plugin_status from information_schema.plugins where plugin_name='feedback
|
|||||||
plugin_status
|
plugin_status
|
||||||
ACTIVE
|
ACTIVE
|
||||||
select * from information_schema.feedback where variable_name like 'feed%'
|
select * from information_schema.feedback where variable_name like 'feed%'
|
||||||
and variable_name not like '%_uid';
|
and variable_name not like '%_uid'
|
||||||
|
and variable_name not like '%debug%';
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
FEEDBACK used 1
|
FEEDBACK used 1
|
||||||
FEEDBACK version 1.1
|
FEEDBACK version 1.1
|
||||||
|
@ -6,7 +6,8 @@ SELECT variable_value = @feedback_used + 1 FROM information_schema.feedback wher
|
|||||||
variable_value = @feedback_used + 1
|
variable_value = @feedback_used + 1
|
||||||
1
|
1
|
||||||
select * from information_schema.feedback where variable_name like 'feed%'
|
select * from information_schema.feedback where variable_name like 'feed%'
|
||||||
and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used';
|
and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used'
|
||||||
|
and variable_name not like '%debug%';
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
FEEDBACK version 1.1
|
FEEDBACK version 1.1
|
||||||
FEEDBACK_SEND_RETRY_WAIT 60
|
FEEDBACK_SEND_RETRY_WAIT 60
|
||||||
|
@ -6,14 +6,13 @@ SELECT variable_value = @feedback_used + 1 FROM information_schema.feedback wher
|
|||||||
variable_value = @feedback_used + 1
|
variable_value = @feedback_used + 1
|
||||||
1
|
1
|
||||||
select * from information_schema.feedback where variable_name like 'feed%'
|
select * from information_schema.feedback where variable_name like 'feed%'
|
||||||
and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used';
|
and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used'
|
||||||
|
and variable_name not like '%debug%';
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
FEEDBACK version 1.1
|
FEEDBACK version 1.1
|
||||||
FEEDBACK_SEND_RETRY_WAIT 60
|
FEEDBACK_SEND_RETRY_WAIT 60
|
||||||
FEEDBACK_SEND_TIMEOUT 60
|
FEEDBACK_SEND_TIMEOUT 60
|
||||||
FEEDBACK_URL http://mariadb.org/feedback_plugin/post
|
FEEDBACK_URL http://mariadb.org/feedback_plugin/post
|
||||||
FEEDBACK_USER_INFO mysql-test
|
FEEDBACK_USER_INFO mysql-test
|
||||||
feedback plugin: report to 'http://mariadb.org/feedback_plugin/post' was sent
|
6: feedback plugin: report to 'http://mariadb.org/feedback_plugin/post' was sent
|
||||||
feedback plugin: server replied 'ok'
|
6: feedback plugin: server replied 'ok'
|
||||||
feedback plugin: report to 'http://mariadb.org/feedback_plugin/post' was sent
|
|
||||||
feedback plugin: server replied 'ok'
|
|
||||||
|
@ -10,6 +10,8 @@ select plugin_status from information_schema.plugins where plugin_name='feedback
|
|||||||
--replace_result https http
|
--replace_result https http
|
||||||
--sorted_result
|
--sorted_result
|
||||||
select * from information_schema.feedback where variable_name like 'feed%'
|
select * from information_schema.feedback where variable_name like 'feed%'
|
||||||
and variable_name not like '%_uid';
|
and variable_name not like '%_uid'
|
||||||
|
and variable_name not like '%debug%';
|
||||||
|
|
||||||
uninstall plugin feedback;
|
uninstall plugin feedback;
|
||||||
|
|
||||||
|
@ -24,4 +24,5 @@ SELECT variable_value = @feedback_used + 1 FROM information_schema.feedback wher
|
|||||||
--replace_result https http
|
--replace_result https http
|
||||||
--sorted_result
|
--sorted_result
|
||||||
select * from information_schema.feedback where variable_name like 'feed%'
|
select * from information_schema.feedback where variable_name like 'feed%'
|
||||||
and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used';
|
and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used'
|
||||||
|
and variable_name not like '%debug%';
|
||||||
|
@ -25,20 +25,15 @@ sleep 310;
|
|||||||
--let $shutdown_timeout= 60
|
--let $shutdown_timeout= 60
|
||||||
source include/restart_mysqld.inc;
|
source include/restart_mysqld.inc;
|
||||||
|
|
||||||
replace_result https http;
|
replace_result https http 2 6;
|
||||||
perl;
|
perl;
|
||||||
$log_error= $ENV{'MYSQLTEST_VARDIR'} . '/log/mysqld.1.err';
|
$log_error= $ENV{'MYSQLTEST_VARDIR'} . '/log/mysqld.1.err';
|
||||||
open(LOG, '<', $log_error) or die "open(< $log_error): $!";
|
open(LOG, '<', $log_error) or die "open(< $log_error): $!";
|
||||||
|
|
||||||
# Get the first few rows (as there may be different number rows in the log)
|
%logg=();
|
||||||
$i= 0;
|
while ($_=<LOG>) {
|
||||||
while ($_=<LOG>)
|
$logg{$&}++ if /feedback plugin:.*/;
|
||||||
{
|
|
||||||
if (/feedback plugin:.*/)
|
|
||||||
{
|
|
||||||
print "$&\n";
|
|
||||||
break if ($i++ >= 3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
print "$logg{$_}: $_\n" for sort keys %logg;
|
||||||
close LOG;
|
close LOG;
|
||||||
EOF
|
EOF
|
||||||
|
@ -22,6 +22,10 @@ extern ST_SCHEMA_TABLE schema_tables[];
|
|||||||
|
|
||||||
namespace feedback {
|
namespace feedback {
|
||||||
|
|
||||||
|
#ifndef DBUG_OFF
|
||||||
|
ulong debug_startup_interval, debug_first_interval, debug_interval;
|
||||||
|
#endif
|
||||||
|
|
||||||
char server_uid_buf[SERVER_UID_SIZE+1]; ///< server uid will be written here
|
char server_uid_buf[SERVER_UID_SIZE+1]; ///< server uid will be written here
|
||||||
|
|
||||||
/* backing store for system variables */
|
/* backing store for system variables */
|
||||||
@ -249,6 +253,18 @@ static int init(void *p)
|
|||||||
|
|
||||||
prepare_linux_info();
|
prepare_linux_info();
|
||||||
|
|
||||||
|
#ifndef DBUG_OFF
|
||||||
|
if (startup_interval != debug_startup_interval ||
|
||||||
|
first_interval != debug_first_interval ||
|
||||||
|
interval != debug_interval)
|
||||||
|
{
|
||||||
|
startup_interval= debug_startup_interval;
|
||||||
|
first_interval= debug_first_interval;
|
||||||
|
interval= debug_interval;
|
||||||
|
user_info= "mysql-test";
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
url_count= 0;
|
url_count= 0;
|
||||||
if (*url)
|
if (*url)
|
||||||
{
|
{
|
||||||
@ -347,12 +363,29 @@ static MYSQL_SYSVAR_ULONG(send_retry_wait, send_retry_wait, PLUGIN_VAR_RQCMDARG,
|
|||||||
"Wait this many seconds before retrying a failed send.",
|
"Wait this many seconds before retrying a failed send.",
|
||||||
NULL, NULL, 60, 1, 60*60*24, 1);
|
NULL, NULL, 60, 1, 60*60*24, 1);
|
||||||
|
|
||||||
|
#ifndef DBUG_OFF
|
||||||
|
static MYSQL_SYSVAR_ULONG(debug_startup_interval, debug_startup_interval,
|
||||||
|
PLUGIN_VAR_RQCMDARG, "for debugging only",
|
||||||
|
NULL, NULL, startup_interval, 1, INT_MAX32, 1);
|
||||||
|
static MYSQL_SYSVAR_ULONG(debug_first_interval, debug_first_interval,
|
||||||
|
PLUGIN_VAR_RQCMDARG, "for debugging only",
|
||||||
|
NULL, NULL, first_interval, 1, INT_MAX32, 1);
|
||||||
|
static MYSQL_SYSVAR_ULONG(debug_interval, debug_interval,
|
||||||
|
PLUGIN_VAR_RQCMDARG, "for debugging only",
|
||||||
|
NULL, NULL, interval, 1, INT_MAX32, 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct st_mysql_sys_var* settings[] = {
|
static struct st_mysql_sys_var* settings[] = {
|
||||||
MYSQL_SYSVAR(server_uid),
|
MYSQL_SYSVAR(server_uid),
|
||||||
MYSQL_SYSVAR(user_info),
|
MYSQL_SYSVAR(user_info),
|
||||||
MYSQL_SYSVAR(url),
|
MYSQL_SYSVAR(url),
|
||||||
MYSQL_SYSVAR(send_timeout),
|
MYSQL_SYSVAR(send_timeout),
|
||||||
MYSQL_SYSVAR(send_retry_wait),
|
MYSQL_SYSVAR(send_retry_wait),
|
||||||
|
#ifndef DBUG_OFF
|
||||||
|
MYSQL_SYSVAR(debug_startup_interval),
|
||||||
|
MYSQL_SYSVAR(debug_first_interval),
|
||||||
|
MYSQL_SYSVAR(debug_interval),
|
||||||
|
#endif
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,6 +58,10 @@ class Url {
|
|||||||
extern Url **urls;
|
extern Url **urls;
|
||||||
extern uint url_count;
|
extern uint url_count;
|
||||||
|
|
||||||
|
extern time_t startup_interval;
|
||||||
|
extern time_t first_interval;
|
||||||
|
extern time_t interval;
|
||||||
|
|
||||||
/* these are used to communicate with the background thread */
|
/* these are used to communicate with the background thread */
|
||||||
extern mysql_mutex_t sleep_mutex;
|
extern mysql_mutex_t sleep_mutex;
|
||||||
extern mysql_cond_t sleep_condition;
|
extern mysql_cond_t sleep_condition;
|
||||||
|
@ -25,9 +25,9 @@ static my_thread_id thd_thread_id; ///< its thread_id
|
|||||||
|
|
||||||
static size_t needed_size= 20480;
|
static size_t needed_size= 20480;
|
||||||
|
|
||||||
static const time_t startup_interval= 60*5; ///< in seconds (5 minutes)
|
time_t startup_interval= 60*5; ///< in seconds (5 minutes)
|
||||||
static const time_t first_interval= 60*60*24; ///< in seconds (one day)
|
time_t first_interval= 60*60*24; ///< in seconds (one day)
|
||||||
static const time_t interval= 60*60*24*7; ///< in seconds (one week)
|
time_t interval= 60*60*24*7; ///< in seconds (one week)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
reads the rows from a table and puts them, concatenated, in a String
|
reads the rows from a table and puts them, concatenated, in a String
|
||||||
|
Reference in New Issue
Block a user