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)
committerAmitay Isaacs <amitay@gmail.com>
Wed, 14 Aug 2013 06:55:51 +0000 (16:55 +1000)
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>
server/ctdb_recover.c

index 0bec03e7a547a107344cf761cb08ce5fa44715f8..a89074a058f9636d416f0da40bfa23af152852bb 100644 (file)
@@ -1153,7 +1153,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 "