At 2023-02-09 19:43:03, "Daniel P. Berrang¨¦" <berrange@redhat.com> wrote:

>On Thu, Feb 09, 2023 at 12:39:04PM +0100, Erik Skultety wrote:
>> On Thu, Feb 09, 2023 at 10:00:27AM +0100, Martin Kletzander wrote:
>> ...
>> > > diff --git a/tools/virt-qemu-qmp-proxy b/tools/virt-qemu-qmp-proxy
>> > > index dfbaa1ff0c..2d9dd6495d 100755
>> > > --- a/tools/virt-qemu-qmp-proxy
>> > > +++ b/tools/virt-qemu-qmp-proxy
>> > > @@ -335,7 +335,7 @@ def main():
>> > >     sock.bind(args.sockpath)
>> > >     sock.listen(1)
>> > > 
>> > > -    _ = QMPProxy(conn, dom, sock, args.verbose)
>> > > +    QMPProxy(conn, dom, sock, args.verbose)
>> > > 
>> > 
>> > I don't think you can do that because the object could be garbage
>> > collected, but I'm not sure how much havoc would that cause...
>> 
>> Would it? Not advocating to accept the patch, but looking at the object it
>> passes a reference to itself to qemuMonitorEventRegister() so as long as the
>> monitor callback map exists the object should not be garbage collected. However
>> the usage of _ in this case is IMO quite unfortunate in that it's simply there
>> to really make sure Python holds one more explicit reference to the object. In
>> cases like these Python's context managers are used instead.
>
>Yep, using a context manager pattern there would have been more
>sane.
>
>
>With regards,
>Daniel
>-- 
>|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
>|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
>|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Thank you for reply. The warning I am seeing is

208/279 libvirt:syntax-check / flake8 FAIL 1.53s (exit status 2) --- command --- 13:12:22 /usr/bin/make -C /home/sjt/src/c/libvirt/build/build-aux sc_flake8 --- stdout --- make: Entering directory '/home/sjt/src/c/libvirt/build/build-aux' /home/sjt/src/c/libvirt/tools/virt-qemu-qmp-proxy:338:5: F841 local variable '_' is assigned to but never used _ = QMPProxy(conn, dom, sock, args.verbose)

the flake8 version is pretty old (3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.6.9 on Linux)