[sheepdog-users] problem converting vdi
Liu Yuan
namei.unix at gmail.com
Thu Jun 27 10:10:31 CEST 2013
On Thu, Jun 27, 2013 at 04:57:31PM +0900, MORITA Kazutaka wrote:
> At Thu, 27 Jun 2013 15:47:21 +0800,
> Liu Yuan wrote:
> >
> > On Thu, Jun 27, 2013 at 04:06:31PM +0900, MORITA Kazutaka wrote:
> > > At Thu, 27 Jun 2013 15:03:28 +0800,
> > > Liu Yuan wrote:
> > > >
> > > > On Thu, Jun 27, 2013 at 03:53:29PM +0900, MORITA Kazutaka wrote:
> > > > > At Thu, 27 Jun 2013 13:23:02 +0800,
> > > > > Liu Yuan wrote:
> > > > > >
> > > > > > On Wed, Jun 26, 2013 at 11:40:06AM +0200, Valerio Pachera wrote:
> > > > > > > 2013/6/26 Valerio Pachera <sirio81 at gmail.com>:
> > > > > > > > I tried a second time, but it didn't repeat >:(
> > > > > > >
> > > > > > > I got it.
> > > > > > > kill -9 does the trick.
> > > > > > >
> > > > > > > kill -9 the running guest.
> > > > > > > rerun the guest on the same node to flush the cache and shut it down correctly.
> > > > > > > Convert the vdi to qcow2.
> > > > > > > Delete the vdi and import back the qcow2.
> > > > > > > Start the guest.
> > > > > >
> > > > > > I can't still reproduce the problem yet. Anyone give it a try?
> > > > >
> > > > > I couldn't either.
> > > > >
> > > > > Perhaps, the gateway failed to push the dirty cache objects when qemu
> > > > > shutdowns cleanly? Currently, local_release_vdi() deletes cache
> > > > > objects even when object_cache_flush_vdi() fails, and returns
> > > > > SD_RES_SUCCESS to qemu always. I think it's safe to delete cache
> > > > > objects only when sheep successfully push them, and the gateway should
> > > > > return the result code to qemu on error so that the user can know it.
> > > >
> > > > Looks good to me. Mind you cook the patch?
> > >
> > > No problem, it's a trivial change.
> >
> > For a second thought, currently pusher never fail (panic on error), so this
> > should not be the root cause.
>
> This is a different topic from this thread, but panic is a last
> resort. We should modify the code so that it returns an error.
>
Yes, we should switch-case the return of push_cache_object()
- case not found:
mark the object as create = true and repush
- default:
return error
This is on my plan, but not started yet.
Thanks
Yuan
More information about the sheepdog-users
mailing list