2011.11.09 00:33
     

아아... 점점 프로젝트 마감은 다가오고... 책임의 압박은 슬슬 강해지는 이 시점에서... 어쩌다보니 버그 하나를 발견하게 되었습니다. ㅠㅠ 그것도 다들 보는 앞에서 "제대로" 말이지요. ㅠㅠ 그래서 빼도 박도 못하고 제가 디버깅을 맡아서 하게 되었는데... 얼래? 생각보다 이게 간단한 문제가 아닌겁니다. ㅠㅠ

재현성은 확실한데 시간이 1시간쯤 걸려서 아무리 바쁘게 움직여도 하루에 10번 재현하기가 쉽지 않더군요. 디버깅에 쏟은 시간을 따지면... 지난주 금요일부터해서 꼬박 3일간(야근까지 포함)을 투자했는데요, 실제로 버그의 원인은 아주 단순한데 있었습니다. ㅠㅠ 전형적인 커뮤니케이션 오류로 인한 버그라고 할까요? ㅠㅠ

잠시 설명을 하자면... 블럭들을 관리하는 블럭 풀이 있는데 이 블럭 풀은 4바이트짜리 구조체로 이루어져 있습니다. 그리고 그 안에는 A라는 필드가 있는데요, 이 필드 값은 무조건 0이라고 합의 된 상태였습니다. 아니, 합이 된듯한 상태라고 하는게 맞을 것 같습니다. 실제로 안그런 코드가 있었으니... ㅠㅠ

블럭 풀에서 파라미터로 넘어온 블럭과 같은 블럭을 삭제하는 코드는 위의 합의된 내용을 바탕으로 모든 필드가 일치하는 블럭을 찾도록 되어 있었는데요, 블럭 구조체에서 A는 블럭의 속성을 나타내지만, ID로는 사용되지 않는 필드였기 때문에 호출하는 쪽에서 A 필드의 값을 dummy로 넘겨버린거죠. ㅠㅠ

이 Dummy Data 때문에 블럭 풀에서 제거되었어야 할 블럭이 제거되지 않아서 여러 곳에 같은 블럭이 할당되어 사용되었고, 이로 인해 문제가 발생했던 겁니다. ㅠㅠ 아아... 그런데 이런게 왜 내가 테스트할 때 나올까요? ㅠㅠ

문제를 해결하는 코드를 넣고 테스트를 돌린 뒤 새벽 바람을 맞으며 퇴근하는데... 어찌나 씁쓸하던지... 눈물이 앞을 가리더군요. ㅠㅠ 이 문제가 빙산의 일각이 아니길 바라면서 한자 끄적여 봅니다.

다들 좋은 밤 되세요 ㅠㅠ 
Mittm

Android App

Posted by kkamagui

댓글을 달아 주세요

  1. sleep2 2011.11.15 12:55  댓글주소  수정/삭제  댓글쓰기

    새벽녘까지 버그때문에 고생이 많으시군요. 잘해결되신듯 해서 다행이네요. 항상 열심히 하시는거같아서 까마귀님 아지트에 오면 항상 뭔가 열심히 해야겠다는 마음이 생긴다는 ㅋㅋ 수고하세여~

    • Favicon of http://www.mint64os.pe.kr BlogIcon kkamagui 2011.11.16 00:10  댓글주소  수정/삭제

      앗~ Sleep2님 오래간만에 들르셨군요 ^^

      요즘하시는 일은 잘 되시는지요?

      항상 건승하시기 바랍니다. ^^

  2. sleep2 2011.11.24 22:54  댓글주소  수정/삭제  댓글쓰기

    ㅋㅋ 언제 시간나시면 드라이버 좀 업데이트 해주세여.

    요새는 다 막혀서리 힘들답니다. ㅠㅠ

    수고하시고 즐거운 하루 하루 보내세여~
    ^____________^

    • Favicon of https://kkamagui.tistory.com BlogIcon kkamagui 2011.11.29 01:11 신고  댓글주소  수정/삭제

      앗, Sleep2님 ^^
      오래간만에 뵙는군요. ;) 잘 지내고 계시죠? ㅎㅎ

      Sleep2님도 아시겠지만...
      제가 책 준비한다고 드라이버쪽은 손을 놓은지 오래되서... 할 수 있을지 모르겠네요. ㅠㅠ