增加错误处理
* 加载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_data_num++;
|
||||
if(_feather->scanner!=NULL)
|
||||
{
|
||||
MESA_htable_iterate(_feather->scanner->compile_hash, rule_ex_data_new_cb, p_table->ex_desc+idx);
|
||||
}
|
||||
failed:
|
||||
pthread_mutex_unlock(&(_feather->backgroud_update_mutex));
|
||||
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
|
||||
, "Get %s,%d foreign keys failed: No %dth column."
|
||||
, 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)))
|
||||
{
|
||||
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_redis_monitor
|
||||
,"Get %s,%d foreign key failed: Invalid source prefix %s."
|
||||
, p_rule->table_name, p_rule->rule_id, p_foreign);
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
p_rule->f_keys[i].column=foreign_columns[i];
|
||||
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;
|
||||
}
|
||||
}
|
||||
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)
|
||||
{
|
||||
@@ -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).",
|
||||
update_type==CM_UPDATE_TYPE_INC?"INC":"FULL",version,new_version,rule_num);
|
||||
for(i=0;i<rule_num;i++)
|
||||
{
|
||||
{
|
||||
if(rule_list[i].table_line==NULL||rule_list[i].with_error==1)
|
||||
{
|
||||
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)
|
||||
,&(db_group_rule.compile_id)
|
||||
,&(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)
|
||||
{
|
||||
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.
|
||||
long rule_id;
|
||||
int label_id;
|
||||
char with_error;
|
||||
long long timeout; // absolute unix time.
|
||||
char table_name[256];
|
||||
char* table_line;
|
||||
|
||||
Reference in New Issue
Block a user