<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/mnesia/src, branch HansN-patch-1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>mikpe/process_info-1-no-messages/PR-1745/OTP-14986</title>
<updated>2018-03-16T08:07:10+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>garazdawi@gmail.com</email>
</author>
<published>2018-03-16T08:07:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=845dd68493a91decc32d50cc785e6afaf9dfb6c3'/>
<id>845dd68493a91decc32d50cc785e6afaf9dfb6c3</id>
<content type='text'>
make erlang:process_info/1 not retrieve messages</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
make erlang:process_info/1 not retrieve messages</pre>
</div>
</content>
</entry>
<entry>
<title>make erlang:process_info/1 not retrieve messages</title>
<updated>2018-03-10T15:19:26+00:00</updated>
<author>
<name>Mikael Pettersson</name>
<email>mikpelinux@gmail.com</email>
</author>
<published>2018-03-10T15:19:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9f1d9a497ba42df8c122bc1ac2c1add6f64a164c'/>
<id>9f1d9a497ba42df8c122bc1ac2c1add6f64a164c</id>
<content type='text'>
process_info/1 retrieves a number of properties related to a process,
including the list of messages in its mailbox.  This is potentially
unsafe if the target process has a large number of queued messages:

- there is no a priori upper bound on the amount of memory being
  allocated to hold that list, and
- the loop to retrieve the messages is uninterruptible, so the
  Erlang scheduler where this executes blocks for the duration

We've seen process_info/1 bring down heavily loaded nodes on more
than one occasion.  At least once it appeared to have blocked the
Erlang heart process from executing, causing the external heart to
kill the VM.

Consequently this removes 'messages' from the list of process_info
tags to retrieve for process_info/1.  Note that process_info/1 still
retrieves 'message_queue_len', and process_info/2 can still retrieve
'messages' when asked to.

A few places in the OTP libraries need minor adjustments, since they
want 'message_queue_len' but compute it from the length of the list
of messages.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
process_info/1 retrieves a number of properties related to a process,
including the list of messages in its mailbox.  This is potentially
unsafe if the target process has a large number of queued messages:

- there is no a priori upper bound on the amount of memory being
  allocated to hold that list, and
- the loop to retrieve the messages is uninterruptible, so the
  Erlang scheduler where this executes blocks for the duration

We've seen process_info/1 bring down heavily loaded nodes on more
than one occasion.  At least once it appeared to have blocked the
Erlang heart process from executing, causing the external heart to
kill the VM.

Consequently this removes 'messages' from the list of process_info
tags to retrieve for process_info/1.  Note that process_info/1 still
retrieves 'message_queue_len', and process_info/2 can still retrieve
'messages' when asked to.

A few places in the OTP libraries need minor adjustments, since they
want 'message_queue_len' but compute it from the length of the list
of messages.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Do not call erlang:get_stacktrace() (cont)</title>
<updated>2018-02-06T13:40:53+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-02-06T13:37:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c53939321c81330d802b7426592a12748fb9429d'/>
<id>c53939321c81330d802b7426592a12748fb9429d</id>
<content type='text'>
Take care of the call of erlang:get_stacktrace() in
module mnesia_lib.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Take care of the call of erlang:get_stacktrace() in
module mnesia_lib.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Do not call erlang:get_stacktrace()</title>
<updated>2018-02-06T13:39:42+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-02-05T11:36:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1040c3c48099e5ee6b65cb2af5e8bf446764fef3'/>
<id>1040c3c48099e5ee6b65cb2af5e8bf446764fef3</id>
<content type='text'>
The remaining call (in module mnesia_lib) is taken care
of in the following commit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The remaining call (in module mnesia_lib) is taken care
of in the following commit.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2017-12-19T09:24:35+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2017-12-19T09:24:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=135317d5587af9e8479bfcc6e767913fc4f7a6de'/>
<id>135317d5587af9e8479bfcc6e767913fc4f7a6de</id>
<content type='text'>
* maint:
  Updated OTP version
  Prepare release
  mnesia: Fix checkpoint crash
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint:
  Updated OTP version
  Prepare release
  mnesia: Fix checkpoint crash
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'dgud/mnesia/checkpoint-crash/OTP-14841' into maint-20</title>
<updated>2017-12-18T14:36:32+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-12-18T14:36:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3ed6eaf7541f861fbeb9a7e847474ad671aae7f5'/>
<id>3ed6eaf7541f861fbeb9a7e847474ad671aae7f5</id>
<content type='text'>
* dgud/mnesia/checkpoint-crash/OTP-14841:
  mnesia: Fix checkpoint crash
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dgud/mnesia/checkpoint-crash/OTP-14841:
  mnesia: Fix checkpoint crash
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'dgud/mnesia/slow-startup/OTP-14829' into maint-20</title>
<updated>2017-12-18T14:36:31+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-12-18T14:36:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=59fbff220a6b2ac2f59eaecd480a417b4e24b8bf'/>
<id>59fbff220a6b2ac2f59eaecd480a417b4e24b8bf</id>
<content type='text'>
* dgud/mnesia/slow-startup/OTP-14829:
  mnesia: Read schema user properties directly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dgud/mnesia/slow-startup/OTP-14829:
  mnesia: Read schema user properties directly
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Fix checkpoint crash</title>
<updated>2017-12-18T14:30:39+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2017-12-18T14:30:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e038b56530804a3e59cc8832db64e021b4b33d25'/>
<id>e038b56530804a3e59cc8832db64e021b4b33d25</id>
<content type='text'>
Bad timing can cause retain messages to go to a new process if
checkpoint name is reused directly and the checkpoints contain
different tables.

Ignore those messages instead of crash.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bad timing can cause retain messages to go to a new process if
checkpoint name is reused directly and the checkpoints contain
different tables.

Ignore those messages instead of crash.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2017-12-18T12:34:24+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2017-12-18T12:34:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2aa6311f09a344b6631c986b65f58bf641f6a9b0'/>
<id>2aa6311f09a344b6631c986b65f58bf641f6a9b0</id>
<content type='text'>
* maint:
  Updated OTP version
  Prepare release
  mnesia: Read schema user properties directly
  ssh: testcases for space trailing Hello msg
  ssh: Don't remove trailing WS in Hello msg
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint:
  Updated OTP version
  Prepare release
  mnesia: Read schema user properties directly
  ssh: testcases for space trailing Hello msg
  ssh: Don't remove trailing WS in Hello msg
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint-19' into maint</title>
<updated>2017-12-18T12:30:48+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2017-12-18T12:30:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=6c7bc33453090db7f2853d8778290f51f548ddaa'/>
<id>6c7bc33453090db7f2853d8778290f51f548ddaa</id>
<content type='text'>
* maint-19:
  Updated OTP version
  Prepare release
  mnesia: Read schema user properties directly
  ssh: testcases for space trailing Hello msg
  ssh: Don't remove trailing WS in Hello msg
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint-19:
  Updated OTP version
  Prepare release
  mnesia: Read schema user properties directly
  ssh: testcases for space trailing Hello msg
  ssh: Don't remove trailing WS in Hello msg
</pre>
</div>
</content>
</entry>
</feed>
