Alo Sarv
lead developer

Donate via

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

Saturday, February 19, 2005

Testing and tracking and then all goes blurry...

Thanks to chemical, the partdata was fixed for real this time. As noted earlier, there were problems in flushing method, where we were unable to seek to right positions, properly overwrite data etc w/o destroying existing contents. The trick was to open the file in "rw+b" mode (std::fstream myfile(loc, std::ios::in|std::ios::out|std::ios::binary) in C++ terms) - only then we could do what we needed to do with it.

I also discovered we were losing a lot of data to curruption. Investigation turned out that while we did save temp files on shutdown, we didn't flush them on shutdown, thus all data in buffers was lost on restart, while partdata thought it was there. This shouldn't happen anymore.

The more serious problems however, seem to be somewhere around scheduler. As we already know, the speed limiter isn't working. I know the source and symtom of the bug, but I haven't gotten to fix it yet though. I'v been running long tests, and discovered that after roughly an hour or so uptime, something goes wrong and all network activity stops - even hnshell becomes un-available. Traces lead to - again, the scheduler, somewhere deep inside the events/buffers handling code, but there it gets all fuzzy and blurry. Whatever the reason, SOCK_READ events are emitted from Networking Subsystem, but never reach client code - and only explanation is they somehow get lost in scheduler (which sits between the networking subsystem and client code).

Other interesting stuff - the long-running test involves downloading two large files (777mb and 744mb). After roughly 8 hours (and numerous restarts and restarts and so on, due to various bugs), I'm already at 24.41% and 3.99%, respectivly. For the record - the files have total of ~150 sources available to me (emule finds 1400 sources globally, but hydranode is limited to current server only). We'll see how this first large-file download progresses over the next days.

Also wrote a little app to parse hydranode.log, output .csv file from it, imported to excel and generated this statistics graph of one of my sessions. Nothing fancy, just (hopefully) interesting to see.

Madcat, ZzZz

Comments: Post a Comment

<< Home

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