commit | 179a2238b1529e6ce8045c53782be06880d6f670 | [log] [tgz] |
---|---|---|
author | Robin Thellend <rthellend@google.com> | Mon Jun 20 17:36:32 2016 -0700 |
committer | Robin Thellend <rthellend@google.com> | Tue Jun 21 01:40:50 2016 +0000 |
tree | 58888be00ebc7840ace82f2a6c1bdb6ff9007d5e | |
parent | 3850cbac5c2b813cdcf27be18cea9492b0bc0531 [diff] |
services/mounttable/btmtd: Fix bug with concurrent createChild When createChild() is called concurrently, it is possible to leave an incorrect reference in the parent, e.g. createChild1 --> insert child with ts1 in parent createChild2 --> insert child with ts2 in parent createChild1 --> Create child row with ts1 createChild2 --> Create child row wth ts2 (Fails, already exists) OR, createChild1 --> insert child with ts1 in parent createChild2 --> insert child with ts2 in parent createChild2 --> Create child row wth ts2 createChild1 --> Create child row with ts1 (Fails, already exists) When createChild1 or createChild2 fails, the reference in the parent for ts1 or ts2 was left behind. The fix is to delete that reference when the row creation fails. https://github.com/vanadium/build/issues/88 Change-Id: I9947ef2459550636ce0bc7ec3f8c1766f789bbec
This repository contains a reference implementation of the Vanadium APIs.
Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.