This has always been fishy, and it's original purpose isn't quite clear.
The '!obc->obs.ssc' is clearly the create case, but the head_exists check
is only the case if we are getting the context for a _head, which in
many cases we're not. In parituclarly, it fails for a snapped object
where the head doesn't exist. We _do_ have teh ssc (from the _snapdir
object) but there is no head.
Just remove the assert entirely.. it's not clear what it's really catching.
if (r >= 0) {
obc->obs.oi.decode(bv);
obc->obs.exists = true;
- assert(!obc->obs.ssc || obc->obs.ssc->snapset.head_exists);
} else {
obc->obs.exists = false;
}