<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Bonjour,</p>
    <p>Je me suis peut-être mal exprimé : je n'arrive pas (encore ?) à
      reproduire le bug. Fonctionnement nominal, en d'autres termes «
      chez moi ça marche » ;-)</p>
    <p>Je reprends ma question sur les IP : vous dites que les IP sont à
      127.0.0.1, mais est-ce que grades-01.synchrotron-soleil.fr se
      résout en 127.0.0.1 sur le serveur lui-même ? Ou tout du moins,
      est-ce que ça se résout en l'IP sur laquelle écoute le VNC ?
      Essayez "ss -tlpn|grep vnc" sur grades-01, puis "getent hosts
      grades-01.synchrotron-soleil.fr" pour savoir ce qui écoute sur
      quoi et vers quelle IP websockify va tenter de se connecter.
      (Commandes à lancer après démarrage de la VM)<br>
    </p>
    <p>Roland.<br>
    </p>
    <div class="moz-cite-prefix">Le 20/04/2022 à 10:22, FARHI Emmanuel a
      écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:906423720.16459969.1650442934882.JavaMail.zimbra@synchrotron-soleil.fr">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div>Bonjour Roland,<br>
        </div>
        <div><br data-mce-bogus="1">
        </div>
        <div>merci pour ces nouvelles. Le fait que vous puissiez
          reproduire le bug est déjà en soi encourageant. Les processus
          qemu et websockify/novnc sont bien en route et les IP
          (127.0.0.1 lorsque tout tourne en local) sont bonnes il me
          semble.<br data-mce-bogus="1">
        </div>
        <div>Je vais continuer également mes tests de mon coté afin
          d'identifier ce qui cloche. </div>
        <div>La machine grades-01 n'est malheureusement pas accessible
          depuis l'extérieur.</div>
        <div><br data-mce-bogus="1">
        </div>
        <div>Emmanuel.<br data-mce-bogus="1">
        </div>
        <div><br>
        </div>
        <hr id="zwchr" data-marker="__DIVIDER__">
        <div data-marker="__HEADERS__"><b>De: </b>"roland mas"
          <a class="moz-txt-link-rfc2396E" href="mailto:roland.mas@gnurandal.com"><roland.mas@gnurandal.com></a><br>
          <b>À: </b>"FARHI Emmanuel"
          <a class="moz-txt-link-rfc2396E" href="mailto:emmanuel.farhi@synchrotron-soleil.fr"><emmanuel.farhi@synchrotron-soleil.fr></a><br>
          <b>Cc: </b>"PICCA Frederic-Emmanuel"
          <a class="moz-txt-link-rfc2396E" href="mailto:frederic-emmanuel.picca@synchrotron-soleil.fr"><frederic-emmanuel.picca@synchrotron-soleil.fr></a><br>
          <b>Envoyé: </b>Mardi 19 Avril 2022 20:31:30<br>
          <b>Objet: </b>Re: Debian packaging: qemu-web-desktop<br>
        </div>
        <div><br>
        </div>
        <div data-marker="__QUOTED_TEXT__">
          <p>Voilà, le paquet 22.04.17+ds1-1 est en route vers unstable,
            avec un patch sur le script de téléchargement des images de
            VM (que je viens de soumettre sous forme de merge request).<br>
          </p>
          <p>Je l'ai installé sur un PC vierge de tout travail préalable
            (mon PC habituel est en attente d'une alimentation neuve qui
            devrait arriver dans la semaine, je travaille donc sur un
            autre en attendant). J'ai pu tester le fonctionnement
            nominal, avec service_port_multiple à 0 comme à 1. J'ai déjà
            une info pertinente : j'ai aussi les messages "Couldn't set
            uid/gid/priority, closing connection". Et " Connection
            refused" autant que "Failed to connect to server", ça me
            semble plutôt être un problème de lancement de processus.
            Est-ce que de votre côté le qemu est bien lancé, est-ce
            qu'il écoute bien sur la bonne adresse IP et le bon port ?
            Je n'arrive pas à résoudre grades-01.synchrotron-soleil.fr
            ici, est-ce que votre DNS interne est correct ?<br>
          </p>
          <p>En tout cas, j'essaierai sur d'autres environnements pour
            reproduire le bug.</p>
          <p>Roland.<br>
          </p>
          <div class="moz-cite-prefix">Le 19/04/2022 à 10:17, Roland Mas
            a écrit :<br>
          </div>
          <blockquote
            cite="mid:4e687147-6451-fa88-c8a1-8720bbd3c96b@gnurandal.com">
            <p>Bonjour,</p>
            <p>Je m'en occupe. Je vais commencer par packager la
              nouvelle version upstream, et je m'occupe de ce debug dès
              que c'est bon..</p>
            <p>Roland.<br>
            </p>
            <div class="moz-cite-prefix">Le 18/04/2022 à 13:11, FARHI
              Emmanuel a écrit :<br>
            </div>
            <blockquote
