cubrid icon indicating copy to clipboard operation
cubrid copied to clipboard

[CBRD-25244] Bad size for some RVDK_NEWVOL and RVDK_FORMAT logs and also bad string ending in disk_vhdr_set_vol_remarks

Open H2SU opened this issue 1 year ago • 4 comments

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

Purpose

This issue covers two miscalculations in code.

  • First one is when calculating the RVDK_NEWVOL and RVDK_FORMAT log size using disk_vhdr_length_of_varfields.

  • Second one is is disk_vhdr_set_vol_remarks, when length of vol_remarks is greater than maxsize.

  • Third one is executing memmove without trimming when vhdr size exceeds PAGESIZE using 'addvoldb' and 'renamedb' utilities leads to invading other memory regions.

Implementation

  • Added a function to calculate the disk_volume_header size.

  • Corrected an issue where memmove was performed without trimming when vhdr was expanded by renamedb or addvoldb, causing it to affect other memory regions.

  • When adding remarks, fixed an issue where comparison of remarks length to usable_size did not account for the null character.

Remarks

  • Added variables for readability.

H2SU avatar Jun 17 '24 05:06 H2SU

아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()

답변 부탁드립니다.

joohok avatar Jun 24 '24 05:06 joohok

아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()

답변 부탁드립니다.

예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.

H2SU avatar Jun 24 '24 05:06 H2SU

아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()

답변 부탁드립니다.

예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.

어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.

joohok avatar Jun 25 '24 05:06 joohok

아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()

답변 부탁드립니다.

예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.

어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.

disk_set_creation() 함수는 DB_MAX_PATH_LENGTH로 에러처리를 하고 있는데 disk_set_link() 함수는 해당 함수를 호출하는 함수에서 에러처리를 하고 있는 부분도 있고 아닌 부분도 존재하고 있습니다.

disk_set_creation() 함수 내부에서 DB_MAX_PATH_LENGTH로 에러처리를 해주는 것이 좋아보여 에러처리 코드 추가하려합니다.

H2SU avatar Jun 26 '24 09:06 H2SU

아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()

답변 부탁드립니다.

예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.

어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.

undo recv, redo recv 계산식 수정하였습니다.

H2SU avatar Jul 05 '24 02:07 H2SU

아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()

답변 부탁드립니다.

예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.

어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.

undo recv, redo recv 계산식 수정하였습니다.

관련하여 테스트케이스도 추가하면 좋겠습니다.

joohok avatar Jul 05 '24 02:07 joohok

관련하여 테스트케이스도 추가하면 좋겠습니다.

log size의 차이가 생기는 부분은 gdb로 직접 size비교를 해보는 것 말곤 방법이 떠오르지 않습니다. 혹시 방법이 따로 있을까요..?

H2SU avatar Jul 05 '24 02:07 H2SU

관련하여 테스트케이스도 추가하면 좋겠습니다.

log size의 차이가 생기는 부분은 gdb로 직접 size비교를 해보는 것 말곤 방법이 떠오르지 않습니다. 혹시 방법이 따로 있을까요..?

흠, data volume 생성 도중 서버를 죽이고 다시 살리는 케이스가 적절할 것 같습니다. 해당 로그가 잘 남고, 로그를 이용해 복구가 가능하다는 것을 보면 좋겠네요. 이슈 TC 리뷰하는 자리가 있을 때 다시 논의해보면 좋겠네요!

joohok avatar Jul 05 '24 03:07 joohok

관련하여 테스트케이스도 추가하면 좋겠습니다.

log size의 차이가 생기는 부분은 gdb로 직접 size비교를 해보는 것 말곤 방법이 떠오르지 않습니다. 혹시 방법이 따로 있을까요..?

흠, data volume 생성 도중 서버를 죽이고 다시 살리는 케이스가 적절할 것 같습니다. 해당 로그가 잘 남고, 로그를 이용해 복구가 가능하다는 것을 보면 좋겠네요. 이슈 TC 리뷰하는 자리가 있을 때 다시 논의해보면 좋겠네요!

넵 알겠습니다!

H2SU avatar Jul 05 '24 06:07 H2SU

사소한 것만 남아서, 다시 리뷰요청 안해주셔도 됩니다! 고생하셨어요.

엇 ... 해당 코멘트 보기 전에 re-request를 눌러버렸네용..

H2SU avatar Jul 05 '24 07:07 H2SU

@hornetmj

이슈 포맷에 맞게 작성해 주세요. 등록된 이슈 처리 시 위 주석 역시 제거되어야 합니다. 이슈에 관련 내용 역시 같이 남겨주시길 바랍니다.

이슈 포맷에 맞게 수정하였습니다. 해당 이슈 처리되는대로 주석 삭제하겠습니다. http://jira.cubrid.org/browse/CBRD-25444 http://jira.cubrid.org/browse/CBRD-25445

H2SU avatar Jul 08 '24 09:07 H2SU