Known reasons why D crashes without any message?
Thorsten Sommer via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 13 03:20:48 PDT 2017
Dear Community,
My student assistant and I working on an artificial intelligence
library in D for a while. This library is part of my PhD thesis
in order to perform several experiments to push the state of the
art.
(Yes, after the thesis is published, the entire library gets open
source on GitHub including novel algorithms)
Right now, we are done with the development and ready to start
experiments. Until now, almost anything runs fine with our unit
tests.
Besides the unit tests, the main program is now able to startup
but crashes after a while without any message at all. No stack
trace, no exception, nothing. Obviously, this makes it hard to
debug anything...
To get a roughly impression, what the code uses (maybe this
information will help to limit the possibilities):
- External dependencies: fluent-asserts, requests and our own
library quantum-random for physical randomness
- Many meta-programming e.g. with templates across 9,000 lines of
code
- The code was designed to be OOP... composition, inheritance,
delegation, polymorphism...
- We call many instances of an external Go program with a Maze
simulation (the task for the AI) by using pipeProcess()
- We use parallel foreach loops for scaling (we have issues with
that also -- may I open another thread for it)
- We send thousands of HTTP requests using the requests library
- The entire simulation runs in Docker containers on huge servers
(144 CPU Cores, ~470 GB RAM). Base image uses DMD 2.076.0 +
Ubuntu Server 16.04
Are there any well-known circumstances, bugs, etc. where an
abrupt interruption of a D program without any message is
possible? My expectation was, that I would receive at least a
stack trace. For debugging, I disabled parallelism at all in
order to eliminate effects like exceptions are hidden in threads,
missing/wrong variable sharing, etc.
I would be pleased about any idea, as I am currently stuck and no
longer know how and where to continue debugging.
Best regards
Thorsten
More information about the Digitalmars-d
mailing list