Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CBRD-25751] Fix core dump at logging error message from ER_HB_PROCESS_EVENT #5727

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

YeunjunLee
Copy link
Contributor

http://jira.cubrid.org/browse/CBRD-25751

  • Purpose

    • ER_HB_PROCESS_EVENT는 parameter를 두 개 받는 error message이지만, argument를 하나만 받는 상황이 존재하여 er_estimate_size에서 error 발생
  • Implementation

    • Node event에 해당 하는 메시지는 ER_HB_NODE_EVENT로 error message 변경
    • Process event에 해당 하는 메시지는 ER_HB_PROCESS_EVENT로 유지하되, 포맷에 맞도록 변경

@YeunjunLee YeunjunLee self-assigned this Dec 18, 2024
@YeunjunLee YeunjunLee marked this pull request as ready for review December 19, 2024 09:31
@hornetmj
Copy link
Contributor

@YeunjunLee 두 event의 분류 기준을 어떻게 잡으신 건가요?

@YeunjunLee
Copy link
Contributor Author

@YeunjunLee 두 event의 분류 기준을 어떻게 잡으신 건가요?

다른 message의 경우에는 모두 주어가 (master/slave) node에 대한 것인데, "Server process failure repeated within a short period of time. The current node will be demoted" 는 주어가 process이기 때문에 ER_HB_PROCESS_EVENT라고 판단하였습니다.

하지만, failover/failback message들이 서로 다른 error code로 남는 것이 일관성이 없어 보이기도 합니다. ER_HB_PROCESS_EVENT로 통일 하는 것이 좋을 수도 있을 것 같습니다.

@H2SU @InChiJun 의견 있으시면 주시면 감사하겠습니다.

@InChiJun
Copy link

InChiJun commented Dec 23, 2024

@H2SU @InChiJun 의견 있으시면 주시면 감사하겠습니다.

"Server process failure repeated within a short period of time. The current node will be demoted" 문구는 주어가 process이기 때문에 ER_HB_PROCESS_EVENT를 사용하는 것이 적절해보입니다.
하지만, failover/failback message들은 노드에 대한 에러를 나타내기 때문에 'ER_HB_NODE_EVENT'로 하는 것이 적절해보입니다.

@H2SU
Copy link
Contributor

H2SU commented Dec 23, 2024

  else if (hb_Master_host_name[0] != '\0')
{
  snprintf (hb_info_str, HB_INFO_STR_MAX,
	    "%s The master node (%s) has lost its role due to server process problem, such as disk failure",
	    HA_FAILOVER_DIAG_STRING, hb_Master_host_name);
  MASTER_ER_SET (ER_ERROR_SEVERITY, ARG_FILE_LINE, ER_HB_NODE_EVENT, 1, hb_info_str);
}

실제로 위와 같은 에러메세지에서 ER_HB_NODE_EVENT로 분류하여 처리하고 있는 부분이 있는데
연준님이 ER_HB_NODE_EVENT로 분류하신 코드랑 동일한 메세지로 보입니다.

failback/failover messege의 일관성을 위해 ER_HB_PROCESS_EVENT로 변경하여야한다면
동일한 메세지의 에러코드가 출력되고 있는데 하나는 NODE_EVENT이고 다른 하나는 PROCESS_EVENT인 것도
살짝 일관성이 부족해보입니다.

@YeunjunLee
Copy link
Contributor Author

의미 전달이 잘 안된 것 같습니다. "Server process failure repeated within a short period of time. The current node will be demoted " 또한 failover/failback message의 일부입니다.
위 메시지를 ER_HB_PROCESS_EVENT로 남기고 있는 근거는 message의 내용이 process에 대한 것이기 때문이고,
위 메시지를 ER_HB_NODE_EVENT로 변경하고자 하는 근거는 이 외의 다른 failover/failback message들이 ER_HB_NODE_EVENT로 남겨지고 있기 때문에 일관성을 만들기 위함입니다.

위 message를 살짝 수정하여 node event의 message로 바꾸는 것을 고려중입니다. 아럐는 예시입니다. 피드백 주시면 감사하곘습니다.
The master node failed to restart the server process due to repeated failures within a short period of time. The current node will be demoted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants