[Debian-pan-maintainers] Debian packaging: qemu-web-desktop

Emmanuel FARHI emmanuel.farhi at synchrotron-soleil.fr
Fri Apr 22 10:39:33 BST 2022


Bonjour Roland,

merci pour vos conseils qui ont permis de trouver ce qui cloche. En 
effet, le 'token' pour websockify précisait le nom de la machine, alors 
que le VNC était lancé sur la boucle locale. Selon l'ordre de la 
résolution de nom et la configuration du réseau, on pouvait du coup 
tomber sur la mauvaise IP pour le serveur. Je fais immédiatement un 
commit dans ce sens, et une release corrective.

Encore merci !

Emmanuel.

Le 20/04/2022 à 15:11, Roland Mas a écrit :
>
> Bonjour,
>
> 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 » ;-)
>
> 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)
>
> Roland.
>
> Le 20/04/2022 à 10:22, FARHI Emmanuel a écrit :
>> Bonjour Roland,
>>
>> 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.
>> Je vais continuer également mes tests de mon coté afin d'identifier 
>> ce qui cloche.
>> La machine grades-01 n'est malheureusement pas accessible depuis 
>> l'extérieur.
>>
>> Emmanuel.
>>
>> ------------------------------------------------------------------------
>> *De: *"roland mas" <roland.mas at gnurandal.com>
>> *À: *"FARHI Emmanuel" <emmanuel.farhi at synchrotron-soleil.fr>
>> *Cc: *"PICCA Frederic-Emmanuel" 
>> <frederic-emmanuel.picca at synchrotron-soleil.fr>
>> *Envoyé: *Mardi 19 Avril 2022 20:31:30
>> *Objet: *Re: Debian packaging: qemu-web-desktop
>>
>> 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).
>>
>> 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 ?
>>
>> En tout cas, j'essaierai sur d'autres environnements pour reproduire 
>> le bug.
>>
>> Roland.
>>
>> Le 19/04/2022 à 10:17, Roland Mas a écrit :
>>
>>     Bonjour,
>>
>>     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..
>>
>>     Roland.
>>
>>     Le 18/04/2022 à 13:11, FARHI Emmanuel a écrit :
>>
>>         Bonjour Roland,
>>
>>         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
>>
>>           * $config{service_port_multiple} = 0;
>>
>>         (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).
>>
>>         Avec le git upstream du projet
>>         <https://gitlab.com/soleil-data-treatment/soleil-software-projects/remote-desktop>,
>>         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
>>
>>           * TTUHIzPJ: 127.0.0.1:5901
>>
>>         Mais on obtient le message dans le browser noVNC '*[X] Failed
>>         to connect to server*'.
>>
>>         Le log de apache montre:
>>
>>         # sudo tail -200 /var/log/apache2/error.log
>>         [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
>>         [Mon Apr 18 12:43:40.366082 2022] [mpm_itk:warn] [pid 258231]
>>         Couldn't set uid/gid/priority, closing connection.
>>
>>         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
>>
>>           * https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=TTUHIzPJ
>>
>>         j'ai modifié la ligne
>>         /usr/lib/python3/dist-packages/websockify/websocketproxy.py,
>>         lignes 121-122 afin d'afficher la cause de l'erreur:
>>
>>         except Exception as e:
>>         self.log_message("Failed to connect to %s:%s: %s",
>>         self.server.target_host, self.server.target_port, e)
>>
>>         puis (idem en tant qu'utilisateur courant, root ou
>>         _qemu-web-desktop):
>>         $ 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
>>         WebSocket server settings:
>>           - Listen on :6001
>>           - Web server. Web root: /usr/share/novnc
>>           - SSL/TLS support
>>           - proxying from :6001 to targets generated by TokenFile
>>         192.168.3.225 - - [18/Apr/2022 12:26:16] 192.168.3.225:
>>         SSL/TLS (wss://) WebSocket connection
>>         192.168..3.225 - - [18/Apr/2022 12:26:16] 192.168.3.225:
>>         Path: '/?token=3SmaqaOg'
>>         192.168.3.225 - - [18/Apr/2022 12:26:16] connecting to:
>>         grades-01.synchrotron-soleil.fr:5905
>>         192.168.3.225 - - [18/Apr/2022 12:26:16] Failed to connect to
>>         grades-01.synchrotron-soleil.fr:5905: *[Errno 111] Connection
>>         refused*
>>
>>         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.
>>
>>         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):
>>
>>         # qemu-img create -f qcow2 /tmp/snap1.qcow2 10G
>>         # mkdir /tmp/websockify-target.d
>>         # FILE=/tmp/websockify-target.d/target1
>>         # dd status=none of=${FILE} << EOF
>>         target1: 127.0.0.1:5901
>>         EOF
>>         # 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
>>
>>         # 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
>>
>>         et connexion sur:
>>
>>           * https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=target1
>>             <https://grades-01.synchrotron-soleil.fr:6001/vnc..html?resize=scale&autoconnect=true&path=?token=target1>
>>
>>         marche alors sur les deux serveur GPU (mais pas a travers le
>>         service web).
>>
>>         Vous êtes plus habitué aux environnements apache/mpm_itk et
>>         je ne sais pas comment aller plus loin que mes tests ci-dessus.
>>
>>         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
>>         '$config{service_port_multiple}=0;' ? Je ferai ensuite des
>>         tests similaires sur les serveurs GPU où le système est
>>         installé (actuellement en 'multiple=1').
>>
>>         Merci d'avance, Emmanuel.
>>
>>         -- 
>>         / ___|__/\_| |   | ____|_ _| |      FARHI Emmanuel
>>         \___ \\ | |   |  _|  | || |      Div Exp/Data Reduction and
>>         Analysis Team
>>          ___) /_  _| |___| |___ | || |___   Tel : +33 (1) 69 35 96 04
>>         |____/  \/ |_____|_____|___|_____|  Saint-Aubin BP 48 - 91192
>>         GIF/YVETTE CEDEX
>>         SYNCHROTRON http://www.synchrotron-soleil.fr
>>
>>
-- 
signature
/ ___|__/\_| |   | ____|_ _| |      FARHI Emmanuel
\___ \\ | |   |  _|  | || |      Div Exp/Data Reduction and Analysis Team
  ___) /_  _| |___| |___ | || |___   Tel : +33 (1) 69 35 96 04 
<callto:+33%20%281%29%2069%2035%2096%2004>
|____/  \/ |_____|_____|___|_____|  Saint-Aubin BP 48 - 91192 GIF/YVETTE 
CEDEX
SYNCHROTRON http://www.synchrotron-soleil.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-pan-maintainers/attachments/20220422/3edd6b7c/attachment-0001.htm>


More information about the Debian-pan-maintainers mailing list