cite="mid:666948793.15629229.1650280293467.JavaMail.zimbra@synchrotron-soleil.fr">
              <div style="font-family: arial, helvetica, sans-serif;
                font-size: 12pt; color: #000000">
                <div>Bonjour Roland,<br>
                </div>
                <div><br>
                </div>
                <div>J'ai pas mal travaillé sur le projet
                  qemu-web-desktop. La principale motivation a été de
                  n'utiliser qu'un seul port de communication pour
                  websockify, avec des TokenFile. La configuration par
                  défaut utilise toujours un port noVNC (:60xx) par
                  connexion (et par port VNC :590x). Le nouveau
                  mécanisme se choisit avec l'option dans le fichier
                  /etc/qemu-web-desktop/config.pl</div>
                <ul>
                  <li><span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;">$config{service_port_multiple}   
                      = 0;</span><br>
                  </li>
                </ul>
                <div>(au lieu de 1 par défaut). Le nouveau mecanisme a
                  un seul port websockify est plus sur, car il ne
                  necessite que l'ouverture d'un port sur les réseaux
                  d'entreprise, plutot qu'une plage de ports que les IT
                  n'aiment pas (a juste titre).<br>
                </div>
                <div><br>
                </div>
                <div>Avec le git upstream du projet <a
                    class="moz-txt-link-rfc2396E"
href="https://gitlab.com/soleil-data-treatment/soleil-software-projects/remote-desktop"
                    target="_blank" moz-do-not-send="true"><https://gitlab.com/soleil-data-treatment/soleil-software-projects/remote-desktop></a>,
                  tout se passe bien au début (sudo make install, accès
                  au service, lancement de qemu, et websockify en mode
                  'daemon'). Un fichier qui fait le lien entre le Token
                  websockify (ici TTUHIzPJ) et le port est crée dans
                  /var/lib/qemu-web-desktop/snapshots/websockify-target.d/
                  avec la syntaxe </div>
                <ul>
                  <li><span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;">TTUHIzPJ:
                      127.0.0.1:5901</span><br>
                  </li>
                </ul>
                <div>Mais on obtient le message dans le browser noVNC '<strong>[X]
                    Failed to connect to server</strong>'.<br>
                </div>
                <div><br>
                </div>
                <div>Le log de apache montre:<br>
                </div>
                <div style="padding-left: 30px;"><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;"># sudo tail -200
                    /var/log/apache2/error.log</span><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;">[Mon Apr 18 12:43:40.366067
                    2022] [mpm_itk:warn] [pid 258231] (itkmpm:
                    pid=258231 uid=134, gid=106)
                    itk_post_perdir_config(): setgid(33): Operation not
                    permitted</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">[Mon Apr 18
                    12:43:40.366082 2022] [mpm_itk:warn] [pid 258231]
                    Couldn't set uid/gid/priority, closing connection.</span><br>
                </div>
                <div><br>
                </div>
                <div>Si on lance le websockify en avance a la main, on
                  obtient le message suivant lorsque l'on clique sur le
                  lien du serveur web </div>
                <ul>
                  <li><a class="moz-txt-link-freetext"
