First big PITA in reallife D project

Stephan spam at extrawurst.org
Tue Oct 19 05:35:09 PDT 2010


On 19.10.2010 14:22, Steven Schveighoffer wrote:
> On Tue, 19 Oct 2010 07:33:29 -0400, Stephan <spam at extrawurst.org> wrote:
>
>> Hey guys I wanted to discuss my first major depressing experience with
>> D in a reallife project.
>>
>> First off here is the according bug report :
>> http://d.puremagic.com/issues/show_bug.cgi?id=4951
>>
>> I have to mention that it was by far not the first bug i encountered
>> in D but it has never been such a PITA. I spent hours and hours of
>> searching, rewriting and crawling my code for the cause of this issue.
>> Just to finally find out that it was not my code but some bug in
>> druntime.
>>
>> What i do:
>> I spawn multiple threads all periodically connecting to some
>> webservers waiting for the request to finish. Every request is totally
>> independent of the others. There is no data sharing in my code. Now i
>> have a protocol that makes my process send one last important request
>> when shutting down. For a clean shut down i wanted to make sure that
>> all the other threads are shut down first. That way the final request
>> of the process is the very last. So i wait for every thread to finish
>> their request and stop them.
>> BUT it wont work like that. AFTER i stopped all other threads some
>> strange behavior of druntime makes every creation of an
>> InternetAddress instance (internally trying to resolve host)
>> impossible (throws an exception). Additionally even if the Internet
>> Addresses were created upfront the TcpSockets wont connect but throw.
>> I have no idea what the heck is going on inside of the druntime that
>> could cause this but in my opinion it makes designing a big server
>> environment pretty much impossible because it would mean that i cannot
>> let any of my user generated threads exit unless i want to shutdown
>> completely anyway.
>>
>> Perhaps one side note: I am testing and having these issues under
>> Windows.
>>
>>
>> I have never been so tempted to use another language while coding in D
>> as i was this time and that makes me sad.
>
> That is unfortunate. These kinds of bugs need to be fixed ASAP, and they
> should be much easier than compiler bugs.
>
> The issue at the moment is that nobody owns or wants to own the network
> API portion of phobos (it's not druntime btw). So your pleas are falling
> on sympathetic ears, but not ones that will make changes. These growing
> pains will pass, I think some have mentioned wanting to rewrite the
> network API, but streams in general are up in the air at the moment...
>
> I'll try and spend a few minutes to see if I can spot the problem.
> Having a minimal test case as you have posted helps.
>
> -Steve

Thanks for the reply and that you gonna take a look. I added the 
relation of bug http://d.puremagic.com/issues/show_bug.cgi?id=4344 to 
the bug aswell because it reallys seems to have the same underlying root.

- Stephan


More information about the Digitalmars-d mailing list