Garbage collection of remote references

0 views
Skip to first unread message

Ludovic Demblans

unread,
Oct 15, 2021, 6:24:20 AM10/15/21
to erlang-q...@erlang.org
Hello,

I can read the following in the binary_to_term documentation:

When decoding binaries from untrusted sources, the untrusted source
may submit
data in a way to create resources, such as atoms and remote
references, that
cannot be garbage collected and lead to Denial of Service attack. In
such
cases, consider using binary_to_term/2 with the safe option.


I use binary serialized remote references to dispatch messages received
from an
external source (Kafka) to the right process in the right node. Those
references are process aliases with the reply option.

Reading the docs, should I understand that each reference will stay
forever
in memory after being used to send a message?

I am also looking for more docs on that topic, I couldn't find much.

Thank you.

Dániel Szoboszlay

unread,
Oct 15, 2021, 8:05:55 AM10/15/21
to Ludovic Demblans, erlang-questions
Hi Ludovic,

As far as I know references themselves are stored as regular data on the heap, and can be garbage collected. However, references (and pids) also contain the node on which they were created (an atom). So I believe the documentation wants to warn you that decoding a reference may also create an atom in your atom table (plus also an entry in the node name to "first number in a pid" mapping table, which probably has an official name). which will not be garbage collected. The reference itself will be.

Hope it helps,
Daniel

lud...@demblans.com

unread,
Oct 15, 2021, 9:12:54 AM10/15/21
to erlang-questions
Hi Daniel,

Thank you for the explaination, it becomes much less of a problem with a fixed set of node names.

Cheers,

- lud


> Hi Ludovic,
>
> As far as I know references themselves are stored as regular data on the
> heap, and can be garbage collected. However, references (and pids) also
> contain
> <https://erlang.org/doc/apps/erts/erl_ext_dist.html#new_reference_ext> the
Reply all
Reply to author
Forward
0 new messages