[libvirt] [PATCH] check if console PTY is null before attempting to open

Shivaprasad bhat shivaprasadbhat at gmail.com
Sun May 31 16:00:33 UTC 2015


On Fri, May 29, 2015 at 6:45 PM, Michal Privoznik <mprivozn at redhat.com> wrote:
> On 27.05.2015 20:05, Shivaprasad G Bhat wrote:
>> Console devices have their pty devices assigned when the qemu is actually
>> started. The libvirt spends considerable amount of time to start the qemu if
>> the guest has multiple passthrough devices. If time is spent during the
>> hostdev preparation, someone attempts to open the console, the libvirt
>> crashes in virChrdevLockFilePath().The patch attempts to fix the crash by
>> adding a check before attempting to open.
>>
>> Signed-off-by: Shivaprasad G Bhat <sbhat at linux.vnet.ibm.com>
>> ---
>>  src/qemu/qemu_driver.c |    6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index 1233d8f..fec928f 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -16278,6 +16278,12 @@ qemuDomainOpenConsole(virDomainPtr dom,
>>          goto cleanup;
>>      }
>>
>> +    if (!(chr->source.data.file.path)) {
>> +        virReportError(VIR_ERR_OPERATION_FAILED, "%s",
>> +                       _("PTY device is not yet assigned"));
>> +        goto cleanup;
>> +    }
>> +
>
> While this will fix your use case ..
>
>>      /* handle mutually exclusive access to console devices */
>>      ret = virChrdevOpen(priv->devs,
>>                          &chr->source,
>>
>
> .. making virChardevOpen() report an error on missing path will fix
> other use cases (and other drivers). For instance, the same error you're
> seeing may happen in libxl driver or in qemuDomainOpenChannel().
>

Thanks Michal. I just sent the V2 as suggested.

Regards,
Shiva

> Michal




More information about the libvir-list mailing list