href="https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=TTUHIzPJ"
                      target="_blank" moz-do-not-send="true">https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=TTUHIzPJ</a><br>
                  </li>
                </ul>
                <div>j'ai modifié la ligne
                  /usr/lib/python3/dist-packages/websockify/websocketproxy.py,
                  lignes 121-122 afin d'afficher la cause de l'erreur:<br>
                </div>
                <div><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;">except Exception as e:</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">           
                    self.log_message("Failed to connect to %s:%s: %s",</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">                            
                    self.server.target_host, self.server.target_port, e)</span><br>
                </div>
                <div><br>
                </div>
                <div>puis (idem en tant qu'utilisateur courant, root ou
                  _qemu-web-desktop):</div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;">$ websockify --web
                    /usr/share/novnc --token-plugin=TokenFile
                    --token-source=/var/lib/qemu-web-desktop/snapshots/websockify-target.d/
--cert=/etc/apache2/certificate/apache-certificate.crt
                    --key=/etc/apache2/certificate/apache.key 6001</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">WebSocket server
                    settings:</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">  - Listen on :6001</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">  - Web server. Web
                    root: /usr/share/novnc</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">  - SSL/TLS support</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">  - proxying from
                    :6001 to targets generated by TokenFile</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">192.168.3.225 - -
                    [18/Apr/2022 12:26:16] 192.168.3.225: SSL/TLS
                    (wss://) WebSocket connection</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">192.168..3.225 - -
                    [18/Apr/2022 12:26:16] 192.168.3.225: Path:
                    '/?token=3SmaqaOg'</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">192.168.3.225 - -
                    [18/Apr/2022 12:26:16] connecting to:
                    grades-01.synchrotron-soleil.fr:5905</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">192.168.3.225 - -
                    [18/Apr/2022 12:26:16] Failed to connect to
                    grades-01.synchrotron-soleil.fr:5905: <strong>[Errno
                      111] Connection refused</strong></span><br>
                  <br>
                </div>
                <div>Cette erreur se produit sur nos deux serveur GPU
                  avec le meme système Bullseye. Par contre sur mon ordi
                  portable en Bullseye, ca marche. Il y a donc un truc
                  qui m'échappe, et qui semble indiquer un problème de
                  droits.<br>
                </div>
                <div><br>
                </div>
                <div>J'ai fait des tests à la main, qui confirment cela.
                  Un lancement tout a la main fonctionne (y compris en
                  tant que _qemu-web-desktop ou utilisateur courant):<br>
                </div>
                <div><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;"># qemu-img create -f qcow2
                    /tmp/snap1.qcow2 10G</span><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;"># mkdir
                    /tmp/websockify-target.d</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">#
                    FILE=/tmp/websockify-target.d/target1</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;"># dd status=none
                    of=${FILE} << EOF</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">target1:
                    127.0.0.1:5901</span><br>
                  <span style="font-family: courier new, courier,
                    monaco, monospace, sans-serif;">EOF</span><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;"># qemu-system-x86_64 -smp 4
                    -name
                    qemu-web-desktop_TTUHIzPJ:farhie:Debian11-Bullseye.qcow2
                    -machine pc,accel=kvm -enable-kvm -cpu host,kvm=off
                    -m 8192 -device virtio-balloon -hda /tmp/snap1.qcow2
                    -boot d -cdrom
                    /var/lib/qemu-web-desktop/machines/slax.iso -device
                    ich9-ahci,id=ahci -netdev user,id=mynet0 -device
                    virtio-net,netdev=mynet0 -usb -device usb-tablet
                    -vga qxl -boot c -fsdev
                    local,security_model=passthrough,id=fsdev0,path=/mnt
                    -device
                    virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=host_mnt
                    -fsdev
                    local,security_model=passthrough,id=fsdev1,path=/media
                    -device
                    virtio-9p-pci,id=fs1,fsdev=fsdev1,mount_tag=host_media
                    -vnc 127.0.0.1:1</span><br>
                </div>
                <div style="padding-left: 30px;"><br>
                </div>
                <div style="padding-left: 30px;"><span
                    style="font-family: courier new, courier, monaco,
                    monospace, sans-serif;"># websockify --web
                    /usr/share/novnc --token-plugin=TokenFile
                    --token-source=/tmp/websockify-target.d
                    --record=/tmp/websocket.log
                    --cert=/etc/apache2/certificate/apache-certificate.crt
                    --key=/etc/apache2/certificate/apache.key 6001</span><br>
                </div>
                <div><br>
                </div>
                <div>et connexion sur:<br>
                </div>
                <ul>
                  <li><a
href="https://grades-01.synchrotron-soleil.fr:6001/vnc..html?resize=scale&autoconnect=true&path=?token=target1"
                      target="_blank" moz-do-not-send="true">https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=target1</a><br>
                  </li>
                </ul>
                <div>marche alors sur les deux serveur GPU (mais pas a
                  travers le service web).<br>
                </div>
                <div><br>
                </div>
                <div>Vous êtes plus habitué aux environnements
                  apache/mpm_itk et je ne sais pas comment aller plus
                  loin que mes tests ci-dessus. <br>
                </div>
                <div><br>
                </div>
                <div>Pourriez-vous consacrer quelques heures sur le
                  nouveau contrat de 100h (déjà entamé) pour mettre a
                  jour l'upstream avec la version 22.04.17, et faire des
                  tests d'installation sur un environnement vierge avec
                  l'option '<span style="font-family: courier new,
                    courier, monaco, monospace, sans-serif;">$config{service_port_multiple}=0;</span>'
                  ? Je ferai ensuite des tests similaires sur les
                  serveurs GPU où le système est installé (actuellement
                  en 'multiple=1').<br>
                </div>
                <div><br>
                </div>
                <div>Merci d'avance, Emmanuel.<br>
                </div>
                <div><br>
                </div>
                <div>-- <br>
                </div>
                <div>
                  <div><span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;"><span
                        style="color: rgb(0, 0, 255);">/ ___|<span
                          style="color: rgb(255, 153, 0);">__/\_</span>|
                        |   | ____|_ _| |</span>      FARHI Emmanuel</span><br>
                    <span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;"><span
                        style="color: rgb(0, 0, 255);">\___ \<span
                          style="color: rgb(255, 153, 0);">\    </span>|
                        |   |  _|  | || |</span>      Div Exp/Data
                      Reduction and Analysis Team</span><br>
                    <span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;"><span
                        style="color: rgb(0, 0, 255);"> ___) <span
                          style="color: rgb(255, 153, 0);">/_  _</span>|
                        |___| |___ | || |___</span>   Tel : +33 (1) 69
                      35 96 04</span><br>
                    <span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;"><span
                        style="color: rgb(0, 0, 255);">|____/ <span
                          style="color: rgb(255, 153, 0);"> \/</span>
                        |_____|_____|___|_____|</span>  Saint-Aubin BP
                      48 - 91192 GIF/YVETTE CEDEX</span><br>
                    <span style="font-family: courier new, courier,
                      monaco, monospace, sans-serif;">                  
                          <span style="color: rgb(0, 0, 255);">SYNCHROTRON</span>
                       <a class="moz-txt-link-freetext"
                        href="http://www.synchrotron-soleil.fr"
                        target="_blank" moz-do-not-send="true">http://www.synchrotron-soleil.fr</a></span><br
                      data-mce-bogus="1">
                  </div>
                </div>
              </div>
            </blockquote>
          </blockquote>
          <br>
        </div>
      </div>
    </blockquote>
  </body>
</html>