<html><head></head><body><div>Hi, sorry for the late response, I was on holidays</div><div><br></div><div>El mar, 24-07-2018 a las 17:58 +0200, Marc-André Lureau escribió:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>On Mon, Jul 16, 2018 at 6:45 PM, Javier Celaya</pre><pre><<a href="mailto:javier.celaya@flexvdi.com">javier.celaya@flexvdi.com</a>> wrote:</pre><pre>The main channel reference d->main of SpiceWidget is initialized on</pre><pre>construction. However, it is used a couple of times before that moment</pre><pre>while setting the default values of some properties, like resize-guest.</pre><pre>This results in some annoying critical log messages. This commit makes</pre><pre>sure that d->main is not used in such situations if it is NULL.</pre><pre><br></pre><pre>Could you provide a reproducer of such warnings? I don't remember seeing one.</pre></blockquote><div><br></div><div>I see them each time I connect to a Spice session with spicy. Follow me:</div><div>- These warnings appear because d->main is NULL.</div><div>- d->main is set in spice-widget.c:channel_new function, when the new channel is the main channel.</div><div>- channel_new is called from spice_display_constructed with the list of channels that already exist; obviously, the main channel is one of them.</div><div>- There are SpiceDisplay properties that are set during construction, before spice_display_constructed is called, that trigger the code I am fixing with this patch. For instance, after setting "resize-guest" to its default value TRUE, update_ready is called.</div><div>So I do not see how you are not seeing these warnings. It does not seem to be a race condition, it happens always.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre><br></pre><pre>---</pre><pre> src/spice-widget.c | 4 ++--</pre><pre> 1 file changed, 2 insertions(+), 2 deletions(-)</pre><pre><br></pre><pre>diff --git a/src/spice-widget.c b/src/spice-widget.c</pre><pre>index 72f5334..5187b0c 100644</pre><pre>--- a/src/spice-widget.c</pre><pre>+++ b/src/spice-widget.c</pre><pre>@@ -255,7 +255,7 @@ static void update_ready(SpiceDisplay *display)</pre><pre>      * state here. If 'resize-guest' is false, we can assume that the</pre><pre>      * application will manage the state of the displays.</pre><pre>      */</pre><pre>-    if (d->resize_guest_enable) {</pre><pre>+    if (d->resize_guest_enable && d->main) {</pre><pre>         spice_main_channel_update_display_enabled(d->main, get_display_id(display), ready, TRUE);</pre><pre>     }</pre><pre><br></pre><pre>@@ -1247,7 +1247,7 @@ static void recalc_geometry(GtkWidget *widget)</pre><pre>                   d->area.width, d->area.height,</pre><pre>                   d->ww, d->wh, zoom);</pre><pre><br></pre><pre>-    if (d->resize_guest_enable)</pre><pre>+    if (d->resize_guest_enable && d->main)</pre><pre>         spice_main_channel_update_display(d->main, get_display_id(display),</pre><pre>                                           d->area.x, d->area.y, d->ww / zoom, d->wh / zoom, TRUE);</pre><pre><br></pre><pre>It looks like this may not give you the desired display size.</pre></blockquote><div><br></div><div>Again, the warning happens when the property "scaling" is set during SpiceDisplay construction, which calls scaling_update. You cannot call spice_main_channel_update_display with d->main == NULL, so this check is harmless.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre><br></pre><pre> }</pre><pre>--</pre><pre>2.17.0</pre><pre><br></pre><pre>_______________________________________________</pre><pre>Spice-devel mailing list</pre><pre><a href="mailto:Spice-devel@lists.freedesktop.org">Spice-devel@lists.freedesktop.org</a></pre><pre><a href="https://lists.freedesktop.org/mailman/listinfo/spice-devel">https://lists.freedesktop.org/mailman/listinfo/spice-devel</a></pre><pre><br></pre><pre><br></pre><pre><br></pre><pre><br></pre></blockquote><div><span><pre>-- <br></pre>


<br> 
<br>

