[Spice-devel] [usbredir PATCH v3] usbredir memory leak
Victor Toso
victortoso at redhat.com
Mon Oct 19 06:06:20 PDT 2015
Hi,
On Mon, Oct 19, 2015 at 02:54:41PM +0200, Hans de Goede wrote:
> p.s.
>
> One more thing, when I reproduced this myself I noticed a
> couple of other worrisome things:
>
> 1) When I stop the webcam-app inside the guest, the camera does
> not stop streaming on the client side. As if the control request
> being send from the client to stop the stream never reaches the
> webcam. Now this may very well be related, and the cause may
> be that there are multiple control requests involved and that
> the 2nd or 3th one is actually the one stopping the stream,
> and these never gets executed because of all the isoc data
> being in the pipeline and thus in the way of completing the
> first control transfer ... IOW this will likely disappear
> once the main issue is fixed
>
> 2) Likewise, and possibly more of a real issue, if I disconnect
> the webcam from the usb-devices dialog to stop remote-viewer
> from eating all my mem, the buffered memory does not seem to
> get released, and the guest does not see a disconnect until I
> close remote-viewer. This one is actually somewhat more worry
> some. I would expect either the channel to reset, or for it
> to slowly get drained over time. But after the unplug it seems
> the channel just sits there with all its isoc data buffers
> (and the disconnect packet queued after all those isoc buffers).
>
> Regards,
>
> Hans
Yes, it depends on where the memory is, actually. If I understood this
issue correctly, the memory not being freed is due the marshaller memory
pool [0] (but I could be wrong, I didn't dive into it yet)
[0] https://bugs.freedesktop.org/show_bug.cgi?id=92354
With v2 our v3 patches this should not happen anymore.. but it might be
necessary some warnings in the marshaller at least.
After addressing the main issue, I'll take a closer look to check if
this still happens.
cheers,
Victor Toso
More information about the Spice-devel
mailing list