func TestNewPointsWithBytesWithCorruptData(t *testing.T) { corrupted := []byte{0, 0, 0, 3, 102, 111, 111, 0, 0, 0, 4, 61, 34, 65, 34, 1, 0, 0, 0, 14, 206, 86, 119, 24, 32, 72, 233, 168, 2, 148} p, err := models.NewPointFromBytes(corrupted) if p != nil || err == nil { t.Fatalf("NewPointFromBytes: got: (%v, %v), expected: (nil, error)", p, err) } }
func (w *WriteShardRequest) unmarshalPoints() []models.Point { points := make([]models.Point, len(w.pb.GetPoints())) for i, p := range w.pb.GetPoints() { pt, err := models.NewPointFromBytes(p) if err != nil { // A error here means that one node created a valid point and sent us an // unparseable version. We could log and drop the point and allow // anti-entropy to resolve the discrepancy, but this shouldn't ever happen. panic(fmt.Sprintf("failed to parse point: `%v`: %v", string(p), err)) } points[i] = pt } return points }