From 833b3d6592caa5040f7e793cd48eda4d1dfcf700 Mon Sep 17 00:00:00 2001 From: Todd Gruben Date: Tue, 24 Jun 2014 09:54:10 -0500 Subject: [PATCH] fixed crashing for missing fragment issue --- db/topology.go | 2 ++ query/planner.go | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/db/topology.go b/db/topology.go index 7bfc919f4..553362c04 100644 --- a/db/topology.go +++ b/db/topology.go @@ -323,12 +323,14 @@ func (d *Database) GetFragmentForBitmap(slice *Slice, bitmap *Bitmap) (*Fragment //defer d.mutex.Unlock() frame, err := d.getFrame(bitmap.FrameType) if err != nil { + log.Println("Missing FrameType", bitmap.FrameType, d.Name, slice) log.Println(err) return nil, err } //log.Println(frame, slice) fsi, err := d.GetFrameSliceIntersect(frame, slice) if err != nil { + log.Println("Missing frame,slice", frame, slice) log.Println(err) return nil, err } diff --git a/query/planner.go b/query/planner.go index 409bc255c..82470a75d 100644 --- a/query/planner.go +++ b/query/planner.go @@ -272,9 +272,13 @@ func (qt *SetQueryTree) getLocation(d *db.Database) (*db.Location, error) { slice, err := d.GetSliceForProfile(qt.profile_id) if err != nil { //I should check GetFragmentForBitmap for possible errors but for now i'll just hardcode - return nil, NewFragmentNotFound(d.Name, qt.bitmap.FrameType, db.GetSlice(qt.profile_id)) + return nil, NewFragmentNotFound(d.Name, "b.n", db.GetSlice(qt.profile_id)) } fragment, err := d.GetFragmentForBitmap(slice, qt.bitmap) + if err != nil { + log.Println("NOT FOUND:", slice, qt.bitmap) + return nil, err + } return fragment.GetLocation(), nil }