<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<br>
Dans le code source de waptserver/server.py, <br>
l'import du module 'os' devrait être après le monkey patching...<br>
<br>
Il faudrait essayer de modifier server.py comme ceci : <br>
<br>
<tt><b>from </b>__future__ <b>import </b>absolute_import</tt><tt><br>
</tt><tt><b>import </b>sys</tt><tt><br>
</tt><tt>if __name__ == '__main__':</tt><tt><br>
</tt><tt> # as soon as possible, we must monkey patch the
library...</tt><tt><br>
</tt><tt> # monkeypatching for eventlet greenthreads</tt><tt><br>
</tt><tt> from eventlet import monkey_patch</tt><tt><br>
</tt><tt> # os=False for windows see
<a class="moz-txt-link-freetext" href="https://mail.python.org/pipermail/python-bugs-list/2012-November/186579.html">https://mail.python.org/pipermail/python-bugs-list/2012-November/186579.html</a></tt><tt><br>
</tt><font color="#ff0000"><b><tt> if
hasattr(sys,'getwindowsversion'):</tt></b></font><b><tt><br>
</tt></b><tt> # interactive debug mode on PyScripter hang
if tread is patched.</tt><tt><br>
</tt><tt> if 'rpyc' in sys.modules:</tt><tt><br>
</tt><tt> monkey_patch(os=False,thread=False)</tt><tt><br>
</tt><tt> else:</tt><tt><br>
</tt><tt> monkey_patch(os=False)</tt><tt><br>
</tt><tt> else:</tt><tt><br>
</tt><tt> monkey_patch()</tt><tt><br>
</tt><font color="#ff0000"><tt><br>
</tt><b><tt>import platform</tt></b><b><tt><br>
</tt></b><b><tt>import os</tt></b></font><tt><br>
</tt><tt><br>
</tt><tt>from waptserver.config import __version__</tt><tt><br>
</tt><tt></tt><tt>...</tt><tt><br>
</tt><br>
Quand il y a blocage, il faudrait regarder si des sockets ou des
fichiers sont ouverts en mode bloquant (ce qui ne devrait pas être
le cas avec les greenlet)<br>
Lancer en bash : <br>
<br>
<tt>pids=$(pgrep -f "server.py"); for f in /proc/$pids/fdinfo/*; do
cat $f | grep flags | grep -q -v 400[0,1,2] && ls -al
/proc/$pids/fd/$(basename $f) ; done;</tt><tt><br>
</tt><br>
<tt>lr-x------ 1 wapt www-data 64 Oct 21 17:52 /proc/6765/fd/0 ->
/dev/null</tt><tt><br>
</tt><tt>lrwx------ 1 wapt www-data 64 Oct 21 17:52 /proc/6765/fd/1
-> 'socket:[5267269]'</tt><tt><br>
</tt><tt>lr-x------ 1 wapt www-data 64 Oct 21 17:52 /proc/6765/fd/10
-> /dev/urandom</tt><tt><br>
</tt><tt>lr-x------ 1 wapt www-data 64 Oct 21 17:52 /proc/6765/fd/15
-> /dev/urandom</tt><tt><br>
</tt><tt>lrwx------ 1 wapt www-data 64 Oct 21 17:52 /proc/6765/fd/2
-> 'socket:[5267269]'</tt><tt><br>
</tt><tt>lrwx------ 1 wapt www-data 64 Oct 21 17:52 /proc/6765/fd/3
-> 'anon_inode:[eventpoll]'</tt><tt><br>
</tt><br>
Dans cette sortie, les 2 sockets bloquants sont pour stdout : <br>
<tt>ss -a | grep 5267269</tt><tt><br>
</tt><tt>u_str ESTAB 0
0 *
5267269 * 5269890</tt><tt><br>
</tt><tt>u_str ESTAB 0 0
/run/systemd/journal/stdout
5269890 * 5267269</tt><br>
<br>
<br>
<br>
<div class="moz-cite-prefix">Le 21/10/2019 à 16:06, Frederic
Garesche a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:372402162.555320.1571666819974.JavaMail.zimbra@insa-rennes.fr">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div id="zimbraEditorContainer" style="font-family: courier
new,courier,monaco,monospace,sans-serif; font-size: 13pt; color:
#000000" class="6">
<div>Re,<br>
</div>
<div><br data-mce-bogus="1">
</div>
<div>J'ai fait la modification.<br data-mce-bogus="1">
</div>
<div><br data-mce-bogus="1">
</div>
<div>À voir...<br data-mce-bogus="1">
</div>
<div><br data-mce-bogus="1">
</div>
<div><br>
</div>
<div data-marker="__SIG_PRE__">
<div>
<div style="color: #5e5e5d; font-size: 13px; font-family:
arial;"><span style="font-family: courier new, courier,
monaco, monospace, sans-serif;"><b><span style="color:
#333333;">Frédéric GARESCHÉ</span><br>
</b></span></div>
<div style="color: #5e5e5d; font-size: 13px; font-family:
arial;"><span style="color: rgb(128, 128, 128);
font-family: courier new, courier, monaco, monospace,
sans-serif;"><b>Équipe Assistance et Exploitation<br>
</b></span></div>
<div style="color: #5e5e5d; font-size: 13px; font-family:
arial;"><span style="color: rgb(128, 128, 128);
font-family: courier new, courier, monaco, monospace,
sans-serif;"><b>Direction du Système d'Information
(D.S.I)</b></span></div>
<div style="color: #5e5e5d; font-size: 13px; font-family:
arial;"><span style="color: rgb(128, 128, 128);
font-family: courier new, courier, monaco, monospace,
sans-serif;"><b>Correspondant Département EII et
laboratoire IETR<br>
</b>Tél. : +33 (0)2 23 2<strong>3 82 81</strong></span></div>
<div style="color: #5e5e5d; font-size: 13px; font-family:
arial;">
<div><span style="color: rgb(128, 128, 128); font-family:
courier new, courier, monaco, monospace, sans-serif;">20
avenue des Buttes de Coësmes</span><br>
<span style="color: rgb(128, 128, 128); font-family:
courier new, courier, monaco, monospace, sans-serif;">CS
70839 - 35 708 RENNES Cedex 7</span></div>
</div>
<div style="color: #5e5e5d; font-size: 13px; font-family:
arial;"><span style="color: #808080;"></span><br>
</div>
<a href="https://www.insa-rennes.fr" target="_blank"
moz-do-not-send="true"><img
src="http://ressources.insa-rennes.fr/images/logos/logo-INSARennes_mail.jpg"
alt=""
data-mce-src="http://ressources.insa-rennes.fr/images/logos/logo-INSARennes_mail.jpg"
moz-do-not-send="true"></a><br>
</div>
</div>
<div><br>
</div>
<hr id="zwchr" data-marker="__DIVIDER__">
<div data-marker="__HEADERS__"><b>De: </b>"Denis Cardon"
<a class="moz-txt-link-rfc2396E" href="mailto:dcardon@tranquil.it"><dcardon@tranquil.it></a><br>
<b>À: </b>"Frederic Garesche"
<a class="moz-txt-link-rfc2396E" href="mailto:Frederic.Garesche@insa-rennes.fr"><Frederic.Garesche@insa-rennes.fr></a>, "wapt"
<a class="moz-txt-link-rfc2396E" href="mailto:wapt@lists.tranquil.it"><wapt@lists.tranquil.it></a><br>
<b>Envoyé: </b>Lundi 21 Octobre 2019 15:54:29<br>
<b>Objet: </b>Re: [Wapt] Arrêt aléatoire du serveur wapt<br>
</div>
<div><br>
</div>
<div data-marker="__QUOTED_TEXT__">Bonjour Frédéric,<br>
<br>
> Debian 9.11<br>
> Wapt 1.7.4.6223<br>
> //<br>
> /1316 postes<br>
> /<br>
> /<br>
> /<br>
> /Bonjour,/<br>
> /<br>
> Nous avons régulièrement notre serveur wapt qui plante.
J'ai vu sur le<br>
> forum que je n'étais pas le seul.<br>
><br>
> En relançant le service waptserver, le serveur repart.<br>
><br>
> Comme indiqué dans l'un des posts du forum, je vous donne
le résultat de<br>
> la commande lors du problème :/<br>
> /<br>
> /<br>
> /sudo -u postgres psql wapt :/<br>
> /SELECT datname, usename , client_addr, xact_start ,
query_start<br>
> ,state_change, state, query FROM pg_stat_activity ;/<br>
><br>
> datname | usename | client_addr | xact_start<br>
> | query_start | state_change
| state<br>
> |<br>
> query<br>
>
---------+----------+-------------+-------------------------------+-------------------------------+-------------------------------+--------+---------------------------------------------------------------------------------------------------------------------<br>
> wapt | wapt | |
|<br>
> 2019-10-21 13:25:34.522094+02 | 2019-10-21
13:25:34.522444+02 | idle |<br>
> COMMIT<br>
> wapt | wapt | |
|<br>
> 2019-10-21 13:24:07.221414+02 | 2019-10-21
13:24:07.221881+02 | idle |<br>
> COMMIT<br>
> wapt | postgres | | 2019-10-21
13:25:34.715642+02 |<br>
> 2019-10-21 13:25:34.715642+02 | 2019-10-21
13:25:34.715646+02 | active |<br>
> SELECT datname, usename , client_addr, xact_start ,
query_start<br>
> ,state_change, state, query FROM pg_stat_activity ;<br>
> (3 lignes)<br>
><br>
><br>
> Autrement la commande à mattre en cron n'est pas
opérationnelle.<br>
><br>
> wget -q -O - <a class="moz-txt-link-freetext" href="http://127.0.0.1:8080/ping">http://127.0.0.1:8080/ping</a>
--no-check-certificate | grep<br>
> "WAPT Server running" || (echo Restart; systemctl restart
waptserver )<br>
><br>
> Lorsque le serveur fonctionne, on a bien un retour
immédiat. Par contre<br>
> lorsque le serveur plante, le retour ne se fait pas ou
alors je n'ai pas<br>
> attendu assez longtemps. Mais en tout cas cela n'est pas
utilisable en<br>
> l'état.<br>
> Peut-on changer le timeout de l'api ping ?<br>
<br>
Je pense que c'est plutôt sur le wget qu'il faut rajouter le
timeout:<br>
<br>
unset http_proxy ; wget -t 1 -q -O- <a class="moz-txt-link-freetext" href="http://127.0.0.1:8080/ping">http://127.0.0.1:8080/ping</a>
<br>
--no-check-certificate | grep "WAPT Server running" || (echo
Restart; <br>
systemctl restart waptserver )<br>
<br>
Vous pouvez mettre ça dans un crontab assez régulier. Mais
bon, il <br>
faudrait trouver où ça bloque... C'est assez curieux car ce
n'est pas <br>
lié directement à un pic de charge.<br>
<br>
Piste potentielle: on a pas eu de remontée de problème avec
des serveurs <br>
WAPT sous Windows... La principale différence est l'abscence
de "monkey <br>
patching"[1] par eventlet de la librairie os (à cause d'un
autre bug sur <br>
les pipe [2])... Vous pourriez éventuellement modifier la
ligne suivante <br>
dans le fichier waptserver.py :<br>
<br>
diff --git a/waptserver/server.py b/waptserver/server.py<br>
index fe75b719..ee8fbc0b 100644<br>
--- a/waptserver/server.py<br>
+++ b/c<br>
@@ -39,7 +39,7 @@ if __name__ == '__main__':<br>
else:<br>
monkey_patch(os=False)<br>
else:<br>
- monkey_patch()<br>
+ monkey_patch(os=False)<br>
<br>
<br>
from waptserver.config import __version__<br>
<br>
<br>
Cordialement,<br>
<br>
Denis<br>
<br>
[1] <br>
<a class="moz-txt-link-freetext" href="http://eventlet.net/doc/patching.html#monkeypatching-the-standard-library">http://eventlet.net/doc/patching.html#monkeypatching-the-standard-library</a><br>
[2] <a class="moz-txt-link-freetext" href="https://github.com/eventlet/eventlet/issues/483">https://github.com/eventlet/eventlet/issues/483</a><br>
<br>
><br>
> Cordialement,<br>
><br>
><br>
> *Frédéric GARESCHÉ<br>
> *<br>
> *Équipe Assistance et Exploitation<br>
> *<br>
> *Direction du Système d'Information (D.S.I)*<br>
> *Correspondant Département EII et laboratoire IETR<br>
> *Tél. : +33 (0)2 23 2*3 82 81*<br>
> 20 avenue des Buttes de Coësmes<br>
> CS 70839 - 35 708 RENNES Cedex 7<br>
><br>
> <a class="moz-txt-link-rfc2396E" href="https://www.insa-rennes.fr"><https://www.insa-rennes.fr></a><br>
><br>
><br>
> _______________________________________________<br>
> WAPT mailing list<br>
> <a class="moz-txt-link-abbreviated" href="mailto:WAPT@lists.tranquil.it">WAPT@lists.tranquil.it</a><br>
> <a class="moz-txt-link-freetext" href="http://lists.tranquil.it/listinfo/wapt">http://lists.tranquil.it/listinfo/wapt</a><br>
><br>
<br>
-- <br>
Denis Cardon<br>
Tranquil IT<br>
12 avenue Jules Verne (Bat. A)<br>
44230 Saint Sébastien sur Loire (FRANCE)<br>
tel : +33 (0) 240 975 755<br>
<a class="moz-txt-link-freetext" href="http://www.tranquil.it">http://www.tranquil.it</a><br>
<br>
Tranquil IT recrute! <a class="moz-txt-link-freetext" href="https://www.tranquil.it/nous-rejoindre/">https://www.tranquil.it/nous-rejoindre/</a><br>
Samba install wiki for Frenchies : <a class="moz-txt-link-freetext" href="https://dev.tranquil.it">https://dev.tranquil.it</a><br>
WAPT, software deployment made easy : <a class="moz-txt-link-freetext" href="https://wapt.fr">https://wapt.fr</a><br>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
WAPT mailing list
<a class="moz-txt-link-abbreviated" href="mailto:WAPT@lists.tranquil.it">WAPT@lists.tranquil.it</a>
<a class="moz-txt-link-freetext" href="http://lists.tranquil.it/listinfo/wapt">http://lists.tranquil.it/listinfo/wapt</a>
</pre>
</blockquote>
<br>
</body>
</html>