# Software (including Julia?) as Crash-only systems

**URL:** <https://discourse.julialang.org/t/software-including-julia-as-crash-only-systems/83839>\
**Category:** Offtopic\
**Created:** [July 6, 2022, 1:52pm UTC](https://discourse.julialang.org/t/software-including-julia-as-crash-only-systems/83839 "2022-07-06T13:52:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [July 6, 2022, 1:52pm UTC](https://discourse.julialang.org/t/software-including-julia-as-crash-only-systems/83839/1 "2022-07-06T13:52:23Z")

</div>

Your apps (and that’s, currently, your responsibility) should be “crash-only systems”, but possibly Julia (as a “component” of your system), should also be “crash-only software”:

> **[Crash-only software: More than meets the eye \[LWN.net\]](https://lwn.net/Articles/191059/)**
>
> Next time your Linux laptop crashes, pull out your watch (or your cell
> phone) and time how long it takes to boot up. More than likely,
> you're running a journaling file system, and not only did your system
> boot up quickly, but it didn't lose any data...

> Crash-only software is software that crashes safely and recovers quickly.  
> […]  
> **The conclusion**  
> Properly implemented, crash-only software produces higher quality, more reliable code; poorly understood it results in lazy programming.

Julia can crash (e.g. on OOM), and it’s safe in some sense (recovers edit history), but Julia doesn’t checkpoint (most of) your code by default, so in that sense Julia isn’t safe, i.e. Julia doesn’t recover. Julia does have some such non-default option:

> `--bug-report=rr-local`  
> Run julia inside rr record but do not upload the recorded trace. Useful for local debugging.

Maybe that can and should be amended to be the default.

From the paper linked from the article:

> “Crash-only systems are built from crash-only components”

Android is a system where OOM isn’t a problem, and programs restart (up to them to recover, so not all do a good job), and macOS has changed to a similar system (at least for new apps, and all included I believe).
