cURL / Mailing Lists / curl-library / Single Mail

curl-library

--enable-threaded-resolver "breaks" qemu's curl driver

From: Richard W.M. Jones <rjones_at_redhat.com>
Date: Fri, 7 Jun 2013 11:07:02 +0100

[I'm tracking this bug here:
https://bugzilla.redhat.com/show_bug.cgi?id=971790]

qemu (a popular hypervisor) has a feature where it can access disks
over HTTP etc. It uses curl for this:

  http://git.qemu.org/?p=qemu.git;a=blob;f=block/curl.c;h=b8935fd9916363640df142d303b93756c8acf167;hb=HEAD

For a long time we've not been able to use Fedora's curl with qemu,
but upstream curl from git just worked. A simple way to test this is
to run:

  qemu-io http://libguestfs.org/index.html -c 'read -v 0 512'

It will either print something or hang forever.

Today I actually tried to look into why this happens, and it turns out
to be due to Fedora using:

  ./configure --enable-threaded-resolver

Indeed, when I add the same option to curl from git, then upstream
curl is also broken in the same way.

It could be that qemu uses curl in the "wrong way" somehow. Also qemu
uses hand-implemented coroutines (using getcontext/setcontext) and
perhaps these interfere somehow with curl.

Has anyone got any ideas?

Should Linux be using --enable-threaded-resolver? (I notice it is not
the default).

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2013-06-07