namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
memory leak on libnmz
- From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
- Date: Tue, 16 Nov 99 18:07:09 JST
Search-Namazu の方が一段落したので、memory leak の方をチェックするこ
とにしました。
1. word search に関して
word 数が 3 以上になると、memory leak を起こすようです。malloc_hlist
で確保した領域が一部開放されなくなります。word 数が増加すると、memory
leak もそれに比例して増加するようです。
これから code を追っかけてみます。
2. regex search に関して
ccmalloc は、free(NULL)があるとそこで止まってしまうようです。regex
search を行うとこの状況に陥ってしまい、core dump してしまいます。
# 少なくとも、Linux の free(NULL) はなにもしないで通すようになっている
# のですが... ANSI 的にはどうでしたっけ?
gdb にかけるとこんな感じです。
#0 0x4003b461 in kill () from /lib/libc.so.6
#1 0x8059c23 in die ()
#2 0x805e1da in _ccmalloc_free ()
#3 0x805e68f in ccmalloc_free ()
#4 0x8059a06 in free ()
#5 0x8054908 in re_free_pattern (bufp=0x807be64) at regex.c:2315
#6 0x80596dc in regex_grep (orig_expr=0xbfffd774 "mail", fp=0x807bc1c,
field=0x805f15d "", field_mode=0) at re.c:252
#7 0x804c193 in do_regex_search (orig_expr=0xbfffdfc8 "/mail/", val={n = 0,
d = 0x4003b388}) at search.c:515
#8 0x804ce8b in do_search (orig_key=0x8071de0 "/mail/", val={n = 0,
d = 0x4003b388}) at search.c:901
#9 0x8058b2c in factor (ignore=0xbfffe444) at parser.c:93
#10 0x8058c80 in term () at parser.c:140
#11 0x8058db5 in expr () at parser.c:182
#12 0x804c924 in search_sub (hlist={n = 335544320, d = 0x4003b388},
query=0xbffff314 "/mail/", query_orig=0xbfffe504 "/mail/", n=0)
at search.c:725
#13 0x804cc72 in search_main (query=0xbffff314 "/mail/") at search.c:837
#14 0x8049468 in main (argc=3, argv=0xbffff794) at libnmztest.c:45
参考: ccmalloc の出力
* 95.7% = 1.2 MB of garbage allocated in 200 allocations
| |
| | 0x4003578a in <???>
| |
| | 0x08049468 in <main>
| | at libnmztest.c:45
| |
| | 0x0804cc72 in <search_main>
| | at search.c:837
| |
| | 0x0804c924 in <search_sub>
| | at search.c:725
| |
| | 0x08058db5 in <expr>
| | at parser.c:182
| |
| | 0x08058c80 in <term>
| | at parser.c:140
| |
| | 0x08058b2c in <factor>
| | at parser.c:93
| |
| | 0x0804cf05 in <do_search>
| | at search.c:907
| |
| | 0x0804b9a1 in <do_word_search>
| | at search.c:274
| |
| | 0x0804af54 in <get_hlist>
| | at hlist.c:475
| |
| | 0x0804ab2b in <malloc_hlist>
| | at hlist.c:343
| |
| `-----> 0x08059983 in <malloc>
--
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
nokubi@xxxxxxxxx (official)