On Thu, Dec 09, 2010 at 04:09:20PM -0700, Eric Blake wrote:
On 12/01/2010 10:26 AM, Daniel P. Berrange wrote:
> +
> + if (virNetServerProgramDispatch(prog,
> + srv,
> + job->client,
> + job->msg) < 0) {
> + job->msg = NULL;
> + goto error;
> + }
Should this call be run while the virNetServerLock is still held, or
should we drop and reacquire the lock to allow other virNetServer
threads to make progress during the arbitrarily long dispatch?
Yes, the new posting does proper lock drop+reacquire now.
> +#if 0
> + reprocess:
> + for (i = 0 ; i < srv->nclients ; i++) {
> + int inactive;
Any reason to keep this block of code, since you commented it out?
Yep, I uncommented it now and made it work
> +static void
> +virNetServerProgramFormatError(virNetServerProgramPtr prog,
> + void *rerr,
> + int code,
> + const char *fmt,
> + ...)
> +{
> + va_list args;
> + char msgbuf[1024];
> + char *msg = msgbuf;
> +
> + va_start(args, fmt);
> + vsnprintf(msgbuf, sizeof msgbuf, fmt, args);
Should we do something special if the message got truncated at
sizeof(msgbuf)?
This and all similar methods have gone. We use normal
internal error reporting APIs in libvirtd now.
Daniel