• E
    virsh: Fix regression with duplicated error messages · 35966308
    Eric Blake 提交于
    Commit 4f4c3b13 (v3.3) fixed an issue where performing cleanup of
    libvirt objects could sometimes lose error messages, by adding code
    to copy the libvirt error into last_error prior to cleanup paths.
    However, it caused a regression: on other paths, some errors are now
    printed twice, if libvirt still remembers in its thread-local
    storage that an error was set even after virsh cleared last_error.
    For example:
    
    $ virsh -c test:///default snapshot-delete test blah
    error: Domain snapshot not found: no domain snapshot with matching name 'blah'
    error: Domain snapshot not found: no domain snapshot with matching name 'blah'
    
    Fix things by telling libvirt to discard any thread-local errors at
    the same time virsh prints an error message (whether or not the libvirt
    error is the same as what is stored in last_error).
    
    Update the virsh-undefine testsuite (partially reverting portions of
    commit b620bdee, by removing -q, to more easily pinpoint which commands
    are causing which messages), now that there is only one error message
    instead of two.
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
    35966308
vsh.c 89.6 KB