Alo Sarv
lead developer

Donate via
MoneyBookers

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary
irc.hydranode.com/#hydranode

Sunday, February 19, 2006

Regression testing [zombie clients]

I'v been doing standard regression-testing on ed2k module, which involves analyzing 200-300mb logfiles every few hours. The main thing I was focusing was 'zombie' sources - clients that we asked for download, but then for some reason stopped reasking, thus the client is 'zombie' - never asked again. To aid in that matter, I added 'ed2k deadsource' command to hnsh (only in debug builds) that counts them. So far I'v managed to reduce the number by around 50% with few fixes, but there's still work to be done to catch them all. Seems the ones left currently are disconnections during some part of handshaking.

I also found out more about the memory leak reported earlier. As suspected, this wasn't a Boost library bug, but MSVC C++ runtime library bug; namely, a bug in std::iostream constructor that causes all classes derived from it (basic_stringstream et al) to leak 4 bytes per construction. Boost.DateTime library was patched today (in Boost CVS) to work around this issue; a description about the issue is at MSDN; Microsoft has fixed the bug, but it won't be available until next release of Visual Studio; until then, there is a workaround available, but it requires recompiling CRT... It should be noted though that std::ostringstream and std::istringstream (which are heavily used in Hydranode) are apparently not affected by this bug, so it's unclear how large the effect of this bug is on Hydranode engine.

SVN server has been mostly down recently; it seems to crash about once per hour recently, I'v restarted/recovered it at least 10 times today. The bad thing about recovering SVN is that I have to shut down webserver during the recovery as well (since no process may access the SVN DB during recovery). Anyway, since the SVN can't be counted upon to be up, here are source tarballs of current SVN (sorry, no binaries for now).

hydranode-r2679-src.tar.gz (1.0 MB)
hydranode-r2679-src.tar.bz2 (874 kB)
hydranode-r2679-src.zip (1.4 MB)

Madcat, ZzZz



Comments:
What about Valgrind?


Valgrind is a free programming tool for memory debugging, memory leak detection, and profiling.

Valgrind was originally designed to be a free version of Purify for Linux on x86, but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers. It has an excellent reputation and is widely used by Linux programmers.

The original author was Julian Seward. Several others have also made significant contributions; they include Cerion Armour-Brown, Jeremy Fitzhardinge, Tom Hughes, Nicholas Nethercote, Paul Mackerras, Dirk Mueller and Robert Walsh.



Official site

official suggestions about how to debugging Enlightenment

Interview with Valgrind Author Julian Seward
 
He already uses it: http://dev.hydranode.com/wiki/Debugging
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?