<table id="sig" width="480" cellspacing="0" cellpadding="0" border-spacing="0" style="width:480px;margin:0;padding:0;"><tbody><tr><td text-align="right" style="border-right:2px solid #4a4b4a;padding-right:10px;" valign="top">
<p style="padding: 0px; text-align: right;">
              <a href="http://www.flexvdi.com" title="flexVDI"><img src="https://www.flexvdi.com/signature/logo.flexvdi.png" moz-do-not-send="true" alt="flexVDI" border="0" height="45" width="151">
              </a>
          </p>
          <p style="padding: 5px 10px 0px 0px; font-size: 15px; font-weight: bold; color: rgb(62, 93, 107); line-height: 17px; height: 17px; text-align: right;">
            <span style="float:right">Javier Celaya Alastrué</span>
          </p>
           <p style="padding: 0px 10px 0px 0px; font-size: 13px; font-style: italic; color: rgb(0, 161, 193); line-height: 17px; height: 17px; text-align: right;">Chief Technology Officer</p>
      </td>
      <td style="padding-left:18px;display:block;">
        <p style="padding: 5px 0px 0px;">
           <img src="https://flexvdi.com/signature/mail.png" moz-do-not-send="true" style="margin:1px 7px 0 0;" alt="email" align="left" height="17" width="17">
        <a href="mailto:javier.celaya@flexvdi.com" style="font-size:14px;color:#727272;line-height:17px;height:17px;">javier.celaya@flexvdi.com</a>
        </p>
        <p style="padding: 5px 0px 0px;">
          <img src="https://flexvdi.com/signature/phone.png" moz-do-not-send="true" style="margin:0 7px 0 0;" alt="Phone" align="left" height="17" width="17">
        <span style="font-size:14px;color:#727272;line-height:17px;height:17px;">+34696969959</span> 
      </p>
        <p style="padding: 5px 0px 0px;"> <img src="https://flexvdi.com/signature/skype.png" moz-do-not-send="true" style="margin:0 7px 0 0;" alt="Skype" align="left" height="17" width="17"> 
        <span style="font-size:14px;color:#727272;line-height:17px;height:17px;">j_celaya</span>
        </p>
        <p style="padding: 5px 0px 0px;">
          <img src="https://flexvdi.com/signature/legal.png" moz-do-not-send="true" style="margin:0 7px 0 0;" alt="Legal" align="left" height="17" width="17">
        <a href="https://flexvdi.com/es/legal" style="font-size:14px;font-style:italic;color:#727272;line-height:17px;height:17px;">Legal Information and Privacy Policy</a>
          </p>
      </td>
    </tr>
    <tr>
        <td colspan="2" height="300">
            <p style="font-family:Helvetica,Arial;font-size:14px;font-style:italic;color:#313131;text-align: center; font-weight: bold">Política de confidencialidad</p>
            <p style="font-family:Helvetica,Arial;font-size:10px;font-style:italic;color:#313131;text-align: justify">Este mensaje y los ficheros anexos son confidenciales dirigiéndose exclusivamente al destinatario mencionado en el encabezamiento. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y no divulgar el contenido a terceros. Los datos personales facilitados por usted o por terceros serán tratados por FLEXIBLE SOFTWARE SOLUTIONS S.L.U. con la finalidad de gestionar y mantener los contactos y relaciones que se produzcan como consecuencia de la relación que mantiene con FLEXIBLE SOFTWARE SOLUTIONS S.L.U. Normalmente, la base jurídica que legitima este tratamiento, será su consentimiento, el interés legítimo o la necesidad para gestionar una relación contractual o similar. El plazo de conservación de sus datos vendrá determinado por la relación que mantiene con nosotros. Para más información al respecto, o para ejercer sus derechos de acceso, rectificación, supresión, oposición, limitación o portabilidad, dirija una comunicación por escrito a FLEXIBLE SOFTWARE SOLUTIONS S.L.U: Avenida de Ranillas 1D, Planta 3, Oficina 3G, Zaragoza o al correo electrónico <a href="mailto:pdo@flexvdi.com" style="color:#313131">pdo@flexvdi.com</a>. En caso de considerar vulnerado su derecho a la protección de datos personales, podrá interponer una reclamación ante la Agencia Española de Protección de Datos (<a href="http://www.agpd.es" style="color:#313131">www.agpd.es</a>). </p>
        </td>
    </tr>
</tbody></table></span></div></body></html>