ets:lookup and ets:update_counter return [] although key/value is there

Bjorn Gustavsson bjorn@REDACTED
Tue Sep 13 10:42:39 CEST 2005


Knut Bakke <knutbakke@REDACTED> writes:

> My best clue: I know that the memory driver for erlang
> has been changed to delete memory areas before
> updating them - to reduce memory fragmentation. Could
> it be that there is a time slice where the data is not
> there?

(I suppose you refer to the +r flag.)

NO. The current emulator is single-threaded. Nothing else
can run while an ets operation is taking place.

I strongly suspect that there is a bug in your own application, that
changing the hardware has changed the timing and exposed a latent bug.
Of course, the bug could be in ets; in that case it should be possible
to reproduce it on any machine if you would do EXACTLY the same ets
operations.

Have you tried to trace all ets operations?

/Bjorn

-- 
Björn Gustavsson, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list