現象
MLでも回答したのですが、corsoync2.3.4でクラスタを構成(rrp_mode:active)している場合に、たまに、以下のようなログが出る(頻繁に出る)場合があります。
Incrementing problem counter for seqid 9999 iface xxx.xxx.xxx.xxx to [1 of 10]
(snip)
Incrementing problem counter for seqid 9999 iface xxx.xxx.xxx.xxx to [1 of 10]
原因
corosyncのrrp_mode:activeでは、corosyncの通信インターフェースに対して、両方に同じデータを送信する方法を取ります。
このデータはノード間を巡回するのですが、rrp_mode:activeの場合、受信ノード側が両方のデータの到着を監視しています。
片方のデータの受信後、一定時間(デフォルトでは、corosync.confのtoken値/4.2)、もう片方のインターフェースから受信が無い場合に、このログが出力されます。
(この一定時間内に両方のインターフェースで受信している間は、ログは出ない)
(snip)
static void timer_function_active_token_expired (void *context)
{
struct active_instance *active_instance = (struct active_instance *)context;
struct totemrrp_instance *rrp_instance = active_instance->rrp_instance;
unsigned int i;
for (i = 0; i < rrp_instance->interface_count; i++) {
if (active_instance->last_token_recv[i] == 0) {
active_instance->counter_problems[i] += 1;
if (active_instance->timer_problem_decrementer == 0) {
active_timer_problem_decrementer_start (active_instance);
}
snprintf (rrp_instance->status[i], STATUS_STR_LEN,
"Incrementing problem counter for seqid %d iface %s to [%d of %d]",
active_instance->last_token_seq,
totemnet_iface_print (rrp_instance->net_handles[i]),
active_instance->counter_problems[i],
rrp_instance->totem_config->rrp_problem_count_threshold);
log_printf (
rrp_instance->totemrrp_log_level_warning,
"%s",
rrp_instance->status[i]);
}
}
(snip)
上記の場合、[10 of 10]まで達すると、そのインターフェースは故障と判断されますが、それまでは、自動的にこのカウンタをデクリメントしてくれる為、このログは通常は無視しても良いログです。
(環境のよっては、かなり頻繁に出てしまうので、うざい感じもありますが・・・)
余談
rrp_mode:passiveの場合は交互にインターフェースを利用してデータをノード間で送受信する為、前述のログは出ません。
rrp_mode:noneの場合は、1つのインターフェース(ボンディングしていても)のみなので、前述のログは出ません。