I believe the bug lies in libguestfs.
Taking out the commands being sent to QEMU and using qemu-img info I can
recreate the error:
# qemu-img info
"rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00::cefc:1]\:6789:auth_supported=none"
qemu-img: Could not open
'rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00::cefc:1]\:6789:auth_supported=none':
invalid conf option :cefc:1]:6789:auth_supported: No such file or directory
When escaping the : in the v6 address (just like is done with the port's
: ) the command works as expected.
# qemu-img info
"rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00\:\:cefc\:1]\:6789:auth_supported=none"
image: json:{"driver": "raw", "file": {"pool":
"images", "image":
"CentOS-7-x86_64-GenericCloud-1901", "driver": "rbd",
"=keyvalue-pairs":
"[\"mon_host\", \"[fd00::cefc:1]:6789\",
\"auth_supported\", \"none\"]"}}
file format: raw
virtual size: 8.0G (8589934592 bytes)
disk size: unavailable
cluster_size: 4194304
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
snap snap 8.0G 1969-12-31 18:00:00 00:00:00.000
I don't really know much about C but I'm going to try to hack together a
basic fix in the code to escape the colons in v6 addresses and if I can
get it clean enough I'll submit a PR otherwise a bug report.
On 4/1/19 9:30 AM, Richard W.M. Jones wrote:
On Mon, Apr 01, 2019 at 08:45:48AM -0500, Jonathan Wright wrote:
> Unfortunately I do need to use the address explicitly as opposed to
> hostnames because the source of the data fed here is Ceph's monmap
> which returns the addresses explicitly.
>
> I've tried all the common ways to escape the : in the v6 address to
> no avail. I definitely agree that the problem looks to be it
> parsing the colons as if the port comes next and then everything
> after that is args.
>
> Should I file a bug report? There doesn't seem to be any way to
> prevent the : from getting parsed incorrectly.
Is it a bug in qemu? Anyway yes if it's a bug please file
a bug report about it.
Rich.
> On 3/30/19 2:50 AM, Richard W.M. Jones wrote:
>> On Fri, Mar 29, 2019 at 06:17:17PM -0500, Jonathan Wright wrote:
>>> I have scoured the web and can't find anything on the topic: Is IPv6
>>> supported for remote image targets?
>> It definitely should work, although I don't know if anyone has tried
>> using the address explicitly (rather than a hostname which resolves to
>> an AAAA record).
>>
>>> For example:
>>>
>>> guestfish --format=raw --ro -a
>>> rbd://[fd00::cefc:1]:6789/images/CentOS-7-x86_64-GenericCloud-1901
>>>
>>> Does not work citing the following:
>> The important lines are these. Firstly guestfish parses the URL into
>> an actual libguestfs API call, which looks fine to me:
>>
>>> libguestfs: trace: add_drive
>>> "images/CentOS-7-x86_64-GenericCloud-1901"
"readonly:true"
>>> "format:raw" "protocol:rbd"
"server:tcp:[fd00::cefc:1]:6789"
>> This is probably where it goes wrong:
>>
>>> "/tmp/libguestfs3pGMi6/overlay1.qcow2" "qcow2" -1
"backingfile:rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00::cefc:1]\:6789:auth_supported=none"
>>> "backingformat:raw"
>>> libguestfs: command: run: \ -o
backing_file=rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00::cefc:1]\:6789:auth_supported=none,backing_fmt=raw
>>> libguestfs: command: run: \ /tmp/libguestfs3pGMi6/overlay1.qcow2
>>> qemu-img: /tmp/libguestfs3pGMi6/overlay1.qcow2: invalid conf option
>>> :cefc:1]:6789:auth_supported: No such file or directory
>>> Could not open backing image to determine size.
>> The code in libguestfs is supposed to turn the guestfs_add_drive
>> ‘servers’ parameter into a Ceph URL for qemu:
>>
>>
https://github.com/libguestfs/libguestfs/blob/f79129b8dc92470e3a5597daf53...
>>
>> and I suppose this is being done wrong somehow (I don't have a Ceph
>> server to test).
>>
>> At a guess I would say that it seems as if ':' characters must be
>> quoted somehow (backslash?) because they are also used to separate the
>> address and port number.
>>
>> Rich.
>>
> --
> Jonathan Wright
> KnownHost, LLC
>
https://www.knownhost.com
--
Jonathan Wright
KnownHost, LLC
https://www.knownhost.com