Hi,
In data venerdì 5 giugno 2015 13:47:12, Pino ha scritto:
在 2015年06月05日 00:37, Pino Toscano 写道:
> In data giovedì 4 giugno 2015 11:56:41, Pino Tsao ha scritto:
>> Disable the test case temporarily for 2 reasons:
>> 1. Because the default test disk size is 500M, while btrfs
>> convert command think it is too small to convert it(actually,
>> just add 10M or 20M more is enough).
>
> If the base test disks that are available in tests/c-api/tests are
> not enough, just write the test (creating handle, scratch disks,
> partitions, etc) in shell or perl, just like the other ones available
> in tests/btrfs.
>
> This kind of API needs at least some basic coverage.
Ok, I can do that. But actually, I think the following 2nd problem
matters more, I mean, even if I write the test, but it will still fail
,because of the tiny problem of btrfs-convert
>
>> 2. Btrfs-progs has may have a tiny bug, when execute the command
>> in guestfish, it report some error, but convert the filesystem to
>> btrfs successfully.
>
> I don't understand, are you saying that `btrfs convert` will exit with
> failure but doing the actual changes? If so, is that a known/reported
> upstream bug?
>
Yes, exactly, it exit with failure but actually got what we want:
convert fs from ext2/3/4 to btrfs successfully. While it can rollback
normally without any error. I did the test in guestfish using a img
file, and I also checked the result by examining img file outside the
guestfish, prove that the API worked.
I searched in the btrfs mail list archive, did`t see it is a known bug.
because the btrfs convert command works well in my host. It just has
that problem in supermin appliance for me for now.
Is the issue (btrfs convert doing the job but exiting with error)
happening only within the appliance of libguestfs, or also when run
in a normal installation?
* if the failures happens only within libguestfs, then we need to
figure out what's the issue, and what btrfs convert could require
from the appliance
* if it happens also when run in a normal installation, that's an
upstream bug to fix
In any case, it does not make sense to add an API which does not
provide a reliable return value. Either it returns a failure and does
nothing, or it returns success and does the requested changes.
--
Pino Toscano