메모리 관련 질문

by 충이 posted May 30, 2017

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Linux 64bit
CUBRID Ver.
  CUBRID 9.3 (9.3.6.0002) (64bit release build for linux_gnu)
CUBRID TOOL Ver.
 9.3.6.007 (64bit)
응용 환경(API)
  c++

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

CCI 드라이버  사용 할 때

http://www.cubrid.org/manual/ko/9.2.0/api/cci.html?highlight=cci_prepare#c.cci_prepare


의  예제 1  의 실행파일이 있다면  Valgrind  로 실행 할 경우 메모리 누수 발생

cci_close_req_handle ( )   호출 시  net_buf_realloc (cci_net_buf.c:288) 소스 부분의  malloc 된 메모리 가 delete( )  되는지 체크 해 주시면 될 것 같습니다.

재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

Valgrind    로 메모리 누수 부분을 돌려보니   cci_prepare()    함수 호출 후  

cci_close_req_handle(  );  로 close 해주었는데도 net_buf_realloc (cci_net_buf.c:288) 소스 부분의  malloc 된  메모리가 해지 안되는 현상이 있는듯 합니다.

따로 해지할 수 있는 방법이 있을까요?


아래는 Valgrind    수행 결과입니다.

==13137==  Address 0xb7fda61 is 65 bytes inside a block of size 1,024 alloc'd
==13137==    at 0x4C29BE3: malloc (vg_replace_malloc.c:299)
==13137==    by 0x5072C0B: net_buf_realloc (cci_net_buf.c:288)
==13137==    by 0x5072C0B: cnet_buf_cp_str (cci_net_buf.c:117)
==13137==    by 0x5070E29: qe_prepare (cci_query_execute.c:448)
==13137==    by 0x5068508: cci_prepare (cas_cci.c:950)


답변 부탁 드리겠습니다. 감사합니다.