On 19.10.2010 14:22, Steven Schveighoffer wrote:
On Tue, 19 Oct 2010 07:33:29 -0400, Stephan <[email protected]> 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

Reply via email to