From mike.gabriel@das-netzwerkteam.de Tue Dec 2 17:16:40 2014 Received: (at submit) by bugs.x2go.org; 2 Dec 2014 16:16:42 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED autolearn=ham version=3.3.2 Received: from freya.das-netzwerkteam.de (freya.das-netzwerkteam.de [88.198.48.199]) by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 35C585E0DB for ; Tue, 2 Dec 2014 17:16:40 +0100 (CET) Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) by freya.das-netzwerkteam.de (Postfix) with ESMTPS id C9E081B99 for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id AAC033BA21 for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kX2zbpWmWJcB for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 7F8BD3B9D5 for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) Received: from p5B3B8969.dip0.t-ipconnect.de (p5B3B8969.dip0.t-ipconnect.de [91.59.137.105]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; Tue, 02 Dec 2014 16:16:39 +0000 Date: Tue, 02 Dec 2014 16:16:39 +0000 Message-ID: <20141202161639.Horde.WeNgtQZObw7n21V2dPwNug1@mail.das-netzwerkteam.de> From: Mike Gabriel To: submit@bugs.x2go.org Subject: incorporate nxcheckload in x2gobroker-agent User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) Accept-Language: en,de Organization: DAS-NETZWERKTEAM X-Originating-IP: 91.59.137.105 X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0 Iceweasel/32.0 Content-Type: multipart/signed; boundary="=_NVXtLGrNSUGi5IEOmfDp5g4"; protocol="application/pgp-signature"; micalg=pgp-sha1 MIME-Version: 1.0 This message is in MIME format and has been PGP signed. --=_NVXtLGrNSUGi5IEOmfDp5g4 Content-Type: multipart/mixed; boundary="=_8_eHXAcdQpFks0Kt_GlMPg8" This message is in MIME format. --=_8_eHXAcdQpFks0Kt_GlMPg8 Content-Type: text/plain; charset=UTF-8; format=flowed; DelSp=Yes Content-Disposition: inline Package: x2gobroker-agent Version: 0.0.3.0-preview Severity: wishlist In FreeNX there exists a script named nxcheckload. The functionality of this script should be woven into x2gobroker-agent.pl. THe nxcheckload script is attached to this bug report. Mike -- DAS-NETZWERKTEAM mike gabriel, herweg 7, 24357 fleckeby fon: +49 (1520) 1976 148 GnuPG Key ID 0x25771B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de freeBusy: https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb --=_8_eHXAcdQpFks0Kt_GlMPg8 Content-Type: text/x-shellscript; name=nxcheckload; charset=utf-8 Content-Disposition: attachment; size=3549; filename=nxcheckload Content-Transfer-Encoding: quoted-printable #!/bin/sh # # nxcheckload - sample script for calculation of the load for a node. # # Version 0.5 # # Under GPL # # Jonathan "Arrouan" ROUZAUD-CORNABAS (rouzaud.jonathan@gmail.com) # # Fabian Franz # # 0.5 # - Rewrote huge parts # # Change between 0.3 and 0.4 # - Add of TMP_FILE # - Add of lock file to avoid two run at once. # # Change between 0.2 and 0.3 # - SMP support. # if [ "$1" !=3D "" ] then # Connect to a remote node =09 =09# Note: This is a ssh sample, you'll need to tweak it for your setup # and setup the secret keys for yourself. =09 =09#exec $COMMAND_SSH nxcal@"$1" "$PATH_BIN/nxcheckload" =09 =09# Note: This is a netcat example. You need to have nxcheckload running t= hrough=20 =09# netpipes or netcat like follows: # node1:~$ faucet 9876 -io $PATH_BIN/nxcheckload # # Connect to another node running the load-service on some port. # =09 =09#exec $COMMAND_NETCAT "$1" 9876 # Same as loadbalance_rr_random # pick a node by random. =09 =09ping -c 1 $1 1>/dev/null 2>/dev/null=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 if [ $? -eq 0 ]=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 then=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 exec ssh x2gobroker@"$1" "/usr/bin/nxcheckload"=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 else=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 echo "1"=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 fi=20 =09#echo $RANDOM exit 0 fi # Be sure to use C numeric for calculations export LC_NUMERIC=3DC # The 3 variables of load from uptime # =D0=A1=D1=80=D0=B5=D0=B4=D0=BD=D1=8F=D1=8F =D0=BD=D0=B0=D0=B3=D1=80=D1=83= =D0=B7=D0=BA=D0=B0 =D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B LA #LOADXX=3D$(awk '{ printf("(100-%s)+(100-%s)+(100-%s)\n", $1, $2, $3); }' /= proc/loadavg | bc -q) LOADXX=3D$(awk '{ printf("((%s+%s+%s)*100/3)\n", $1, $2, $3); }' /proc/load= avg | bc -q) if [ $LOADXX -eq 0 ]; then LOADXX=3D"1" fi # Add of total memory and free memory #Mt=3D$(awk 'BEGIN { N=3D0 } /MemTotal|MemFree/ { N+=3D$2; } END { print N = }' /proc/meminfo) # NBCPU =3D number of CPU # =D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE =D1=86=D0=BF= =D1=83 NBCPU=3D$(cat /proc/cpuinfo | grep ^processor | wc -l) # CPU =3D Mhz of the CPU # =D0=9C=D0=BE=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8 =D0=BF=D1=80=D0=BE=D1=86= =D0=BE=D0=B2 #CPU=3D$(cat /proc/cpuinfo | grep "cpu MHz" | head -n1 | cut -d':' -f2 | cu= t -d' ' -f2) CPU=3D$(cat /proc/cpuinfo | grep "model name" | awk '{print $9*1000}' | cut= -d'G' -f1 | tail -n1 | bc -q) # Number of Xorg already launch and running. # =D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE =D0=B7=D0=B0= =D0=BF=D1=83=D1=89=D0=B5=D0=BD=D0=BD=D1=8B=D1=85 =D1=81=D0=B5=D1=81=D1=81= =D0=B8=D0=B9 #NUMBX=3D$(ps aux | grep Xorg | grep -v grep | wc -l) NUMBX=3D$(ps aux | grep x2goagent | grep -v grep | wc -l) if [ $NUMBX -eq 0 ]; then NUMBX=3D"1" fi # Final calcul of the number of load. # (=D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE =D0=A6=D0= =9F=D0=A3 * =D0=9C=D0=9E=D0=A9=D0=9D=D0=9E=D0=A1=D0=A2=D0=AC =D0=A6=D0=9F= =D0=A3) / =D0=9D=D0=90 =D0=A1=D0=A0=D0=95=D0=94=D0=9D=D0=AE=D0=AE =D0=9D=D0= =90=D0=93=D0=A0=D0=A3=D0=97=D0=9A=D0=A3 =D0=A1=D0=98=D0=A1=D0=A2=D0=95=D0= =9C=D0=AB / =D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE = =D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B9 #echo "100 * $LOADXX + $Mt + ( $NBCPU * $CPU ) / 100 + $UNB * 100" | bc -q = | cut -d. -f1 echo "( $NBCPU * $CPU * 100 ) / $LOADXX / $NUMBX" | bc -q --=_8_eHXAcdQpFks0Kt_GlMPg8-- --=_NVXtLGrNSUGi5IEOmfDp5g4 Content-Type: application/pgp-signature Content-Description: Digitale PGP-Signatur Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJUfeXnAAoJEJr0azAldxsxNxcP/iUEuqspLI0N4XNWw0+kHSM8 yume03+b1YTP7WKFBM7SR9AFdyjYiGkcnDszQEGi5oTbc9hp/6QUwhzHEJqmkI6O gArwI+nfrXTFTPupK3InC9qfZW88P+zVMoq3ggiBUtNjZ5NrCZ3VVjdLTNxbvsDm SOHDK65BpE788sHfohgcV4667exKL9kLgfwpgMhFGPzVS84gEK5H2lj6WCy/soU0 vFAOhKZPGj14AJLDDWHH+D/zndqNYKoe6BwqWUzWZWrofY4Eew1ZVW9yiFi13XWF T+VTr8LMKrN+GyWUgM/ILzUb9TwLeviLvtUTBq0ar5kowFg6eIGKDCHTRVourLhl DkxOebrG/dquSVbvLGzmpnNtPmf0UEodYOYWoumnAjAQuctQ9+SRcTS03iSc9hN/ dbdJgqi36tLR9txZdvyLtU+7bv/bT3K9Q9VNiAPkt2bQcjMyWFolQlIjchki0F7I gU+qAb6THid/2bGPUfk+AvVaSc4ltXXRzLHtCN1z6dzAGyAUZtR3bR+Mkwx3mPSt fahQsFlNRzj5yjZ8BYrjy1AkLa/3zoURQvRnoHb45SqunfdIJ12+O2CakIy80702 Hw/AjjDFuH2+6wlQPtnwDJMSsD9vqMyjpvGdnKTkLdXWK6fCBaqfvwb9pfH1CiLT J6JxrbE3f5tX+zD7jyg8 =4o7x -----END PGP SIGNATURE----- --=_NVXtLGrNSUGi5IEOmfDp5g4-- From savko@tophouse.ru Fri Dec 5 14:02:40 2014 Received: (at 686) by bugs.x2go.org; 5 Dec 2014 13:02:42 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,URIBL_BLOCKED autolearn=ham version=3.3.2 X-Greylist: delayed 554 seconds by postgrey-1.34 at ymir.das-netzwerkteam.de; Fri, 05 Dec 2014 14:02:40 CET Received: from m.tophouse.ru (m.tophouse.ru [178.238.31.85]) by ymir.das-netzwerkteam.de (Postfix) with ESMTP id 579065E0DD for <686@bugs.x2go.org>; Fri, 5 Dec 2014 14:02:40 +0100 (CET) Received: from localhost (localhost.localdomain [127.0.0.1]) by m.tophouse.ru (Postfix) with ESMTP id C16B838240F for <686@bugs.x2go.org>; Fri, 5 Dec 2014 15:55:10 +0300 (MSK) Received: from m.tophouse.ru ([127.0.0.1]) by localhost (m.tophouse.ru [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id zjmfZzLwyMz7 for <686@bugs.x2go.org>; Fri, 5 Dec 2014 15:55:09 +0300 (MSK) Received: from localhost (localhost.localdomain [127.0.0.1]) by m.tophouse.ru (Postfix) with ESMTP id 9022A38241D for <686@bugs.x2go.org>; Fri, 5 Dec 2014 15:55:09 +0300 (MSK) X-Virus-Scanned: amavisd-new at m.tophouse.ru Received: from m.tophouse.ru ([127.0.0.1]) by localhost (m.tophouse.ru [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id j44SePvL_ma7 for <686@bugs.x2go.org>; Fri, 5 Dec 2014 15:55:09 +0300 (MSK) Received: from m.tophouse.ru (m.tophouse.ru [178.238.31.85]) by m.tophouse.ru (Postfix) with ESMTP id 6241638241C for <686@bugs.x2go.org>; Fri, 5 Dec 2014 15:55:09 +0300 (MSK) Date: Fri, 5 Dec 2014 16:55:08 +0400 (MSK) From: Sergey Savko To: 686@bugs.x2go.org Message-ID: <1207996508.93303.1417784108791.JavaMail.zimbra@tophouse.ru> In-Reply-To: <1469206822.93276.1417784064378.JavaMail.zimbra@tophouse.ru> Subject: patch for load balancer MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_93301_747799115.1417784108789" X-Mailer: Zimbra 8.0.8_GA_6184 (ZimbraWebClient - GC38 (Linux)/8.0.8_GA_6184) Thread-Topic: patch for load balancer Thread-Index: oFkqPaL9SeqsL2BYe7BAgdvYeWCo6w== ------=_Part_93301_747799115.1417784108789 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X2go patch is to communicate with all application servers and receive rate of loading. The higher is the less loaded server. Coefficient considered of CPU clock frequency, number of cores, LA, number of users per server. We added modules Sys::Info and Sys::Load in x2gobroker-agent.pl ------=_Part_93301_747799115.1417784108789 Content-Type: text/x-patch; name=0001-X2go-patch-is-to-communicate-with-all-application-se.patch Content-Disposition: attachment; filename=0001-X2go-patch-is-to-communicate-with-all-application-se.patch Content-Transfer-Encoding: base64 RnJvbSAyODc0MDE1MmI5ZDM2MjlhZjczZDYxYTNhNzg2M2RjNTNhZTg3MGYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnZXkgU2F2a28gPHNhdmtvQHRvcGhvdXNlLnJ1PgpEYXRl OiBGcmksIDUgRGVjIDIwMTQgMTU6Mjk6NTYgKzAzMDAKU3ViamVjdDogW1BBVENIXSBYMmdvIHBh dGNoIGlzIHRvIGNvbW11bmljYXRlIHdpdGggYWxsIGFwcGxpY2F0aW9uIHNlcnZlcnMgYW5kCiBy ZWNlaXZlIHJhdGUgb2YgbG9hZGluZy4gVGhlIGhpZ2hlciBpcyB0aGUgbGVzcyBsb2FkZWQgc2Vy dmVyLiBDb2VmZmljaWVudAogY29uc2lkZXJlZCBvZiBDUFUgY2xvY2sgZnJlcXVlbmN5LCBudW1i ZXIgb2YgY29yZXMsIExBLCBudW1iZXIgb2YgdXNlcnMgcGVyCiBzZXJ2ZXIuIFdlIGFkZGVkIG1v ZHVsZXMgU3lzOjpJbmZvIGFuZCBTeXM6OkxvYWQgaW4geDJnb2Jyb2tlci1hZ2VudC5wbAoKLS0t CiBsaWIveDJnb2Jyb2tlci1hZ2VudC5wbCAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysr KysrKysrKystLS0KIHgyZ29icm9rZXIvYnJva2Vycy9iYXNlX2Jyb2tlci5weSB8IDIwICsrKysr KysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL3gyZ29icm9rZXItYWdlbnQucGwgYi9saWIveDJn b2Jyb2tlci1hZ2VudC5wbAppbmRleCBkNjcwODk1Li5kNGM2YzAzIDEwMDc1NQotLS0gYS9saWIv eDJnb2Jyb2tlci1hZ2VudC5wbAorKysgYi9saWIveDJnb2Jyb2tlci1hZ2VudC5wbApAQCAtMjQs NiArMjQsMTAgQEAgdXNlIHN0cmljdDsKIHVzZSBGaWxlOjpCYXNlbmFtZTsKIHVzZSBGaWxlOjpX aGljaDsKIAordXNlIFN5czo6SW5mbzsKK3VzZSBTeXM6OkluZm86OkNvbnN0YW50cyBxdyggOmRl dmljZV9jcHUgKTsKK3VzZSBTeXM6OkxvYWQgcXcvZ2V0bG9hZCB1cHRpbWUvOworCiBteSBAYXZh aWxhYmxlX3Rhc2tzID0gKAogICAgICJhdmFpbGFibGV0YXNrcyIsCiAgICAgImFkZGF1dGhrZXki LApAQCAtMTc3LDE0ICsxODEsMTUgQEAgaWYoICgoJG1vZGUgZXEgJ2ZpbmRidXN5c2VydmVyc19i eV9zZXNzaW9uc3RhdHMnKSB8fCAoJG1vZGUgZXEgJ2ZpbmRidXN5c2VydmVycycKIAkjICAgMS4g aWYgbm8gc2VydmVyIGlzIHJldHVybmVkLCBhbnkgb2YgdGhlIGNvbmZpZ3VyZWQgc2VydmVycyBp cyBiZXN0IHNlcnZlcgogCSMgICAyLiBpZiBzb21lIHNlcnZlcnMgYXJlIHJldHVybmVkLCBhIGJl c3Qgc2VydmVyIGlzIG9uZSB0aGF0IGlzIG5vdCByZXR1cm5lZAogCSMgICAzLiBpZiBhbGwgY29u ZmlndXJlZCBzZXJ2ZXJzIGFyZSByZXR1cm5lZCwgdGhhbiBldmFsdWF0ZSB0aGUgdXNhZ2UgdmFs dWUKLQkjICAgICAgKGUuZy4gOTA6c2VydmVyMSwgMjA6c2VydmVyMiwgMTA6c2VydmVyMyAtPiBi ZXN0IHNlcnZlciBpcyBzZXJ2ZXIzKQorCSMgICAgICAoZS5nLiAxMDpzZXJ2ZXIxLCAyMDpzZXJ2 ZXIyLCA5MDpzZXJ2ZXIzIC0+IGJlc3Qgc2VydmVyIGlzIHNlcnZlcjMpCiAKIAkjIFRoZSBhYm92 ZSBpbnRlcnByZXRhdGlvbiBoYXMgdG8gYmUgaGFuZGxlZCBieSB0aGUgYnJva2VyIGltcGxlbWVu dGF0aW9uCiAJIyBjYWxsaW5nIMK7eDJnb2Jyb2tlci1hZ2VudCBmaW5kYnVzeXNlcnZlcnPCqy4K IAogCUluaXRYMkdvVXNlcigkdWlkLCAkdWlkTnVtYmVyLCAkZ2lkTnVtYmVyLCAkaG9tZSk7CiAJ cHJpbnQgIk9LXG4iOwotCW15ICRidXN5X3NlcnZlcnMgPSBgc3VkbyAtdSAkdWlkIC0tIHgyZ29n ZXRzZXJ2ZXJzYDsKKwkjIFdlIGRvbid0IG5lZWQga25vdyBhbGwgYnVzeV9zZXJ2ZXJzLCB3ZSBu ZWVkIHRvIGtub3cgb25seSB0aGUgY3VycmVudCBzZXJ2ZXIgbG9hZAorCW15ICRidXN5X3NlcnZl cnMgPSBgL2Jpbi9zdSAtICR1aWQgLWMgXCJ4MmdvZ2V0c2VydmVyc1wiIHwgZ3JlcCBcJChob3N0 bmFtZSlgOwogCiAJbXkgJXNlcnZlcl9sb2FkID0gKCk7CiAJbXkgJG51bV9zZXNzaW9ucyA9IDA7 CkBAIC0xOTQsMTEgKzE5OSwyNyBAQCBpZiggKCgkbW9kZSBlcSAnZmluZGJ1c3lzZXJ2ZXJzX2J5 X3Nlc3Npb25zdGF0cycpIHx8ICgkbW9kZSBlcSAnZmluZGJ1c3lzZXJ2ZXJzJwogCQkkc2VydmVy X2xvYWR7JGhvc3RuYW1lfSA9ICRudW1fdXNlcnM7CiAJCSRudW1fc2Vzc2lvbnMgKz0gJG51bV91 c2VyczsKIAl9CisJICAgICAgICAjIGdpdmUgdGhlIGhpZ2hlc3QgcHJpb3JpdHkKKyAgICAgICAg aWYgKCAhICRudW1fc2Vzc2lvbnMgKSB7CisgICAgICAgICAgICBteSAkaG9zdG5hbWUgPSBgZWNo byBcJChob3N0bmFtZSlgOworICAgICAgICAgICAgJHNlcnZlcl9sb2FkeyRob3N0bmFtZX0gPSAw LjE7CisgICAgICAgICAgICAkbnVtX3Nlc3Npb25zID0gMC4xOworICAgICAgICB9CisgICAgICAg IAorICAgICAgICBteSAkTE9BRFhYID0gKChnZXRsb2FkKCkpWzBdICsgKGdldGxvYWQoKSlbMV0g KyAoZ2V0bG9hZCgpKVsyXSkqMTAwLzM7CisgICAgICAgIG15ICRMT0FEWFggPSBzcHJpbnRmKCIl LjJmIiwgJExPQURYWCk7CisgICAgICAgIAorICAgICAgICBteSAlb3B0aW9uczsKKyAgICAgICAg bXkgJGluZm8gPSBTeXM6OkluZm8tPm5ldzsKKyAgICAgICAgbXkgJGNwdSAgPSAkaW5mby0+ZGV2 aWNlKCBDUFUgPT4gJW9wdGlvbnMgKTsKKyAgICAgICAgCisgICAgICAgIG15ICRDUFUgPSAkY3B1 LT5zcGVlZDsKKyAgICAgICAgbXkgJE5CQ1BVID0gJGNwdS0+Y291bnQ7CiAKIAkjIHJlbmRlciB0 aGUgb3V0cHV0IHJlc3VsdAogCW15IEByZXN1bHQ7CiAJZm9yIG15ICRob3N0bmFtZSAoIGtleXMg JXNlcnZlcl9sb2FkICkgewotCQlteSAkYXZhaWxhYmxlID0gJHNlcnZlcl9sb2FkeyRob3N0bmFt ZX0vJG51bV9zZXNzaW9ucyoxMDA7CisJCW15ICRhdmFpbGFibGUgPSAoICROQkNQVSAqICRDUFUg KiAxMDAgKSAvICRMT0FEWFggLyAkbnVtX3Nlc3Npb25zOwogCQlwdXNoIEByZXN1bHQsIHNwcmlu dGYgJyUxJGQ6JTIkcycsICRhdmFpbGFibGUsICRob3N0bmFtZTsKIAl9CiAJcHJpbnQgam9pbigi XG4iLCBzb3J0IEByZXN1bHQpOwpkaWZmIC0tZ2l0IGEveDJnb2Jyb2tlci9icm9rZXJzL2Jhc2Vf YnJva2VyLnB5IGIveDJnb2Jyb2tlci9icm9rZXJzL2Jhc2VfYnJva2VyLnB5CmluZGV4IDg4MGUx ZDcuLmZjMGY0NGYgMTAwNjQ0Ci0tLSBhL3gyZ29icm9rZXIvYnJva2Vycy9iYXNlX2Jyb2tlci5w eQorKysgYi94MmdvYnJva2VyL2Jyb2tlcnMvYmFzZV9icm9rZXIucHkKQEAgLTEyMTgsMTAgKzEy MTgsMjAgQEAgY2xhc3MgWDJHb0Jyb2tlcihvYmplY3QpOgogCiAgICAgICAgICAgICAjIHF1ZXJ5 IHJlbW90ZSBhZ2VudCBvbiBob3cgYnVzeSBvdXIgc2VydmVycyBhcmUuLi4KICAgICAgICAgICAg IGJ1c3lfc2VydmVycyA9IE5vbmUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBz dWNjZXNzLCBidXN5X3NlcnZlcnMgPSB4MmdvYnJva2VyLmFnZW50LmZpbmRfYnVzeV9zZXJ2ZXJz KHVzZXJuYW1lPXVzZXJuYW1lLCByZW1vdGVfYWdlbnQ9cmVtb3RlX2FnZW50KQotICAgICAgICAg ICAgZXhjZXB0IHgyZ29icm9rZXIueDJnb2Jyb2tlcl9leGNlcHRpb25zLlgyR29Ccm9rZXJBZ2Vu dEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBwYXNzCisJICAgIGJ1c3lfZWFjaF9zZXJ2ZXIg PSBkaWN0KCkKKwkgICAgd2hpbGUgc2VydmVyX2xpc3QgOgorCQlyZW1vdGVfYWdlbnRfc2VydmVy ID0gc2VydmVyX2xpc3RbLTFdCisJCXJlbW90ZV9hZ2VudF9wb3J0ID0gcHJvZmlsZVt1J3NzaHBv cnQnXQorCQlyZW1vdGVfYWdlbnQgPSB7dSdob3N0bmFtZSc6IHJlbW90ZV9hZ2VudF9zZXJ2ZXIs IHUncG9ydCc6IHJlbW90ZV9hZ2VudF9wb3J0LCB9CisJCXRyeToKKwkJICAgIHN1Y2Nlc3MsIGJ1 c3lfZWFjaF9zZXJ2ZXJzID0geDJnb2Jyb2tlci5hZ2VudC5maW5kX2J1c3lfc2VydmVycyh1c2Vy bmFtZT11c2VybmFtZSwgcmVtb3RlX2FnZW50PXJlbW90ZV9hZ2VudCkKKwkJZXhjZXB0IHgyZ29i cm9rZXIueDJnb2Jyb2tlcl9leGNlcHRpb25zLlgyR29Ccm9rZXJBZ2VudEV4Y2VwdGlvbjoKKwkJ ICAgIHBhc3MKKwkJaWYgYnVzeV9zZXJ2ZXJzIGlzIE5vbmU6CisJCSAgICBidXN5X3NlcnZlcnMg PSBidXN5X2VhY2hfc2VydmVycworCQllbHNlIDoKKwkJICAgIGJ1c3lfc2VydmVycy51cGRhdGUo YnVzeV9lYWNoX3NlcnZlcnMpCisJCXNlcnZlcl9saXN0ID0gc2VydmVyX2xpc3RbMDotMV0KIAog ICAgICAgICAgICAgaWYgYnVzeV9zZXJ2ZXJzIGlzIG5vdCBOb25lOgogCkBAIC0xMjYwLDcgKzEy NzAsNyBAQCBjbGFzcyBYMkdvQnJva2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAg ICBidXN5X3NlcnZlcnNbc2VydmVyXSA9IDAKIAogICAgICAgICAgICAgICAgIGJ1c3lfc2VydmVy X2xpc3QgPSBbIChsb2FkLCBzZXJ2ZXIpIGZvciBzZXJ2ZXIsIGxvYWQgaW4gYnVzeV9zZXJ2ZXJz Lml0ZW1zKCkgXQotICAgICAgICAgICAgICAgIGJ1c3lfc2VydmVyX2xpc3Quc29ydCgpCisgICAg ICAgICAgICAgICAgYnVzeV9zZXJ2ZXJfbGlzdC5zb3J0KHJldmVyc2U9VHJ1ZSkKIAogICAgICAg ICAgICAgICAgIGxvZ2dlcl9icm9rZXIuZGVidWcoJ2Jhc2VfYnJva2VyLlgyR29Ccm9rZXIuc2Vs ZWN0X3Nlc3Npb24oKTogbG9hZCBiYWxhbmNlciBhbmFseXNpczoge3NlcnZlcl9sb2FkfScuZm9y bWF0KHNlcnZlcl9sb2FkPXVuaWNvZGUoYnVzeV9zZXJ2ZXJfbGlzdCkpKQogCi0tIAoxLjkuMQoK ------=_Part_93301_747799115.1417784108789-- From x2go@ymir.das-netzwerkteam.de Tue Mar 31 06:04:29 2015 Received: (at 686) by bugs.x2go.org; 31 Mar 2015 04:04:39 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS, URIBL_BLOCKED autolearn=unavailable version=3.3.2 Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id CDCAB5DAC8; Tue, 31 Mar 2015 06:04:29 +0200 (CEST) From: Mike Gabriel To: 686-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 686@bugs.x2go.org Subject: X2Go issue (in src:x2gobroker) has been marked as pending for release Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailer: http://snipr.com/post-receive-tag-pending Message-Id: <20150331040429.CDCAB5DAC8@ymir.das-netzwerkteam.de> Date: Tue, 31 Mar 2015 06:04:29 +0200 (CEST) tag #686 pending fixed #686 0.0.3.0 thanks Hello, X2Go issue #686 (src:x2gobroker) reported by you has been fixed in X2Go Git. You can see the changelog below, and you can check the diff of the fix at: http://code.x2go.org/gitweb?p=x2gobroker.git;a=commitdiff;h=f7e9e1e The issue will most likely be fixed in src:x2gobroker (0.0.3.0). light+love X2Go Git Admin (on behalf of the sender of this mail) --- commit f7e9e1edf659473e4917d6c0649c6a432fb73c3d Author: Mike Gabriel Date: Tue Mar 31 06:04:25 2015 +0200 add closure for #686 diff --git a/debian/changelog b/debian/changelog index d13ad72..df87b67 100644 --- a/debian/changelog +++ b/debian/changelog @@ -233,7 +233,7 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low - Makefile: Add installation rules for x2gobroker-loadchecker. - x2gobroker.1: Since systemd there are not only init scripts. Rephrasing man page. - - New feature: x2gobroker-loadchecker daemon. + - New feature: x2gobroker-loadchecker daemon. (Fixes: #686). - x2gobroker-agent.pl: Use var name server_usage instead of server_load. Reflects better what that var denotes. - agent.py: Completion of several __doc__ strings (missing @return:, From x2go@ymir.das-netzwerkteam.de Sat Jun 20 14:10:26 2015 Received: (at 686) by bugs.x2go.org; 20 Jun 2015 12:12:41 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS, URIBL_BLOCKED autolearn=ham version=3.3.2 Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id 9BA0A5DAAA; Sat, 20 Jun 2015 14:10:26 +0200 (CEST) From: X2Go Release Manager To: 686-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 686@bugs.x2go.org Subject: X2Go issue (in src:x2gobroker) has been marked as closed Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-Id: <20150620121026.9BA0A5DAAA@ymir.das-netzwerkteam.de> Date: Sat, 20 Jun 2015 14:10:26 +0200 (CEST) close #686 thanks Hello, we are very hopeful that X2Go issue #686 reported by you has been resolved in the new release (0.0.3.0) of the X2Go source project »src:x2gobroker«. You can view the complete changelog entry of src:x2gobroker (0.0.3.0) below, and you can use the following link to view all the code changes between this and the last release of src:x2gobroker. http://code.x2go.org/gitweb?p=x2gobroker.git;a=commitdiff;h=30c316e66f4173d0e3577fe85817e73f822a479e;hp=81e28ea24b269fb24559d70c462b846cf2f56edd If you feel that the issue has not been resolved satisfyingly, feel free to reopen this bug report or submit a follow-up report with further observations described based on the new released version of src:x2gobroker. Thanks a lot for contributing to X2Go!!! light+love X2Go Git Admin (on behalf of the sender of this mail) --- X2Go Component: src:x2gobroker Version: 0.0.3.0-0x2go1 Status: RELEASE Date: Sat, 20 Jun 2015 13:58:49 +0200 Fixes: 153 217 275 306 360 379 380 447 449 450 469 470 484 491 493 494 544 545 553 562 665 666 685 686 692 706 716 784 834 835 836 Changes: x2gobroker (0.0.3.0-0x2go1) RELEASED; urgency=low . [ Mike Gabriel ] * New upstream version (0.0.3.0): - Add SSH support to X2Go Session Broker. (Fixes: #153). - Move x2gobroker executable to /usr/bin. - Update x2gobroker man page. - SSH broker: Only allow context change to another user for the magic user (default: x2gobroker). - Fix logrotate script: x2gobroker-wsgi. (Fixes: #275). - Get the cookie based extra-authentication working for SSH mode. - Get the cookie based extra-authentication working for HTTP mode. - Fix output of HTTP based connectivity test. - Do not let the broker crash if an agent is not reachable. Capture X2GoBrokerAgentExceptions when pinging the remote agent. (Fixes: #306). - When calling the agent's suspend_session function, make sure to pass on the remote_agent dictionary. - Provide empty directory /etc/x2go/broker/ssl. - Re-order x2gobroker main file. Move logging further to the back to allow taking command-line options into account. - Modify default x2gobroker-sessionprofiles.conf and provide something that will work with every default setup. - New broker session profile parameter: broker-agent-query-mode. Define agent query methods per session profile. - Rename base broker's use_session_autologin to get_session_autologin. - Fix Python2'isms in three exceptions. Thanks to Mathias Ewald for spotting. - Make test_suite callable via setup.py. - Provide a test function that checks if the basic broker agent setup (SSH private/public key pair) is available. If not, no SSH broker usage will be attempted. - Let a portscan preceed the SSH ping command. This notably reduces timeout duration if the host running the queried broker agent is down). - Catch RequestHandler errors and write them to the error log channel. - Raised verbosity level to INFO for session broker utilities. - Add sanity checks to x2gobroker-pubkeyauthorizer. - Report stderr results to the broker log channel (broker.log). This allows debugging of X2Go Session Broker Agent via the X2Go Session Broker logging instance. (Fixes: #217). - Fix the ping task in x2gobroker-agent.pl, process it without checking the given username. - Fix remote agent detection in case of some agents being down. - Add utils function: matching_hostnames(): test hostname lists for matching hostnames (with/without domain name). - Add fuzzy tolerance when comparing host name lists as found in session profile configuration and as reported by broker agent. - In x2gobroker.conf: describe the manifold ways of providing a second authorized_keys file location in SSH server daemon. Thanks to Stefan Heitmüller for pointing out more recent SSH server's configuration style. - WSGI implementation: keep SCRIPT_NAME in environ, as removing it causes AssertionErrors whenever we trigger a tornado.web.HTTPError. - Add password prompt to x2gobroker-testauth. Password prompt is used if the --password option is not used. - New authentication mechanism: none. Always authenticate a user, even if password is not provided or wrong. - Ship python2.6 asyncore patch (Debian squeeze python2.6 version) in python-x2gobroker's docs folder. - Show correct environment variables in log file prelude when WSGI is used. - Fix check-credentials = false for UCCS web frontend. - Add a start page (,,It works''). - Use IP addresses in apache2 config rather than hostnames. - Add new helper tool: x2gobroker-daemon-debug. - Add man page for x2gobroker-daemon-debug. - WebUI "plain": throw explainative log errors for every 404 http error. - Fix man pages (layout issues on x2gobroker-authservice man page). - Adapt man page installation to moval of x2gobroker(-testauth) from an sbin to a bin directory (executable for any user). - Make the inifile broker backend the default backend. (Fixes: #360). - Support daemonizing of the http broker. - Default to http broker mode when daemonizing the broker. - Support daemonizing of the authservice. - Detect RUNDIR in x2gobroker-authservice and use it for the default location of the authservice socket file. - Detect RUNDIR in x2gobroker Python module and use it for the default location of the authservice socket file. - Let x2gobroker-authservice take care of tidying up its own socket file. - Provide PAM config file for Debian and RHEL separately (as they differ). - Makefile: Clean up x2gobroker-agent binary. - Be more precise in Debian et al. init scripts when checking if the service is already running. - Add JSON WebUI backend for X2Go Session Broker. - JSON WebUI backend renders data of content type "text/json". - Provide configuration alternative to having /etc/defaults/* scripts parsed in by init scripts. Make X2Go Session Broker ready for being run via systemd. - Provide symlink x2gobroker-daemon. - Provide systemd service files for x2gobroker-daemon and x2gobroker-authservice. (Fixes: #379, #380). - Add --drop-privileges feature so that x2gobroker-daemon can drop root privileges when started via systemd. Only drop privileges if x2gobroker(-daemon) is run as uidNumber 0. - Implement dynamic authid for JSON WebUI frontend. Add a generic metadata top level to the JSON output tree. - Store cookies in /var/lib/x2gobroker (path is more appropriate than previously suggested path /var/log/x2gobroker). - Handle selectsessions calls with a non-existent profile ID gracefully. - Session profiles with marker user=BROKER_USER will now auto-fill-in the broker username into the session profile's 'user' option. - Provide tool: x2gobroker-testagent. - Allow for broker clients to send in public SSH keys that the client may use for authentication to X2Go Servers. - broker agent: avoid one option system() calls in Perl. (Fixes: #784). - For user context changes: set the HOME dir of the new user correctly. - Reduce Paramiko/SSH verbosity (logging.ERROR) when connecting to remote broker agents. - Support adding remote broker agent's host keys via the x2gobroker-testagent tool. - If we received an SSH public key from a broker client, mark it as ACCEPTED after we deployed it, so that the client knows that it can its corresponding private key. - Fix https brokerage in x2gobroker-daemon-debug. - Load X2GOBROKER_DAEMON_USER's known_hosts key file before doing remote agent calls. - Fully rewrite agent.py. - Fix broker crashes when no session status is available for certain session profiles. - JSON webUI: run pre and post auth scripts also via this backend. - x2gobroker-daemon: become wrapper script, enable --mode HTTP by default. Provide some intelligence when run as daemon (killing children processes on reception of a SIGTERM, SIGINT, SIGQUIT, EXIT signal). - Rename sections for broker backends in x2gobroker.conf - Make config object of x2gobroker.conf available in authentication mechanism backends. - Fix SSH based broker client. - Fix several failing tests, adapt tests to current code base. - Introduce new global parameter for x2gobroker.conf: my-cookie-file. Allow storing the initial authentication cookie/ID in a read-protected file. - Explicitly set detach_process to True when calling daemon.DaemonContext(). Otherwise the daemons start but don't return to the cmdline prompt. (Fixes: #484). - Change agent API: all functions return a tuple where the first element denotes if the underlying agent call has been successful. - Correctly detect $HOME of the user that runs x2gobroker (including setuid calls via x2gobroker-ssh). - Enforce SSH agent query mode (instead of LOCAL mode) for SSH brokerage (as LOCAL query mode won't work due to a permission koan that has not yet been solved). - Fix interpretation of SSH_CLIENT env variable. - Make x2gobroker-agent usable/installable on non-X2Go server machines. (Fixes: #493). - Provide autologin support for session profiles that have an SSH proxy host configured. (Fixes: #494). - Fix IPv6 binding of the X2Go Session Broker daemon. If no bind port is given via the cmdline, obtain it from other means (via x2gobroker.defaults). - Rename LICENSE file to COPYING. - X2Go Broker Agent: Test if queried username exists on the system before performing the query. - Make sure bind_address and bind_port are correctly detected from /etc/default/x2gobroker-daemon and /etc/x2go/broker/defaults.cfg. - Move split_host_address() code into x2gobroker.utils. - Report to log what the broker agent replied to us. - Provide support for load-balancing to hosts that are all reachable over the same IP address, but different TCP/IP ports (e.g. docker instances or hosts behind a reverse NATed IPv4 gateway). This ended up in a rewrite of the complete selection_session() method of the base broker code. - Use physical host address and port (if provided) for contacting remote broker agent via SSH. - Update README and TODO. - Update copyright holders. Copyright is held only by people who actually contributed to the current code base. - logrotate configs: Rotated logs via "su x2gobroker adm". - Use hostname as hard-coded in server_list (from session profile configuration), don't try to strip off the domain name. - Consolidate x2gobroker.utils.split_host_address() with a test and rewrite completely. - Make sure that without configuration files, the HTTP broker listens to port 8080. - Provide legacy support for deprecated x2gobroker.conf global parameter 'check-credentials'. - Configure broker / authservice environment via .service files. - Load defaults.conf via authservices and for logger configuration, as well. - x2gobroker-authservice: Make sure socket file directory is created before trying to create the socket file itself. - Don't load defaults.conf twice. Only load it when initializing the loggers. - Provide a special PAM configuration file for SUSE systems (identical to the PAM configuration file for Debian). - defaults.conf: Mention X2GOBROKER_DEBUG not only in the global section, but also in the [daemon] and [authservice] section. - x2gobroker-testauth: Don't use hard-coded default backend. Obtain X2GOBROKER_DEFAULT_BACKEND from x2gobroker.defaults instead. - x2gobroker-testauth: Improve help text of --backend option. Display the current backend default. - x2gobroker-authservice: Restructure logging. Enable log messages for authentication requests. - Get several issues around select_session fixed via tests in the broker's backend base.py. - Add tests for broker agent queries. - Fix setting the remote agent's SSH port if the host option is of style " (:)". - During select_session: Re-add subdomain (if possible) to the hostname to make sure we can detect the host's : further down in the code. - Properly set (/var)/run/x2gobroker directory permissions when started via systemd. - Fix privilege check for the broker daemon's log directory. - Enable basic/random load-balancing for UCCS broker frontend. Make UCCS frontend aware of host session profile options of the form "host= (:). - Do a portscan on the remote's SSH port before querying a remote agent via SSH. - Don't return X2Go Servers that are actually down, currently. The X2Go Servers get probed via a short portscan on the remote's SSH port. If that portscan fails, another remote X2Go Server is chosen from the list of available server (if any). This portscanning functionality can be switched off via "default-portscan-x2goservers" in x2gobroker.conf or via "broker-portscan-x2goservers" per session profile. (Fixes: #692). - When load-balancing, switch to chosen server as remote broker agent before deploying SSH keys. - Allow resuming sessions from servers even if one offline server has left bogus in the session DB (plus unit tests). - Fix remote agent detection if one ore more X2Go Servers are offline and hostname does not match host address (plus unit test). - Allow remote agent calls via hostname or host address when using the format " ()" in the session profile. This can be useful if the is a valid address on the local network (broker <-> communication), but the host address is valid for clients (client <-> server communication). - Don't check for running/suspended session if the session profile will request a shadowing session. - Disabled broker agent calls and load-balancing for session profiles that will request shadowing sessions. - Mention "usebrokerpass" session profile option in x2gobroker-sessionprofiles.conf. - Provide desktop sharing (shadow session) example in x2gobroker-sessionprofiles.conf. - Makefile: Add installation rules for x2gobroker-loadchecker. - x2gobroker.1: Since systemd there are not only init scripts. Rephrasing man page. - New feature: x2gobroker-loadchecker daemon. (Fixes: #686). - x2gobroker-agent.pl: Use var name server_usage instead of server_load. Reflects better what that var denotes. - agent.py: Completion of several __doc__ strings (missing @return:, @rtype: fields). - X2GoBroker.check_for_sessions(): Fix check for shadow / non-shadow sessions. - x2gobroker.1: Mention x2gobroker-ssh in its man page, differentiate between the different modes (http/ssh) of the x2gobroker application. - Pre-release pyflakes cleanup. - agent.py: Capture login failures in checkload() function. - agent.py: Allow providing a custom logger instance in all functions. - LoadChecker.loadchecker(): Use load checker daemon's logger instance for logging actions taken place in agent.py. - agent.py: Make agent query mode LOCAL behave similar to agent query mode SSH if things go wrong. - agent.py: Set result to None, if SSH connection to broker agent fails. - Calculate our own MemAvailable value in x2gobroker-agent.pl. Only kernels newer than v3.14 offer the MemAvailable: field in /proc/meminfo. - x2gobroker-agent.pl: Fix regexp for detecting number of CPUs and CPU frequency. - x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g. QEMU hosts). - LoadChecker.loadchecker(): Report about query failures, as well, in query cycle summary. - LoadCheckerServiceHandler(): Add line breaks in per-profile output. Return nothing if the load checker service is unreachable. - agent.py: Let get_servers() return a dictionary with hostnames as keys and number of sessions as values. - Fix X2GoBroker.use_load_checker(): Obtain broker-* option via X2GoBroker.get_profile_broker(), not via X2GoBroker.get_profile(). - Various improvements / fixes for session selection via the load checker daemon. - Adapt tests to new load checker service feature. - Only check for 'load_factors' key in remote_agent dict, if agent query mode is SSH. - Fix detection of running x2gobroker-daemon process in Debian's SystemV init script. - Set default log level to "WARNING", not "DEBUG". - defaults/x2gobroker-logchecker.default: Fix copy+paste errors. - doc/README.x2goclient+broker.getting-started: Mention how to launch PyHoca-GUI in broker mode. - etc/broker/defaults.conf: Fix copy+paste errors. - etc/x2gobroker-wsgi.*.conf: Make host ACLs Apache2.4 compliant. - logrotate/x2gobroker-loadchecker: The loadchecker.log file needs to be owned by user x2gobroker. - rpm/x2gobroker-*.init: Fix copy+paste errors. - man pages: Update date. - If non-load-balanced session profiles reference a non-reachable host, hand-back the system's hostname to X2Go Client / Python X2Go. - Add security notice / disclaimer to x2gbroker.1 man page as suggested by Stefan Baur. (Fixes: #666). - Provide x2gobroker system user public keys to broker agents with SSH options--strongly restricting the key usage--now. Modify x2gobroker- pubkeyauthorizer in a way that it replaces non-option keys with the newly provided optionized/restricted pubkeys. (Fixes: #685). - etc/x2gobroker.conf: Switch over to using dynamic auth cookies by default. - X2GoBroker.get_agent_query_mode(): Immediately return overridden query mode. Avoid logging of the configured query mode. Write the overridden query mode to the logger instance instead. - Don't enforce agent query mode "SSH" for x2gobroker-ssh anymore. - If a single-host is unreachable, return the host address, not the hostname and let X2Go Client release itself, that the host is unreachable. - x2gobroker-loadchecker: Don't freeze if load information for a complete load-balanced server farm is unavailable. - x2gobroker-pubkeyauthorizer: Handle replacement of SSH pubkeys with wrong/ old SSH options. - x2gobroker-agent.pl: Add %U (uidNumber) and %G (primary gidNumber) as further possible substitutions for deriving the full path of the authorized_keys file where X2Go Broker Agent's deploys public SSH user keys to. (Fixes: #665). - agent.py: Use os.fork() instead of threading.Thread() to handle delayed executions of broker agent tasks. This assures that SSH pub keys are removed via the delauthkey broker agent task, if the SSH broker is used. (Fixes: #491). - Add run-optional-script support to SSH broker. - x2gobroker-ssh: When agent query mode is set to LOCAL, Execute x2gobroker-agent via sudo as group "X2GOBROKER_DAEMON_GROUP". (Fixes: #835). - When the x2gobroker-agent command call is shipped via $SSH_ORIGINAL_COMMAND environment var, make sure to strip-off "sh -c" from the command's beginning. - x2gobroker-agent.pl: Fix detection of X2Go's library path (x2gopath lib). - Implement "not-set" value for X2Go Client parameters. If a parameter is set to "not-set", the parameter won't be handed over to X2Go Client. (Fixes: #834, #836). - agent.py: Fix missing "task" parameter for task "ping" against a local broker agent. - Fix task ping when tested via the x2gobroker-testagent script. - Transliterate commands in session profiles to uppercase when checking if the command is supposed to launch a desktop session. * debian/control: + Provide separate bin:package for SSH brokerage: x2gobroker-ssh. + Replace LDAP support with session brokerage support in LONG_DESCRIPTION. + Fix SYNOPSIS texts. + Recommend apache2 and libapache2-mod-wsgi for x2gobroker-wsgi. + Fix position of XS-Python-Version: field. + Rework LONG_DESCRIPTION of bin:package x2gobroker-agent. Imporve line breaks, so that we now have lines that are close to 80 chars long. + Make x2gobroker-daemon a symlink and recognize HTTP mode by the executable's name. + Bump Standards: to 3.9.6. No changes needed. + Add to D (python-x2gobroker): python-urllib3. * debian/copyright: + Update file to match current status quo of upstream source files. * debian/x2gobroker-agent.dirs: + Provide empty log file directory. * debian/x2gobroker-wsgi postinst/postrm: + Make bin:package x2gobroker-wsgi compliant Debian's packaging style of Apache2.4 / Apache2.2. + On package purgal: Disable Apache2 config first and then attempt the removal of the x2gobroker user/group. + Pass $@ to our apacheconf_configure, apacheconf_remove functions to not break apache2-maintscript-helper. * debian/x2gobroker-ssh.postinst: + Assure proper file permissions, owner and group settings for x2gobroker-ssh. * debian/x2gobroker-ssh.prerm: + Drop dpkg-statoverride of /usr/bin/x2gobroker-ssh before package removal. * debian/*.postinst: + Assure that the log directory always exists (no matter what combination of packages got installed). * debian/python-x2gobroker.install: + Install defaults.conf into bin:package python-x2gobroker. * debian/source/format: + Switch to format 1.0. * rpm/*.init: + Provide initscripts that are likely to work on RHEL plus derivatives. * x2gobroker.spec: + Provide x2gobroker.spec file for building RPM packages. Inspired by the packaging work in OpenSuSE. + Split out python-x2gobroker sub-package. + Install Apache2 config symlinks to /etc/httpd (not /etc/apache2). + Make sure x2gobroker-agent wrapper gets installed into x2gobroker-agent sub-package. + Builds for EPEL-7 also have to systemd aware. + Provide separate bin:package for SSH brokerage: x2gobroker-ssh. + Adapt to building on openSUSE/SLES. + Rework Description: of bin:package x2gobroker-agent. Imporve line breaks, so that we now have lines that are close to 80 chars long. + Add x2gobroker-rpmlintrc file. + Don't package x2gobroker-daemon.1 nor x2gobroker-ssh.1 man pages twice. + On SUSE, we have /etc/apache2, not /etc/httpd. + On SUSE, we have to provide our own python-pampy package (and depend on that). In Fedora and RHEL, the same (upstream) software is named python-pam. (Fixes: #562). + For distro versions with systemd, provide /etc/x2go/broker/defaults.conf. For SysV distro versions, use /etc/defaults/* and source them via the init scripts. + No adm group on non-Debian systems by default. Using root instead on RPM based systems. + For Fedora 22 and beyond explicitly call python2 in all shebangs. + Add to BR: sudo (to have /etc/sudoers.d owned by some package). . [ Josh Lukens ] * New upstream version (0.0.3.0): - Add support for dynamic cookie based auth after initial password auth. (Fixes: #447). - Add support to run pre and post authentication scripts. (Fixes: #449). - Add auth mechanism https_get. (Fixes: #450). - Change pre and post scripts to use common codebase across frontends. (Fixes: #469). - Add ability to have script run in select session after server is selected. - Add basic support for pulling https_get authmech config from configuration file. (Fixes: #470). - Fix typos and host/port mixups in the remote_sshproxy logic. (Fixes: #544). - Make sure find_busy_servers in agent.py returns a tuple (recent API change) to not break profiles with multiple servers. (Fixes: #545). - On session resumption take profile's host list into account. Don't resume sessions the profile has not been configured for. (Fixes: #553). . [ Jason Alavaliant ] * New upstream version (0.0.3.0): - Handle spaces in broker login passwords when authservice is used. (Fixes: #706). - Don't strip off spaces from password strings. (Fixes: #716). . [ Mihai Moldovan ] * x2gobroker.spec: + Change all python-pampy references to python-pam on non-SUSE systems. + Fix %build scriptlet: add missing "done" in while; do; done shell script part. + Don't do a weird escape slash dance in sed's replace command. Simply use another separator. * debian/rules: + Try to call common-binary-indep from common-binary-arch. From unknown Fri Mar 29 11:20:49 2024 MIME-Version: 1.0 X-Mailer: MIME-tools 5.502 (Entity 5.502) X-Loop: owner@bugs.x2go.org From: owner@bugs.x2go.org (X2Go Bug Tracking System) Subject: Bug#686 closed by X2Go Release Manager (X2Go issue (in src:x2gobroker) has been marked as closed) Message-ID: References: <20150620121026.9BA0A5DAAA@ymir.das-netzwerkteam.de> X-X2go-PR-Keywords: pending X-X2go-PR-Message: they-closed 686 X-X2go-PR-Package: x2gobroker-agent X-X2go-PR-Source: x2gobroker Date: Sat, 20 Jun 2015 12:16:51 +0000 Content-Type: multipart/mixed; boundary="----------=_1434802611-18197-0" This is a multi-part message in MIME format... ------------=_1434802611-18197-0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 This is an automatic notification regarding your Bug report which was filed against the x2gobroker-agent package: #686: incorporate nxcheckload in x2gobroker-agent It has been closed by X2Go Release Manager . Their explanation is attached below along with your original report. If this explanation is unsatisfactory and you have not received a better one in a separate message then please contact X2Go Release Manager <= git-admin@x2go.org> by replying to this email. --=20 X2Go Bug Tracking System Contact owner@bugs.x2go.org with problems ------------=_1434802611-18197-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at control) by bugs.x2go.org; 20 Jun 2015 12:15:45 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS, URIBL_BLOCKED autolearn=unavailable version=3.3.2 Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id 9BA0A5DAAA; Sat, 20 Jun 2015 14:10:26 +0200 (CEST) From: X2Go Release Manager To: 686-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 686@bugs.x2go.org Subject: X2Go issue (in src:x2gobroker) has been marked as closed Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-Id: <20150620121026.9BA0A5DAAA@ymir.das-netzwerkteam.de> Date: Sat, 20 Jun 2015 14:10:26 +0200 (CEST) close #686 thanks Hello, we are very hopeful that X2Go issue #686 reported by you has been resolved in the new release (0.0.3.0) of the X2Go source project »src:x2gobroker«. You can view the complete changelog entry of src:x2gobroker (0.0.3.0) below, and you can use the following link to view all the code changes between this and the last release of src:x2gobroker. http://code.x2go.org/gitweb?p=x2gobroker.git;a=commitdiff;h=30c316e66f4173d0e3577fe85817e73f822a479e;hp=81e28ea24b269fb24559d70c462b846cf2f56edd If you feel that the issue has not been resolved satisfyingly, feel free to reopen this bug report or submit a follow-up report with further observations described based on the new released version of src:x2gobroker. Thanks a lot for contributing to X2Go!!! light+love X2Go Git Admin (on behalf of the sender of this mail) --- X2Go Component: src:x2gobroker Version: 0.0.3.0-0x2go1 Status: RELEASE Date: Sat, 20 Jun 2015 13:58:49 +0200 Fixes: 153 217 275 306 360 379 380 447 449 450 469 470 484 491 493 494 544 545 553 562 665 666 685 686 692 706 716 784 834 835 836 Changes: x2gobroker (0.0.3.0-0x2go1) RELEASED; urgency=low . [ Mike Gabriel ] * New upstream version (0.0.3.0): - Add SSH support to X2Go Session Broker. (Fixes: #153). - Move x2gobroker executable to /usr/bin. - Update x2gobroker man page. - SSH broker: Only allow context change to another user for the magic user (default: x2gobroker). - Fix logrotate script: x2gobroker-wsgi. (Fixes: #275). - Get the cookie based extra-authentication working for SSH mode. - Get the cookie based extra-authentication working for HTTP mode. - Fix output of HTTP based connectivity test. - Do not let the broker crash if an agent is not reachable. Capture X2GoBrokerAgentExceptions when pinging the remote agent. (Fixes: #306). - When calling the agent's suspend_session function, make sure to pass on the remote_agent dictionary. - Provide empty directory /etc/x2go/broker/ssl. - Re-order x2gobroker main file. Move logging further to the back to allow taking command-line options into account. - Modify default x2gobroker-sessionprofiles.conf and provide something that will work with every default setup. - New broker session profile parameter: broker-agent-query-mode. Define agent query methods per session profile. - Rename base broker's use_session_autologin to get_session_autologin. - Fix Python2'isms in three exceptions. Thanks to Mathias Ewald for spotting. - Make test_suite callable via setup.py. - Provide a test function that checks if the basic broker agent setup (SSH private/public key pair) is available. If not, no SSH broker usage will be attempted. - Let a portscan preceed the SSH ping command. This notably reduces timeout duration if the host running the queried broker agent is down). - Catch RequestHandler errors and write them to the error log channel. - Raised verbosity level to INFO for session broker utilities. - Add sanity checks to x2gobroker-pubkeyauthorizer. - Report stderr results to the broker log channel (broker.log). This allows debugging of X2Go Session Broker Agent via the X2Go Session Broker logging instance. (Fixes: #217). - Fix the ping task in x2gobroker-agent.pl, process it without checking the given username. - Fix remote agent detection in case of some agents being down. - Add utils function: matching_hostnames(): test hostname lists for matching hostnames (with/without domain name). - Add fuzzy tolerance when comparing host name lists as found in session profile configuration and as reported by broker agent. - In x2gobroker.conf: describe the manifold ways of providing a second authorized_keys file location in SSH server daemon. Thanks to Stefan Heitmüller for pointing out more recent SSH server's configuration style. - WSGI implementation: keep SCRIPT_NAME in environ, as removing it causes AssertionErrors whenever we trigger a tornado.web.HTTPError. - Add password prompt to x2gobroker-testauth. Password prompt is used if the --password option is not used. - New authentication mechanism: none. Always authenticate a user, even if password is not provided or wrong. - Ship python2.6 asyncore patch (Debian squeeze python2.6 version) in python-x2gobroker's docs folder. - Show correct environment variables in log file prelude when WSGI is used. - Fix check-credentials = false for UCCS web frontend. - Add a start page (,,It works''). - Use IP addresses in apache2 config rather than hostnames. - Add new helper tool: x2gobroker-daemon-debug. - Add man page for x2gobroker-daemon-debug. - WebUI "plain": throw explainative log errors for every 404 http error. - Fix man pages (layout issues on x2gobroker-authservice man page). - Adapt man page installation to moval of x2gobroker(-testauth) from an sbin to a bin directory (executable for any user). - Make the inifile broker backend the default backend. (Fixes: #360). - Support daemonizing of the http broker. - Default to http broker mode when daemonizing the broker. - Support daemonizing of the authservice. - Detect RUNDIR in x2gobroker-authservice and use it for the default location of the authservice socket file. - Detect RUNDIR in x2gobroker Python module and use it for the default location of the authservice socket file. - Let x2gobroker-authservice take care of tidying up its own socket file. - Provide PAM config file for Debian and RHEL separately (as they differ). - Makefile: Clean up x2gobroker-agent binary. - Be more precise in Debian et al. init scripts when checking if the service is already running. - Add JSON WebUI backend for X2Go Session Broker. - JSON WebUI backend renders data of content type "text/json". - Provide configuration alternative to having /etc/defaults/* scripts parsed in by init scripts. Make X2Go Session Broker ready for being run via systemd. - Provide symlink x2gobroker-daemon. - Provide systemd service files for x2gobroker-daemon and x2gobroker-authservice. (Fixes: #379, #380). - Add --drop-privileges feature so that x2gobroker-daemon can drop root privileges when started via systemd. Only drop privileges if x2gobroker(-daemon) is run as uidNumber 0. - Implement dynamic authid for JSON WebUI frontend. Add a generic metadata top level to the JSON output tree. - Store cookies in /var/lib/x2gobroker (path is more appropriate than previously suggested path /var/log/x2gobroker). - Handle selectsessions calls with a non-existent profile ID gracefully. - Session profiles with marker user=BROKER_USER will now auto-fill-in the broker username into the session profile's 'user' option. - Provide tool: x2gobroker-testagent. - Allow for broker clients to send in public SSH keys that the client may use for authentication to X2Go Servers. - broker agent: avoid one option system() calls in Perl. (Fixes: #784). - For user context changes: set the HOME dir of the new user correctly. - Reduce Paramiko/SSH verbosity (logging.ERROR) when connecting to remote broker agents. - Support adding remote broker agent's host keys via the x2gobroker-testagent tool. - If we received an SSH public key from a broker client, mark it as ACCEPTED after we deployed it, so that the client knows that it can its corresponding private key. - Fix https brokerage in x2gobroker-daemon-debug. - Load X2GOBROKER_DAEMON_USER's known_hosts key file before doing remote agent calls. - Fully rewrite agent.py. - Fix broker crashes when no session status is available for certain session profiles. - JSON webUI: run pre and post auth scripts also via this backend. - x2gobroker-daemon: become wrapper script, enable --mode HTTP by default. Provide some intelligence when run as daemon (killing children processes on reception of a SIGTERM, SIGINT, SIGQUIT, EXIT signal). - Rename sections for broker backends in x2gobroker.conf - Make config object of x2gobroker.conf available in authentication mechanism backends. - Fix SSH based broker client. - Fix several failing tests, adapt tests to current code base. - Introduce new global parameter for x2gobroker.conf: my-cookie-file. Allow storing the initial authentication cookie/ID in a read-protected file. - Explicitly set detach_process to True when calling daemon.DaemonContext(). Otherwise the daemons start but don't return to the cmdline prompt. (Fixes: #484). - Change agent API: all functions return a tuple where the first element denotes if the underlying agent call has been successful. - Correctly detect $HOME of the user that runs x2gobroker (including setuid calls via x2gobroker-ssh). - Enforce SSH agent query mode (instead of LOCAL mode) for SSH brokerage (as LOCAL query mode won't work due to a permission koan that has not yet been solved). - Fix interpretation of SSH_CLIENT env variable. - Make x2gobroker-agent usable/installable on non-X2Go server machines. (Fixes: #493). - Provide autologin support for session profiles that have an SSH proxy host configured. (Fixes: #494). - Fix IPv6 binding of the X2Go Session Broker daemon. If no bind port is given via the cmdline, obtain it from other means (via x2gobroker.defaults). - Rename LICENSE file to COPYING. - X2Go Broker Agent: Test if queried username exists on the system before performing the query. - Make sure bind_address and bind_port are correctly detected from /etc/default/x2gobroker-daemon and /etc/x2go/broker/defaults.cfg. - Move split_host_address() code into x2gobroker.utils. - Report to log what the broker agent replied to us. - Provide support for load-balancing to hosts that are all reachable over the same IP address, but different TCP/IP ports (e.g. docker instances or hosts behind a reverse NATed IPv4 gateway). This ended up in a rewrite of the complete selection_session() method of the base broker code. - Use physical host address and port (if provided) for contacting remote broker agent via SSH. - Update README and TODO. - Update copyright holders. Copyright is held only by people who actually contributed to the current code base. - logrotate configs: Rotated logs via "su x2gobroker adm". - Use hostname as hard-coded in server_list (from session profile configuration), don't try to strip off the domain name. - Consolidate x2gobroker.utils.split_host_address() with a test and rewrite completely. - Make sure that without configuration files, the HTTP broker listens to port 8080. - Provide legacy support for deprecated x2gobroker.conf global parameter 'check-credentials'. - Configure broker / authservice environment via .service files. - Load defaults.conf via authservices and for logger configuration, as well. - x2gobroker-authservice: Make sure socket file directory is created before trying to create the socket file itself. - Don't load defaults.conf twice. Only load it when initializing the loggers. - Provide a special PAM configuration file for SUSE systems (identical to the PAM configuration file for Debian). - defaults.conf: Mention X2GOBROKER_DEBUG not only in the global section, but also in the [daemon] and [authservice] section. - x2gobroker-testauth: Don't use hard-coded default backend. Obtain X2GOBROKER_DEFAULT_BACKEND from x2gobroker.defaults instead. - x2gobroker-testauth: Improve help text of --backend option. Display the current backend default. - x2gobroker-authservice: Restructure logging. Enable log messages for authentication requests. - Get several issues around select_session fixed via tests in the broker's backend base.py. - Add tests for broker agent queries. - Fix setting the remote agent's SSH port if the host option is of style " (:)". - During select_session: Re-add subdomain (if possible) to the hostname to make sure we can detect the host's : further down in the code. - Properly set (/var)/run/x2gobroker directory permissions when started via systemd. - Fix privilege check for the broker daemon's log directory. - Enable basic/random load-balancing for UCCS broker frontend. Make UCCS frontend aware of host session profile options of the form "host= (:). - Do a portscan on the remote's SSH port before querying a remote agent via SSH. - Don't return X2Go Servers that are actually down, currently. The X2Go Servers get probed via a short portscan on the remote's SSH port. If that portscan fails, another remote X2Go Server is chosen from the list of available server (if any). This portscanning functionality can be switched off via "default-portscan-x2goservers" in x2gobroker.conf or via "broker-portscan-x2goservers" per session profile. (Fixes: #692). - When load-balancing, switch to chosen server as remote broker agent before deploying SSH keys. - Allow resuming sessions from servers even if one offline server has left bogus in the session DB (plus unit tests). - Fix remote agent detection if one ore more X2Go Servers are offline and hostname does not match host address (plus unit test). - Allow remote agent calls via hostname or host address when using the format " ()" in the session profile. This can be useful if the is a valid address on the local network (broker <-> communication), but the host address is valid for clients (client <-> server communication). - Don't check for running/suspended session if the session profile will request a shadowing session. - Disabled broker agent calls and load-balancing for session profiles that will request shadowing sessions. - Mention "usebrokerpass" session profile option in x2gobroker-sessionprofiles.conf. - Provide desktop sharing (shadow session) example in x2gobroker-sessionprofiles.conf. - Makefile: Add installation rules for x2gobroker-loadchecker. - x2gobroker.1: Since systemd there are not only init scripts. Rephrasing man page. - New feature: x2gobroker-loadchecker daemon. (Fixes: #686). - x2gobroker-agent.pl: Use var name server_usage instead of server_load. Reflects better what that var denotes. - agent.py: Completion of several __doc__ strings (missing @return:, @rtype: fields). - X2GoBroker.check_for_sessions(): Fix check for shadow / non-shadow sessions. - x2gobroker.1: Mention x2gobroker-ssh in its man page, differentiate between the different modes (http/ssh) of the x2gobroker application. - Pre-release pyflakes cleanup. - agent.py: Capture login failures in checkload() function. - agent.py: Allow providing a custom logger instance in all functions. - LoadChecker.loadchecker(): Use load checker daemon's logger instance for logging actions taken place in agent.py. - agent.py: Make agent query mode LOCAL behave similar to agent query mode SSH if things go wrong. - agent.py: Set result to None, if SSH connection to broker agent fails. - Calculate our own MemAvailable value in x2gobroker-agent.pl. Only kernels newer than v3.14 offer the MemAvailable: field in /proc/meminfo. - x2gobroker-agent.pl: Fix regexp for detecting number of CPUs and CPU frequency. - x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g. QEMU hosts). - LoadChecker.loadchecker(): Report about query failures, as well, in query cycle summary. - LoadCheckerServiceHandler(): Add line breaks in per-profile output. Return nothing if the load checker service is unreachable. - agent.py: Let get_servers() return a dictionary with hostnames as keys and number of sessions as values. - Fix X2GoBroker.use_load_checker(): Obtain broker-* option via X2GoBroker.get_profile_broker(), not via X2GoBroker.get_profile(). - Various improvements / fixes for session selection via the load checker daemon. - Adapt tests to new load checker service feature. - Only check for 'load_factors' key in remote_agent dict, if agent query mode is SSH. - Fix detection of running x2gobroker-daemon process in Debian's SystemV init script. - Set default log level to "WARNING", not "DEBUG". - defaults/x2gobroker-logchecker.default: Fix copy+paste errors. - doc/README.x2goclient+broker.getting-started: Mention how to launch PyHoca-GUI in broker mode. - etc/broker/defaults.conf: Fix copy+paste errors. - etc/x2gobroker-wsgi.*.conf: Make host ACLs Apache2.4 compliant. - logrotate/x2gobroker-loadchecker: The loadchecker.log file needs to be owned by user x2gobroker. - rpm/x2gobroker-*.init: Fix copy+paste errors. - man pages: Update date. - If non-load-balanced session profiles reference a non-reachable host, hand-back the system's hostname to X2Go Client / Python X2Go. - Add security notice / disclaimer to x2gbroker.1 man page as suggested by Stefan Baur. (Fixes: #666). - Provide x2gobroker system user public keys to broker agents with SSH options--strongly restricting the key usage--now. Modify x2gobroker- pubkeyauthorizer in a way that it replaces non-option keys with the newly provided optionized/restricted pubkeys. (Fixes: #685). - etc/x2gobroker.conf: Switch over to using dynamic auth cookies by default. - X2GoBroker.get_agent_query_mode(): Immediately return overridden query mode. Avoid logging of the configured query mode. Write the overridden query mode to the logger instance instead. - Don't enforce agent query mode "SSH" for x2gobroker-ssh anymore. - If a single-host is unreachable, return the host address, not the hostname and let X2Go Client release itself, that the host is unreachable. - x2gobroker-loadchecker: Don't freeze if load information for a complete load-balanced server farm is unavailable. - x2gobroker-pubkeyauthorizer: Handle replacement of SSH pubkeys with wrong/ old SSH options. - x2gobroker-agent.pl: Add %U (uidNumber) and %G (primary gidNumber) as further possible substitutions for deriving the full path of the authorized_keys file where X2Go Broker Agent's deploys public SSH user keys to. (Fixes: #665). - agent.py: Use os.fork() instead of threading.Thread() to handle delayed executions of broker agent tasks. This assures that SSH pub keys are removed via the delauthkey broker agent task, if the SSH broker is used. (Fixes: #491). - Add run-optional-script support to SSH broker. - x2gobroker-ssh: When agent query mode is set to LOCAL, Execute x2gobroker-agent via sudo as group "X2GOBROKER_DAEMON_GROUP". (Fixes: #835). - When the x2gobroker-agent command call is shipped via $SSH_ORIGINAL_COMMAND environment var, make sure to strip-off "sh -c" from the command's beginning. - x2gobroker-agent.pl: Fix detection of X2Go's library path (x2gopath lib). - Implement "not-set" value for X2Go Client parameters. If a parameter is set to "not-set", the parameter won't be handed over to X2Go Client. (Fixes: #834, #836). - agent.py: Fix missing "task" parameter for task "ping" against a local broker agent. - Fix task ping when tested via the x2gobroker-testagent script. - Transliterate commands in session profiles to uppercase when checking if the command is supposed to launch a desktop session. * debian/control: + Provide separate bin:package for SSH brokerage: x2gobroker-ssh. + Replace LDAP support with session brokerage support in LONG_DESCRIPTION. + Fix SYNOPSIS texts. + Recommend apache2 and libapache2-mod-wsgi for x2gobroker-wsgi. + Fix position of XS-Python-Version: field. + Rework LONG_DESCRIPTION of bin:package x2gobroker-agent. Imporve line breaks, so that we now have lines that are close to 80 chars long. + Make x2gobroker-daemon a symlink and recognize HTTP mode by the executable's name. + Bump Standards: to 3.9.6. No changes needed. + Add to D (python-x2gobroker): python-urllib3. * debian/copyright: + Update file to match current status quo of upstream source files. * debian/x2gobroker-agent.dirs: + Provide empty log file directory. * debian/x2gobroker-wsgi postinst/postrm: + Make bin:package x2gobroker-wsgi compliant Debian's packaging style of Apache2.4 / Apache2.2. + On package purgal: Disable Apache2 config first and then attempt the removal of the x2gobroker user/group. + Pass $@ to our apacheconf_configure, apacheconf_remove functions to not break apache2-maintscript-helper. * debian/x2gobroker-ssh.postinst: + Assure proper file permissions, owner and group settings for x2gobroker-ssh. * debian/x2gobroker-ssh.prerm: + Drop dpkg-statoverride of /usr/bin/x2gobroker-ssh before package removal. * debian/*.postinst: + Assure that the log directory always exists (no matter what combination of packages got installed). * debian/python-x2gobroker.install: + Install defaults.conf into bin:package python-x2gobroker. * debian/source/format: + Switch to format 1.0. * rpm/*.init: + Provide initscripts that are likely to work on RHEL plus derivatives. * x2gobroker.spec: + Provide x2gobroker.spec file for building RPM packages. Inspired by the packaging work in OpenSuSE. + Split out python-x2gobroker sub-package. + Install Apache2 config symlinks to /etc/httpd (not /etc/apache2). + Make sure x2gobroker-agent wrapper gets installed into x2gobroker-agent sub-package. + Builds for EPEL-7 also have to systemd aware. + Provide separate bin:package for SSH brokerage: x2gobroker-ssh. + Adapt to building on openSUSE/SLES. + Rework Description: of bin:package x2gobroker-agent. Imporve line breaks, so that we now have lines that are close to 80 chars long. + Add x2gobroker-rpmlintrc file. + Don't package x2gobroker-daemon.1 nor x2gobroker-ssh.1 man pages twice. + On SUSE, we have /etc/apache2, not /etc/httpd. + On SUSE, we have to provide our own python-pampy package (and depend on that). In Fedora and RHEL, the same (upstream) software is named python-pam. (Fixes: #562). + For distro versions with systemd, provide /etc/x2go/broker/defaults.conf. For SysV distro versions, use /etc/defaults/* and source them via the init scripts. + No adm group on non-Debian systems by default. Using root instead on RPM based systems. + For Fedora 22 and beyond explicitly call python2 in all shebangs. + Add to BR: sudo (to have /etc/sudoers.d owned by some package). . [ Josh Lukens ] * New upstream version (0.0.3.0): - Add support for dynamic cookie based auth after initial password auth. (Fixes: #447). - Add support to run pre and post authentication scripts. (Fixes: #449). - Add auth mechanism https_get. (Fixes: #450). - Change pre and post scripts to use common codebase across frontends. (Fixes: #469). - Add ability to have script run in select session after server is selected. - Add basic support for pulling https_get authmech config from configuration file. (Fixes: #470). - Fix typos and host/port mixups in the remote_sshproxy logic. (Fixes: #544). - Make sure find_busy_servers in agent.py returns a tuple (recent API change) to not break profiles with multiple servers. (Fixes: #545). - On session resumption take profile's host list into account. Don't resume sessions the profile has not been configured for. (Fixes: #553). . [ Jason Alavaliant ] * New upstream version (0.0.3.0): - Handle spaces in broker login passwords when authservice is used. (Fixes: #706). - Don't strip off spaces from password strings. (Fixes: #716). . [ Mihai Moldovan ] * x2gobroker.spec: + Change all python-pampy references to python-pam on non-SUSE systems. + Fix %build scriptlet: add missing "done" in while; do; done shell script part. + Don't do a weird escape slash dance in sed's replace command. Simply use another separator. * debian/rules: + Try to call common-binary-indep from common-binary-arch. ------------=_1434802611-18197-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by bugs.x2go.org; 2 Dec 2014 16:16:42 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED autolearn=ham version=3.3.2 Received: from freya.das-netzwerkteam.de (freya.das-netzwerkteam.de [88.198.48.199]) by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 35C585E0DB for ; Tue, 2 Dec 2014 17:16:40 +0100 (CET) Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) by freya.das-netzwerkteam.de (Postfix) with ESMTPS id C9E081B99 for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id AAC033BA21 for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kX2zbpWmWJcB for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 7F8BD3B9D5 for ; Tue, 2 Dec 2014 17:16:39 +0100 (CET) Received: from p5B3B8969.dip0.t-ipconnect.de (p5B3B8969.dip0.t-ipconnect.de [91.59.137.105]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; Tue, 02 Dec 2014 16:16:39 +0000 Date: Tue, 02 Dec 2014 16:16:39 +0000 Message-ID: <20141202161639.Horde.WeNgtQZObw7n21V2dPwNug1@mail.das-netzwerkteam.de> From: Mike Gabriel To: submit@bugs.x2go.org Subject: incorporate nxcheckload in x2gobroker-agent User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) Accept-Language: en,de Organization: DAS-NETZWERKTEAM X-Originating-IP: 91.59.137.105 X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0 Iceweasel/32.0 Content-Type: multipart/signed; boundary="=_NVXtLGrNSUGi5IEOmfDp5g4"; protocol="application/pgp-signature"; micalg=pgp-sha1 MIME-Version: 1.0 This message is in MIME format and has been PGP signed. --=_NVXtLGrNSUGi5IEOmfDp5g4 Content-Type: multipart/mixed; boundary="=_8_eHXAcdQpFks0Kt_GlMPg8" This message is in MIME format. --=_8_eHXAcdQpFks0Kt_GlMPg8 Content-Type: text/plain; charset=UTF-8; format=flowed; DelSp=Yes Content-Disposition: inline Package: x2gobroker-agent Version: 0.0.3.0-preview Severity: wishlist In FreeNX there exists a script named nxcheckload. The functionality of this script should be woven into x2gobroker-agent.pl. THe nxcheckload script is attached to this bug report. Mike -- DAS-NETZWERKTEAM mike gabriel, herweg 7, 24357 fleckeby fon: +49 (1520) 1976 148 GnuPG Key ID 0x25771B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de freeBusy: https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb --=_8_eHXAcdQpFks0Kt_GlMPg8 Content-Type: text/x-shellscript; name=nxcheckload; charset=utf-8 Content-Disposition: attachment; size=3549; filename=nxcheckload Content-Transfer-Encoding: quoted-printable #!/bin/sh # # nxcheckload - sample script for calculation of the load for a node. # # Version 0.5 # # Under GPL # # Jonathan "Arrouan" ROUZAUD-CORNABAS (rouzaud.jonathan@gmail.com) # # Fabian Franz # # 0.5 # - Rewrote huge parts # # Change between 0.3 and 0.4 # - Add of TMP_FILE # - Add of lock file to avoid two run at once. # # Change between 0.2 and 0.3 # - SMP support. # if [ "$1" !=3D "" ] then # Connect to a remote node =09 =09# Note: This is a ssh sample, you'll need to tweak it for your setup # and setup the secret keys for yourself. =09 =09#exec $COMMAND_SSH nxcal@"$1" "$PATH_BIN/nxcheckload" =09 =09# Note: This is a netcat example. You need to have nxcheckload running t= hrough=20 =09# netpipes or netcat like follows: # node1:~$ faucet 9876 -io $PATH_BIN/nxcheckload # # Connect to another node running the load-service on some port. # =09 =09#exec $COMMAND_NETCAT "$1" 9876 # Same as loadbalance_rr_random # pick a node by random. =09 =09ping -c 1 $1 1>/dev/null 2>/dev/null=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 if [ $? -eq 0 ]=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 then=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 exec ssh x2gobroker@"$1" "/usr/bin/nxcheckload"=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 else=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 echo "1"=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20 fi=20 =09#echo $RANDOM exit 0 fi # Be sure to use C numeric for calculations export LC_NUMERIC=3DC # The 3 variables of load from uptime # =D0=A1=D1=80=D0=B5=D0=B4=D0=BD=D1=8F=D1=8F =D0=BD=D0=B0=D0=B3=D1=80=D1=83= =D0=B7=D0=BA=D0=B0 =D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B LA #LOADXX=3D$(awk '{ printf("(100-%s)+(100-%s)+(100-%s)\n", $1, $2, $3); }' /= proc/loadavg | bc -q) LOADXX=3D$(awk '{ printf("((%s+%s+%s)*100/3)\n", $1, $2, $3); }' /proc/load= avg | bc -q) if [ $LOADXX -eq 0 ]; then LOADXX=3D"1" fi # Add of total memory and free memory #Mt=3D$(awk 'BEGIN { N=3D0 } /MemTotal|MemFree/ { N+=3D$2; } END { print N = }' /proc/meminfo) # NBCPU =3D number of CPU # =D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE =D1=86=D0=BF= =D1=83 NBCPU=3D$(cat /proc/cpuinfo | grep ^processor | wc -l) # CPU =3D Mhz of the CPU # =D0=9C=D0=BE=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8 =D0=BF=D1=80=D0=BE=D1=86= =D0=BE=D0=B2 #CPU=3D$(cat /proc/cpuinfo | grep "cpu MHz" | head -n1 | cut -d':' -f2 | cu= t -d' ' -f2) CPU=3D$(cat /proc/cpuinfo | grep "model name" | awk '{print $9*1000}' | cut= -d'G' -f1 | tail -n1 | bc -q) # Number of Xorg already launch and running. # =D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE =D0=B7=D0=B0= =D0=BF=D1=83=D1=89=D0=B5=D0=BD=D0=BD=D1=8B=D1=85 =D1=81=D0=B5=D1=81=D1=81= =D0=B8=D0=B9 #NUMBX=3D$(ps aux | grep Xorg | grep -v grep | wc -l) NUMBX=3D$(ps aux | grep x2goagent | grep -v grep | wc -l) if [ $NUMBX -eq 0 ]; then NUMBX=3D"1" fi # Final calcul of the number of load. # (=D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE =D0=A6=D0= =9F=D0=A3 * =D0=9C=D0=9E=D0=A9=D0=9D=D0=9E=D0=A1=D0=A2=D0=AC =D0=A6=D0=9F= =D0=A3) / =D0=9D=D0=90 =D0=A1=D0=A0=D0=95=D0=94=D0=9D=D0=AE=D0=AE =D0=9D=D0= =90=D0=93=D0=A0=D0=A3=D0=97=D0=9A=D0=A3 =D0=A1=D0=98=D0=A1=D0=A2=D0=95=D0= =9C=D0=AB / =D0=9A=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE = =D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B9 #echo "100 * $LOADXX + $Mt + ( $NBCPU * $CPU ) / 100 + $UNB * 100" | bc -q = | cut -d. -f1 echo "( $NBCPU * $CPU * 100 ) / $LOADXX / $NUMBX" | bc -q --=_8_eHXAcdQpFks0Kt_GlMPg8-- --=_NVXtLGrNSUGi5IEOmfDp5g4 Content-Type: application/pgp-signature Content-Description: Digitale PGP-Signatur Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJUfeXnAAoJEJr0azAldxsxNxcP/iUEuqspLI0N4XNWw0+kHSM8 yume03+b1YTP7WKFBM7SR9AFdyjYiGkcnDszQEGi5oTbc9hp/6QUwhzHEJqmkI6O gArwI+nfrXTFTPupK3InC9qfZW88P+zVMoq3ggiBUtNjZ5NrCZ3VVjdLTNxbvsDm SOHDK65BpE788sHfohgcV4667exKL9kLgfwpgMhFGPzVS84gEK5H2lj6WCy/soU0 vFAOhKZPGj14AJLDDWHH+D/zndqNYKoe6BwqWUzWZWrofY4Eew1ZVW9yiFi13XWF T+VTr8LMKrN+GyWUgM/ILzUb9TwLeviLvtUTBq0ar5kowFg6eIGKDCHTRVourLhl DkxOebrG/dquSVbvLGzmpnNtPmf0UEodYOYWoumnAjAQuctQ9+SRcTS03iSc9hN/ dbdJgqi36tLR9txZdvyLtU+7bv/bT3K9Q9VNiAPkt2bQcjMyWFolQlIjchki0F7I gU+qAb6THid/2bGPUfk+AvVaSc4ltXXRzLHtCN1z6dzAGyAUZtR3bR+Mkwx3mPSt fahQsFlNRzj5yjZ8BYrjy1AkLa/3zoURQvRnoHb45SqunfdIJ12+O2CakIy80702 Hw/AjjDFuH2+6wlQPtnwDJMSsD9vqMyjpvGdnKTkLdXWK6fCBaqfvwb9pfH1CiLT J6JxrbE3f5tX+zD7jyg8 =4o7x -----END PGP SIGNATURE----- --=_NVXtLGrNSUGi5IEOmfDp5g4-- ------------=_1434802611-18197-0-- From unknown Fri Mar 29 11:20:49 2024 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@bugs.x2go.org From: Debbugs Internal Request Subject: Internal Control Message-Id: Bug archived. Date: So, 19 Jul 2015 05:24:02 +0000 User-Agent: Fakemail v42.6.9 # A New Hope # A long time ago, in a galaxy far, far away # something happened. # # Magically this resulted in the following # action being taken, but this fake control # message doesn't tell you why it happened # # The action: # Bug archived. thanks # This fakemail brought to you by your local debbugs # administrator