[CBRD-25244] Bad size for some RVDK_NEWVOL and RVDK_FORMAT logs and also bad string ending in disk_vhdr_set_vol_remarks
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.
아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()
답변 부탁드립니다.
아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()
답변 부탁드립니다.
예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.
아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()
답변 부탁드립니다.
예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.
어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.
아래 두 함수는 수정이 필요없을까요? 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로 에러처리를 해주는 것이 좋아보여 에러처리 코드 추가하려합니다.
아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()
답변 부탁드립니다.
예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.
어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.
undo recv, redo recv 계산식 수정하였습니다.
아래 두 함수는 수정이 필요없을까요? RVDK_FORMAT에 관한 로그를 남길 때도 수정을 하셨길래 질문드립니다. disk_set_creation () disk_set_link ()
답변 부탁드립니다.
예외처리는 함수 내부에서 진행하기 때문에 따로 수정은 필요 없을 것 같습니다.
어떤 예외처리가 되어있는걸까요? 위 함수들에서 volume name 길이를 다룹니다. 이 이슈에서 volume name에 대해 logging 하는 부분들도 처리하길래 질문드렸습니다.
undo recv, redo recv 계산식 수정하였습니다.
관련하여 테스트케이스도 추가하면 좋겠습니다.
관련하여 테스트케이스도 추가하면 좋겠습니다.
log size의 차이가 생기는 부분은 gdb로 직접 size비교를 해보는 것 말곤 방법이 떠오르지 않습니다. 혹시 방법이 따로 있을까요..?
관련하여 테스트케이스도 추가하면 좋겠습니다.
log size의 차이가 생기는 부분은 gdb로 직접 size비교를 해보는 것 말곤 방법이 떠오르지 않습니다. 혹시 방법이 따로 있을까요..?
흠, data volume 생성 도중 서버를 죽이고 다시 살리는 케이스가 적절할 것 같습니다. 해당 로그가 잘 남고, 로그를 이용해 복구가 가능하다는 것을 보면 좋겠네요. 이슈 TC 리뷰하는 자리가 있을 때 다시 논의해보면 좋겠네요!
관련하여 테스트케이스도 추가하면 좋겠습니다.
log size의 차이가 생기는 부분은 gdb로 직접 size비교를 해보는 것 말곤 방법이 떠오르지 않습니다. 혹시 방법이 따로 있을까요..?
흠, data volume 생성 도중 서버를 죽이고 다시 살리는 케이스가 적절할 것 같습니다. 해당 로그가 잘 남고, 로그를 이용해 복구가 가능하다는 것을 보면 좋겠네요. 이슈 TC 리뷰하는 자리가 있을 때 다시 논의해보면 좋겠네요!
넵 알겠습니다!
사소한 것만 남아서, 다시 리뷰요청 안해주셔도 됩니다! 고생하셨어요.
엇 ... 해당 코멘트 보기 전에 re-request를 눌러버렸네용..
@hornetmj
이슈 포맷에 맞게 작성해 주세요. 등록된 이슈 처리 시 위 주석 역시 제거되어야 합니다. 이슈에 관련 내용 역시 같이 남겨주시길 바랍니다.
이슈 포맷에 맞게 수정하였습니다. 해당 이슈 처리되는대로 주석 삭제하겠습니다. http://jira.cubrid.org/browse/CBRD-25444 http://jira.cubrid.org/browse/CBRD-25445