[erlang-bugs] R14B02+ crashes on older hardware, Windows XP

Mikael Pettersson <>
Sat Jul 2 21:38:03 CEST 2011


sgm writes:
 > On Sat, Jul 2, 2011 at 6:52 AM, Mikael Pettersson <> wrote:
 > > sgm writes:
 > >  > We have a field data collection application recently re-written to use
 > >  > CouchDB. It requires minimal computer resources, so a number of the
 > >  > notebooks we use are circa 2001/2002. All run Windows XP with SP2 or
 > >  > SP3, and we are using CouchDB 1.1.
 > >  >
 > >  > On the older machines, Erlang R14B02 and R14B03 crash almost
 > >  > immediately upon running werl or erl. R14B01 does not.
 > >  >
 > >  > I'm attaching a screenshot of the crash on one of the machines. In all
 > >  > cases it happens at the same point, almost immediately, is 100%
 > >  > reproducible, and no crash dump is generated.
 > >  >
 > >  > Here are the machines where it crashes:
 > >  >
 > >  > Dell Inspiron 2500, 1.0GHz Pentium III, 160MB RAM, system summary
 > >  > rctc11.txt attached
 > >  > Dell Inspiron 2600, 1.06GHz Celeron, 128MB RAM, system summary
 > >  > rctc12.txt attached
 > >  > Gateway Solo 9300, 750MHz Pentium III, 160MB RAM, system summary
 > >  > rctc16.txt attached
 > >  >
 > >  > For comparison, I'm also including this machine of similar vintage
 > >  > which does NOT crash:
 > >  >
 > >  > Dell Inspiron 2650, 1.7GHz Pentium 4, 256MB RAM, system summary
 > >  > rctc13.txt attached
 > >
 > > You need to rebuild the Erlang VM with the --enable-ethread-pre-pentium4-compatibility
 > > option.
 > >
 > > This is a big ugly bug in the Erlang VM.
 > >
 > 
 > Thanks Mikael, I suspected it was a CPU-related issue. You say it's a
 > bug, but the documented option implies it's intentional. Are you
 > suggesting the VM should detect the CPU at startup and load the
 > appropriate library?

The bug is that the default is unsafe.  It would have been far better
to maintain compatibility by default, but offer an opt-in option for
enabling higher performance.

It's not a matter of selecting the right version of some small library,
the option affects micro-optimized instruction sequences for synchronization,
which are visible to and potentially inlined in many parts of the VM.


More information about the erlang-bugs mailing list