<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/mnesia, branch maint-17</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Prepare release</title>
<updated>2015-03-31T10:24:04+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2015-03-31T10:24:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=62870c998955e1498e71bfc90607885e96ecaa27'/>
<id>62870c998955e1498e71bfc90607885e96ecaa27</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'dgud/testcasecuddle' into maint</title>
<updated>2015-03-11T14:55:35+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2015-03-11T14:55:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=47c44f3de3d5bf4251c35cf49474c3e29ad2933b'/>
<id>47c44f3de3d5bf4251c35cf49474c3e29ad2933b</id>
<content type='text'>
* dgud/testcasecuddle:
  mnesia: Flush late messages
  Add Debug info
  mnesia: better debug info when tests fail
  mnesia: Ensure tables are loaded before testing them
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dgud/testcasecuddle:
  mnesia: Flush late messages
  Add Debug info
  mnesia: better debug info when tests fail
  mnesia: Ensure tables are loaded before testing them
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Flush late messages</title>
<updated>2015-02-23T12:24:05+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2015-02-23T12:24:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1f4075e70f7511b8dedbb75344478fa27cbe6495'/>
<id>1f4075e70f7511b8dedbb75344478fa27cbe6495</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Debug info</title>
<updated>2015-02-17T11:32:10+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2015-02-17T11:32:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=77eeb9aa6295c275ebed135a3ac9339dcb61cef2'/>
<id>77eeb9aa6295c275ebed135a3ac9339dcb61cef2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'emauton/mnesia_create_table_docfix' into maint</title>
<updated>2015-02-13T14:16:40+00:00</updated>
<author>
<name>Zandra Hird</name>
<email>zandra@erlang.org</email>
</author>
<published>2015-02-13T14:16:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ef8b1e3e8c908379cec8376ed515c920682224f9'/>
<id>ef8b1e3e8c908379cec8376ed515c920682224f9</id>
<content type='text'>
* emauton/mnesia_create_table_docfix:
  Fix index for #person.address in create_table/2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* emauton/mnesia_create_table_docfix:
  Fix index for #person.address in create_table/2
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'crownedgrouse/fix_mnesia_subscribe_doc' into maint</title>
<updated>2015-02-13T14:10:44+00:00</updated>
<author>
<name>Zandra Hird</name>
<email>zandra@erlang.org</email>
</author>
<published>2015-02-13T14:10:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=61ba469b7c5aa2ea68eba3268544543be5d7b0d6'/>
<id>61ba469b7c5aa2ea68eba3268544543be5d7b0d6</id>
<content type='text'>
* crownedgrouse/fix_mnesia_subscribe_doc:
  Fix xml doc return value mnesia:(un)subscribe
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* crownedgrouse/fix_mnesia_subscribe_doc:
  Fix xml doc return value mnesia:(un)subscribe
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: better debug info when tests fail</title>
<updated>2015-02-10T14:27:16+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2015-01-14T15:24:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cde9cccfa1c4c262cccfb87299689e11c9cc8677'/>
<id>cde9cccfa1c4c262cccfb87299689e11c9cc8677</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'dumbbell/mnesia-hang-if-remote-stopped-after-proto-negotiation' into maint</title>
<updated>2015-02-10T13:52:16+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2015-02-10T13:43:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a0f9bb79004eeacc327d0bfaa891f0cbd71b3f04'/>
<id>a0f9bb79004eeacc327d0bfaa891f0cbd71b3f04</id>
<content type='text'>
* dumbbell/mnesia-hang-if-remote-stopped-after-proto-negotiation:
  mnesia: Check nodes after protocol negotiation

OTP-12473
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dumbbell/mnesia-hang-if-remote-stopped-after-proto-negotiation:
  mnesia: Check nodes after protocol negotiation

OTP-12473
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Check nodes after protocol negotiation</title>
<updated>2015-02-10T13:42:24+00:00</updated>
<author>
<name>Jean-Sébastien Pédron</name>
<email>jean-sebastien.pedron@dumbbell.fr</email>
</author>
<published>2014-12-11T17:24:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=70c4db1d0b57363e33a04c935b653092f68cb91a'/>
<id>70c4db1d0b57363e33a04c935b653092f68cb91a</id>
<content type='text'>
During Mnesia startup, after protocol negotiation, the list of connected
nodes is written to "recover_nodes". This list is later used to merge
the schema.

If Mnesia was stopped on a remote node between the protocol negotiation
and the moment the list is stored in "recover_nodes", the remote node
is still considered running: the value of "recover_nodes" stored during
mnesia_down/1 is overwritten. Therefore, this node may be used to
acquire a write lock on the schema in order to perform the merge. In
this case, the remote node never answers to the lock request and Mnesia
hang forever (application:start(mnesia) never returns).

To fix the problem, we check the list one last time and remove from it
all nodes where Mnesia is stopped. And because there is still a chance
for missing mnesia_down event, handle_cast({mnesia_down, ...}, ...)
writes to recover_nodes again, in addition to mnesia_down/1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During Mnesia startup, after protocol negotiation, the list of connected
nodes is written to "recover_nodes". This list is later used to merge
the schema.

If Mnesia was stopped on a remote node between the protocol negotiation
and the moment the list is stored in "recover_nodes", the remote node
is still considered running: the value of "recover_nodes" stored during
mnesia_down/1 is overwritten. Therefore, this node may be used to
acquire a write lock on the schema in order to perform the merge. In
this case, the remote node never answers to the lock request and Mnesia
hang forever (application:start(mnesia) never returns).

To fix the problem, we check the list one last time and remove from it
all nodes where Mnesia is stopped. And because there is still a chance
for missing mnesia_down event, handle_cast({mnesia_down, ...}, ...)
writes to recover_nodes again, in addition to mnesia_down/1.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix index for #person.address in create_table/2</title>
<updated>2015-01-18T22:37:05+00:00</updated>
<author>
<name>Cian Synnott</name>
<email>cian@emauton.org</email>
</author>
<published>2015-01-18T22:37:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=eb87eaca8c4ec7beab490cb8dcca5941408e8662'/>
<id>eb87eaca8c4ec7beab490cb8dcca5941408e8662</id>
<content type='text'>
{index, [2]} refers to #person.name rather than #person.address, which
caused a little confusion in #erlang today.

{index, [4]} is the correct "hard coded" field for #person.address.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
{index, [2]} refers to #person.name rather than #person.address, which
caused a little confusion in #erlang today.

{index, [4]} is the correct "hard coded" field for #person.address.
</pre>
</div>
</content>
</entry>
</feed>
