syncbase/vsync:
Bugfix to handle syncing deletions.
Added a test to cover this case.

Change-Id: Ia3600dd2ca0475650afc4c4d4dc1ed8ccd219825
diff --git a/services/syncbase/vsync/initiator.go b/services/syncbase/vsync/initiator.go
index e14dac6..18df27b 100644
--- a/services/syncbase/vsync/initiator.go
+++ b/services/syncbase/vsync/initiator.go
@@ -444,6 +444,7 @@
 				}
 			}
 
+			vlog.VI(4).Infof("sync: recvAndProcessDeltas: processing rec %v", rec)
 			if err := iSt.insertRecInLogDagAndDb(ctx, rec, batchId, v.Value.Value, tx); err != nil {
 				return err
 			}
diff --git a/services/syncbase/vsync/responder.go b/services/syncbase/vsync/responder.go
index c0f2c9f..2211da4 100644
--- a/services/syncbase/vsync/responder.go
+++ b/services/syncbase/vsync/responder.go
@@ -440,9 +440,13 @@
 func makeWireLogRec(ctx *context.T, st store.Store, rec *localLogRec) (*interfaces.LogRec, error) {
 	// Get the object value at the required version.
 	key, version := rec.Metadata.ObjId, rec.Metadata.CurVers
-	value, err := watchable.GetAtVersion(ctx, st, []byte(key), nil, []byte(version))
-	if err != nil {
-		return nil, err
+	var value []byte
+	if !rec.Metadata.Delete {
+		var err error
+		value, err = watchable.GetAtVersion(ctx, st, []byte(key), nil, []byte(version))
+		if err != nil {
+			return nil, err
+		}
 	}
 
 	wireRec := &interfaces.LogRec{Metadata: rec.Metadata, Value: value}