On Thu, Mar 14, 2002 at 09:34:55AM -0600, Karl Fogel wrote:
> Luc Saillard <luc@fr.alcove.com> writes:
> > I use mpatrol to find some memory problem like memleak, or double free.
>
> Thanks. Do you have a reproduction recipe for this?
Yes i link th libmpatrol with subversion (only the client svn), and lauch a
svn pl on a local repository. I don't use the server with apache2. I can
send the entire log from mpatrol but it's pretty big.
> I'm not familiar with how `mpatrol' works, so I don't know if it's
> needed to detect this problem. But the best thing would be to verify
> the fix with some real-world scenario that stimulates the problem.
> Frankly I'm not familiar enough with the expat-lite code to tell
> whether the checks you added are consistent with the code's internal
> assumptions, or if they're run-time compensations to paper over deeper
> problems...
mpatrol (http://cbmamiga.demon.co.uk/mpatrol) is a library to detect all
memory operation dymamically. It's very fine, have a good documentation and
plenty options. And yes, it works everywhere not only Linux. But perhaps i
think it miss a QUICKSTART file ... I use this option to trace subversion:
MPATROL_OPTIONS="NOFREE=1024 PAGEALLOC=LOWER CHECK=- CHECKALL SHOWALL
USEDEBUG AUTOSAVE=1 LEAKTABLE LOGALL LOGFILE=mpatrol.log OFLOWSIZE=256
TRACE LEAKTABLE"
I use it sometimes to find some memory leak in my program or to check
illegal operation when gdb can not resolv me my problem. But when mpatrol
report the bug, i have the entire call backtrace, so it's very easy to find
a leak when you have a generic function to allocate memory.
I will try to check some other part of subversion to find (perhaps) some
other minor bugs.
> By the way, the two changes to xmlparse.c appear as separate diffs in
> your patch. That is, it looks like you're patching three files, when
OK, but i prefer 3 patches that can apply in all order, and that can
correct 3 bugs that 1 patch. But next i will use subversion to generate
diff.
> Finally, a log message helps -- here's an example one for the change
> below, see the HACKING file for more on log messages:
>
> Add checks for null pointers:
>
> * expat-lite/xmlparse.c
> (poolGrow): Check pool->start before using it.
> (XML_ParserFree): Check groupConnector, buffer, and
> unknownEncodingMem before freeing.
>
> * expat-lite/hashtable.c
> (hashTableDestroy): Check table->v before destroying it.
>
Thanks for the log ... :), i will try to do better next time when i found
another bug.
Luc
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Mar 14 18:40:20 2002