增加错误处理
* 加载foreig content 失败 * 空配置时注册ex_data * 非法格式的group rule
This commit is contained in:
@@ -1013,7 +1013,10 @@ int Maat_rule_get_ex_new_index(Maat_feather_t feather, const char* compile_table
|
|||||||
p_table->ex_desc[idx].dup_func=dup_func;
|
p_table->ex_desc[idx].dup_func=dup_func;
|
||||||
|
|
||||||
p_table->ex_data_num++;
|
p_table->ex_data_num++;
|
||||||
MESA_htable_iterate(_feather->scanner->compile_hash, rule_ex_data_new_cb, p_table->ex_desc+idx);
|
if(_feather->scanner!=NULL)
|
||||||
|
{
|
||||||
|
MESA_htable_iterate(_feather->scanner->compile_hash, rule_ex_data_new_cb, p_table->ex_desc+idx);
|
||||||
|
}
|
||||||
failed:
|
failed:
|
||||||
pthread_mutex_unlock(&(_feather->backgroud_update_mutex));
|
pthread_mutex_unlock(&(_feather->backgroud_update_mutex));
|
||||||
return idx;
|
return idx;
|
||||||
|
|||||||
@@ -1532,14 +1532,14 @@ void _get_foregin_keys(struct serial_rule_t* p_rule, int* foreign_columns, int n
|
|||||||
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_redis_monitor
|
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_redis_monitor
|
||||||
, "Get %s,%d foreign keys failed: No %dth column."
|
, "Get %s,%d foreign keys failed: No %dth column."
|
||||||
, p_rule->table_name, p_rule->rule_id, foreign_columns[i]);
|
, p_rule->table_name, p_rule->rule_id, foreign_columns[i]);
|
||||||
continue;
|
break;
|
||||||
}
|
}
|
||||||
if(0!=strncmp(p_foreign, foreign_source_prefix, strlen(foreign_source_prefix)))
|
if(0!=strncmp(p_foreign, foreign_source_prefix, strlen(foreign_source_prefix)))
|
||||||
{
|
{
|
||||||
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_redis_monitor
|
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_redis_monitor
|
||||||
,"Get %s,%d foreign key failed: Invalid source prefix %s."
|
,"Get %s,%d foreign key failed: Invalid source prefix %s."
|
||||||
, p_rule->table_name, p_rule->rule_id, p_foreign);
|
, p_rule->table_name, p_rule->rule_id, p_foreign);
|
||||||
continue;
|
break;
|
||||||
}
|
}
|
||||||
p_rule->f_keys[i].column=foreign_columns[i];
|
p_rule->f_keys[i].column=foreign_columns[i];
|
||||||
foreign_key_size=foreign_key_size-strlen(foreign_source_prefix);
|
foreign_key_size=foreign_key_size-strlen(foreign_source_prefix);
|
||||||
@@ -1560,7 +1560,13 @@ void _get_foregin_keys(struct serial_rule_t* p_rule, int* foreign_columns, int n
|
|||||||
p_rule->f_keys[i].is_existed=1;
|
p_rule->f_keys[i].is_existed=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
if(i!=n_foreign)
|
||||||
|
{
|
||||||
|
p_rule->n_foreign=0;
|
||||||
|
free(p_rule->f_keys);
|
||||||
|
p_rule->f_keys=NULL;
|
||||||
|
p_rule->with_error=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
int get_foreign_keys_define(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, _Maat_feather_t* feather, const char* dir,void *logger)
|
int get_foreign_keys_define(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, _Maat_feather_t* feather, const char* dir,void *logger)
|
||||||
{
|
{
|
||||||
@@ -1784,7 +1790,7 @@ void redis_monitor_traverse(long long version,redisContext *c,
|
|||||||
MESA_handle_runtime_log(logger,RLOG_LV_INFO,maat_redis_monitor,"Start %s update: %lld->%lld (%d entries).",
|
MESA_handle_runtime_log(logger,RLOG_LV_INFO,maat_redis_monitor,"Start %s update: %lld->%lld (%d entries).",
|
||||||
update_type==CM_UPDATE_TYPE_INC?"INC":"FULL",version,new_version,rule_num);
|
update_type==CM_UPDATE_TYPE_INC?"INC":"FULL",version,new_version,rule_num);
|
||||||
for(i=0;i<rule_num;i++)
|
for(i=0;i<rule_num;i++)
|
||||||
{
|
{
|
||||||
if(rule_list[i].table_line==NULL||rule_list[i].with_error==1)
|
if(rule_list[i].table_line==NULL||rule_list[i].with_error==1)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -2346,7 +2346,14 @@ void update_group_rule(struct _Maat_table_info_t* table,const char* table_line,s
|
|||||||
ret=sscanf(table_line,"%d\t%d\t%d",&(db_group_rule.group_id)
|
ret=sscanf(table_line,"%d\t%d\t%d",&(db_group_rule.group_id)
|
||||||
,&(db_group_rule.compile_id)
|
,&(db_group_rule.compile_id)
|
||||||
,&(db_group_rule.is_valid));
|
,&(db_group_rule.is_valid));
|
||||||
assert(ret==3);
|
if(ret!=3)
|
||||||
|
{
|
||||||
|
MESA_handle_runtime_log(logger,RLOG_LV_INFO,maat_module ,
|
||||||
|
"update error,invalid format of group table %s:%s"
|
||||||
|
,table->table_name[table->updating_name], table_line);
|
||||||
|
table->udpate_err_cnt++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(db_group_rule.is_valid==FALSE)
|
if(db_group_rule.is_valid==FALSE)
|
||||||
{
|
{
|
||||||
del_group_rule(table, &db_group_rule,scanner,logger);
|
del_group_rule(table, &db_group_rule,scanner,logger);
|
||||||
|
|||||||
@@ -492,6 +492,7 @@ struct serial_rule_t //rm= Redis Maat
|
|||||||
enum MAAT_OPERATION op;//0: delete, 1: add.
|
enum MAAT_OPERATION op;//0: delete, 1: add.
|
||||||
long rule_id;
|
long rule_id;
|
||||||
int label_id;
|
int label_id;
|
||||||
|
char with_error;
|
||||||
long long timeout; // absolute unix time.
|
long long timeout; // absolute unix time.
|
||||||
char table_name[256];
|
char table_name[256];
|
||||||
char* table_line;
|
char* table_line;
|
||||||
|
|||||||
Reference in New Issue
Block a user