<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/mnesia/src, branch OTP_R16B03</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>mnesia: Fix dirty_update bug when subscriber exists</title>
<updated>2013-11-29T13:55:12+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2013-11-29T13:55:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=49799666d163a72114d7a936f6f528c3726018ae'/>
<id>49799666d163a72114d7a936f6f528c3726018ae</id>
<content type='text'>
dirty_update_counter returned the wrong value when a subscriber existed
and no events was sent. Thanks Anton Ryabkov.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
dirty_update_counter returned the wrong value when a subscriber existed
and no events was sent. Thanks Anton Ryabkov.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Synchronize lock cleanup after mnesia down</title>
<updated>2013-11-25T11:33:16+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2013-10-10T08:55:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9237801d22a38d2643ffe94ab626c4d2815012dd'/>
<id>9237801d22a38d2643ffe94ab626c4d2815012dd</id>
<content type='text'>
Bad timing could lead to hanging transactions after a mnesia down from a
node with sticky locks.

Excellent bug report from janchochol

Situation:
* node A and B have copies of table T
* node A ows sticky of table T
* node A goes down (e.g. crash)
* node B tries to perform transactional operation on table T
  (e.g. mnesia:select)

In this situation there is possibility that first (and maybe other)
transaction on node B will hang indefinitely.
This is caused by race condition, when transaction process send lock
request operation to node A and waits for reply. When node A is down
it will never send reply, so process on node B will be stuck
forever.
Reason is that message sent to mnesia_locker gen_server from
mnesia_locker:mnesia_down can be received after mnesia_locker gen_server
already replies to transaction processes with {switch, N, Req} and
node N is down.
Monitoring remote process when sending request to other node should
be safe solution.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bad timing could lead to hanging transactions after a mnesia down from a
node with sticky locks.

Excellent bug report from janchochol

Situation:
* node A and B have copies of table T
* node A ows sticky of table T
* node A goes down (e.g. crash)
* node B tries to perform transactional operation on table T
  (e.g. mnesia:select)

In this situation there is possibility that first (and maybe other)
transaction on node B will hang indefinitely.
This is caused by race condition, when transaction process send lock
request operation to node A and waits for reply. When node A is down
it will never send reply, so process on node B will be stuck
forever.
Reason is that message sent to mnesia_locker gen_server from
mnesia_locker:mnesia_down can be received after mnesia_locker gen_server
already replies to transaction processes with {switch, N, Req} and
node N is down.
Monitoring remote process when sending request to other node should
be safe solution.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Checkpoint fix</title>
<updated>2013-08-29T08:17:31+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2013-08-26T14:03:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e92f5a220ec9d5a72ba3e65ff7715f9167e5b9b1'/>
<id>e92f5a220ec9d5a72ba3e65ff7715f9167e5b9b1</id>
<content type='text'>
Avoid hanging waiting for other processes on other node
to commit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid hanging waiting for other processes on other node
to commit.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Improve checkpoint activation</title>
<updated>2013-08-29T08:17:31+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2013-08-15T13:54:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2c3be1dc1a4af5028be7659587c5d5676b7eb83e'/>
<id>2c3be1dc1a4af5028be7659587c5d5676b7eb83e</id>
<content type='text'>
Fixed a race where some parts of a transaction could
be added to the checkpoint.

There are probably more races here but this improves the current
testcases.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed a race where some parts of a transaction could
be added to the checkpoint.

There are probably more races here but this improves the current
testcases.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Cleanup and remove obsolete code</title>
<updated>2013-08-29T08:17:31+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2013-03-14T08:45:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e67d2d1dc46f43a3a304082cfed477100a6330d4'/>
<id>e67d2d1dc46f43a3a304082cfed477100a6330d4</id>
<content type='text'>
We don't support communicating with such old nodes anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't support communicating with such old nodes anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: fix removal of bup file if not mnesia is started</title>
<updated>2013-08-16T08:59:47+00:00</updated>
<author>
<name>Fredrik Gustafsson</name>
<email>fredrik@erlang.org</email>
</author>
<published>2013-08-15T13:08:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f07a92206bfbef5188b9d567559e1b13014dd82c'/>
<id>f07a92206bfbef5188b9d567559e1b13014dd82c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years</title>
<updated>2013-06-12T17:37:57+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2013-06-12T17:37:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=710b07ca18417976459335a8b0b81a6f6aa82699'/>
<id>710b07ca18417976459335a8b0b81a6f6aa82699</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Fix unsubscribe error handling</title>
<updated>2013-06-04T13:46:20+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2013-06-04T13:46:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=927982b8754ceada8b6d76225475f54b410de9e9'/>
<id>927982b8754ceada8b6d76225475f54b410de9e9</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 'nm/mnesia_idx_insert_speedup/OTP-11103' into maint</title>
<updated>2013-05-17T08:03:30+00:00</updated>
<author>
<name>Fredrik Gustafsson</name>
<email>fredrik@erlang.org</email>
</author>
<published>2013-05-17T08:03:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a70d09b6e611771b467a91c7ebeca1e14390553a'/>
<id>a70d09b6e611771b467a91c7ebeca1e14390553a</id>
<content type='text'>
* nm/mnesia_idx_insert_speedup/OTP-11103:
  Fix missing case clause for ordered_set tables
  Optimize index creation for Mnesia set tables
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* nm/mnesia_idx_insert_speedup/OTP-11103:
  Fix missing case clause for ordered_set tables
  Optimize index creation for Mnesia set tables
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix missing case clause for ordered_set tables</title>
<updated>2013-04-24T18:05:25+00:00</updated>
<author>
<name>Nick Marino</name>
<email>nmarino@shoretel.com</email>
</author>
<published>2013-04-24T17:55:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fb8cbfa5db65f4bb9dcb133de9414c78aa49d9e7'/>
<id>fb8cbfa5db65f4bb9dcb133de9414c78aa49d9e7</id>
<content type='text'>
The previous commit contained a regression that would trigger a crash
when attempting to add an index to an Mnesia table of type ordered_set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous commit contained a regression that would trigger a crash
when attempting to add an index to an Mnesia table of type ordered_set.
</pre>
</div>
</content>
</entry>
</feed>
