vacuuming: Fix vacuuming bug where requests keep bouncing between nodes (part 1)
authorAmitay Isaacs <amitay@gmail.com>
Mon, 12 Aug 2013 05:51:00 +0000 (15:51 +1000)
committerMichael Adam <obnox@samba.org>
Mon, 19 Aug 2013 15:13:18 +0000 (17:13 +0200)
This is caused by corruption of a record header such that the records
on two nodes point to each other as dmaster.  This makes a request for
that record bounce between nodes endlessly.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit a610bc351f0754c84c78c27d02f9a695e60c5b0f)

server/ctdb_recover.c

index f5fa25728bbba492b0bf6636565f9410ceaa6d9b..6f72b07aa5e50232e69beb24b7f2255d50239272 100644 (file)
@@ -1132,7 +1132,7 @@ static int store_tdb_record(struct ctdb_context *ctdb,
                goto done;
        }
 
-       hdr2 = (struct ctdb_ltdb_header *)data.dptr;
+       hdr2 = (struct ctdb_ltdb_header *)data2.dptr;
 
        if (hdr2->rsn > hdr->rsn) {
                DEBUG(DEBUG_INFO, (__location__ " Skipping record with "