[erlang-bugs] R14B02+ crashes on older hardware, Windows XP
Mikael Pettersson
mikpe@REDACTED
Sat Jul 2 21:38:03 CEST 2011
sgm writes:
> On Sat, Jul 2, 2011 at 6:52 AM, Mikael Pettersson <mikpe@REDACTED> 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