<div>Mark, in a nonsymmetric (but structurally symmetric) bs=2 problem from Lulu, we are tripping this assertion.</div><div><br></div><div>          else{            /* I'm stealing this local, owned by a ghost */</div>
<div>            assert(sgid==-1);</div><div><br></div><div><br></div><div>What does this mean? Can't we at least always use SETERRQ for errors?</div><div><br></div><div><br></div><div>Also from that section of code, I notice you are using PETSC_ERR_LIB for internal PETSc logic/corruption errors. They look like they should be PETSC_ERR_PLIB.</div>