On Wed, May 31, 2017 at 09:04:52AM -0400, Steven Schveighoffer via Digitalmars-d wrote: > I have discovered an annoyance in using vibe.d instead of another web > framework. Simple errors in indexing crash the entire application. > > For example: > > int[3] arr; > arr[3] = 5; > > Compare this to, let's say, a malformed unicode string (exception), > malformed JSON data (exception), file not found (exception), etc. > > Technically this is a programming error, and a bug. But memory hasn't > actually been corrupted. The system properly stopped me from > corrupting memory. But my reward is that even though this fiber threw > an Error, and I get an error message in the log showing me the bug, > the web server itself is now out of commission. No other pages can be > served. This is like the equivalent of having a guard rail on a road > not only stop you from going off the cliff but proactively disable > your car afterwards to prevent you from more harm. [...]
Isn't it customary to have the webserver launched by a script that restarts it whenever it crashes (after logging a message in an emergency logfile)? Not an ideal solution, I know, but at least it minimizes downtime. On another note, why didn't the compiler reject the above code? I thought it checks static arrays bounds at compile time whenever possible. Did I remember wrong? T -- Change is inevitable, except from a vending machine.
