[mongodb] Message posts are not always atomic

Bug #1270263 reported by Kurt Griffiths
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
zaqar
Fix Released
Medium
Kurt Griffiths
Icehouse
Fix Released
Medium
Kurt Griffiths

Bug Description

Currently, if we lose our network connection to mongod we will return a 503 to the client and a partial enqueuing of the posted message batch is possible.

Kurt Griffiths (kgriffs)
description: updated
Changed in marconi:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to marconi (master)

Reviewed: https://review.openstack.org/67320
Committed: https://git.openstack.org/cgit/openstack/marconi/commit/?id=fc71f6a17e27155b55bd80aa8b67881ed8b6a7a9
Submitter: Jenkins
Branch: master

commit fc71f6a17e27155b55bd80aa8b67881ed8b6a7a9
Author: kgriffs <email address hidden>
Date: Thu Jan 16 17:01:28 2014 -0600

    fix(mongodb): Ensure batch message posts are atomic (all or nothing)

    In the case of a network failure it is not possible to discover which,
    if any, of the messages in a given batch were inserted before the
    outage occurred.

    This patch works around the problem by inserting messages in two
    phases:

    1. Assign all messages a "batch" or "group" ID and insert them
    2. Once it has been confirmed that *all* messages were inserted
       correctly, finalize the transaction by clearing the batch
       ID, 'g', from the messages just inserted.

    Message listing and counting were also modified to ignore any
    non-finalized messages, i.e., those messages that have a non-null
    'g' value.

    Orphaned messages will eventually expire and be cleaned up as
    usual via the TTL index.

    Closes-Bug: #1270263
    Change-Id: I9de61cdfdf6dfcbe07ef76bf63a293091f087663

Changed in marconi:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in marconi:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in marconi:
milestone: icehouse-2 → 2014.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.