The haunting 0.402 connection bug

When a version of DC++ is in development state, there’s a handfull of people who run and try the version. It’s a handfull since you need to compile it yourself, requiring some knowledge…

Unfortunately, we have no test-suit that automatically perform the tests for us, so we have to do tests rather random and arbitrarily. If I’ve sent in a patch, I usually test the functionality of the patch (first of course before sending, but always after it’s merged) I’ve previously submitted.

Another functionality that I always test, almost mechanically, regardless if I’ve sent a patch or if that particular feature/code has specifically been touched, is the ability to connect to the same version of DC++. (That is, I use two instances of DC++.)

As you might know by now, current DC++ doesn’t support some older versions of DC++. This is of course intentional, and isn’t considered a bug. Sometimes, the development version drops support for versions it should support, such as the latest released version.

And sometimes, just sometimes, the development version drops support for itself.

Let me take you back to version 0.402… New code base and ADC’s first day light. It was quite a stable version, as you might have noticed with 0.403. Though, 0.403 was a little better than 0.402, and I’ll tell you why…

It was during my initial experience as a DC developer; I found DCDev Public. Though, much of a “developer” I wasn’t. Anyway, one of the little restrictions was the (lack of) ability to connect to other people in the hub. (Which is still true, in its current incarnation.) However, there were some that could connect to others, and that were the operators. One of the little nice touches with DCH++. :) (I have no idea if other hubs have this functionality, but I’m sure they do.)

Well, as I wasn’t an operator back then, and I didn’t to much “testing” myself (I don’t think I had even managed to compile DC++ at that point), I couldn’t try out the development version until it was released.

When it did, I recieved a notification from SourceForge, which you can still sign up to today, and downloaded and fired up DC++. And of course connected to the dev hub.

And minutes after I had started DC++, I started crashing. Firing up and *bam*, a crash. However, I tracked the problem to the dev hub. “Huh? How could I crash for just being in the hub?” Well, as the operators could download and I could share (well, duh!), one of them decided to check out my share. It was TheParanoidOne, and he was running the same version as myself; 0.402…Well, after some more investigation (and of course more crashing), I was able to conclude with TPO that it was infact him that crashed me. Weirdly enough, one could connect to older versions just fine. DC++ just was able to remotely crash other users running the same version.

Any way, 0.403 was quickly released later that day, with a “100% CPU fix”… I didn’t really see 100% CPU, but whatever stops me crashing, right?

And that is the story of the connectivity bug that has haunted me for years.

Do you perform any weird tests?

Don’t forget that you can make topic suggestions for blog posts in our “Blog Topic Suggestion Box!”

6 Responses to The haunting 0.402 connection bug

  1. ereader says:

    Sry 2 post here, but I’m not into open source enough to post a request on the normal way. I just figured that this piece of text will be read.

    Why can’t I make 2 favorite hub items with the same address? When I’m at home I have a crappy dsl connection, but when I’m at school I have a 10Mbit sdsl connection. The hubs’ administrators want me to have a [XXXX.XXX] prefix in my nickname so I want to have multiple items with different nicknames in my favorites list. But some clevar restriction won’t let me because ‘Hub already exist as a favorite’. What is the use of this little piece of functionality? And can’t it be turned off/deleted?

    Sry for the bad English



  2. Todd Pederzani says:

    Henk, you cannot turn this functionality off. DC++ looks up the *first* favorite hub with the current hub name when connecting, so it will only ever find your first prefix. If you can find a different DNS name for the hub or use its IP, you can set up a second favorite with a second prefix. If you do it by IP and the IP changes, you’ll have to figure that out and manually correct it.
    The functionality of the feature you speak of is to always use the nickname and description for favorite hubs. (Which obviously doesn’t work with multiple identical entries for the same hub.)
    We don’t have a support forum right now, so communicating by comments on the blog is as good as anything…

  3. Fredrik Ullner says:

    Well, at least writing in a blog entry that talks about the problem; Instead of posting in a completely irrelevant post…

  4. dcuser says:

    I like DC++ endeed, but i am a little disapointed, about the apresentation on the website, like, its to simple.. and… means the DC++ is in a bad way

  5. Fredrik Ullner says:

    Yeah, Google’s front page lack stuff, too. That must mean that Google’s services are bad, as well!

    Now that I got the sarcasm out of the way, I doubt people spend much time on the website. All the necessary information is there, in a plain and simple format. I’d hate to have a massive flash plugin or the page crawling with Javascript.

    However, a make over of the site is in progress. When it will be finished? Well, when it’s ready, of course. And no, you can’t get a preview.

  6. ereader says:

    Thnx for the reply,

    your reply made me think. I couln’t find another domainname or ip. But if i add dchub:// there are two different strings so it’s not a problem.

    LOVE your program!



Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: