All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures
@ 2024-04-18 11:34 Harish.Sadineni
  2024-04-18 11:34 ` [PATCH 2/2] gcc: Oe-selftest failure analysis - allowing multiple ssh sessions Harish.Sadineni
  2024-04-18 11:38 ` [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures Sadineni, Harish
  0 siblings, 2 replies; 4+ messages in thread
From: Harish.Sadineni @ 2024-04-18 11:34 UTC (permalink / raw)
  To: openembedded-core
  Cc: Randy.MacLeod, Naveen.Gowda, Sundeep.Kokkonda,
	Shivaprasad.Moodalappa

From: Harish Sadineni <Harish.Sadineni@windriver.com>

while runnig oe-selftest for gcc, testcases that need to be run on qemu are not running due to below failures.
- Executing on ssh: mkdir -p /tmp/runtest.3549641   (timeout = 300)
   spawn [open ...]
   Host key verification failed.
   ERROR: Couldn't create remote directory /tmp/runtest.3549641 on ssh
- kex_exchange_identification: read: Connection reset by peer^M
   Connection reset by 192.168.7.2 port 22^M
   ERROR: Couldn't create remote directory /tmp/runtest.3549814 on ssh

Host key verification failure is happening when ssh board config file name is defined as "ssh.exp" and there are multiple ssh.exp files generated during the build and a wrong ssh config was taken. To resolve this changed the board config file name to "linux-ssh.exp" which ensures correct ssh settings are used.

To resolve kex exchange identification error increased the MaxStartups.

Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
 meta/lib/oeqa/selftest/cases/gcc.py                   | 2 +-
 meta/recipes-connectivity/openssh/openssh/sshd_config | 2 +-
 meta/recipes-devtools/gcc/gcc-testsuite.inc           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/gcc.py b/meta/lib/oeqa/selftest/cases/gcc.py
index 89360178fe..4cc0894d42 100644
--- a/meta/lib/oeqa/selftest/cases/gcc.py
+++ b/meta/lib/oeqa/selftest/cases/gcc.py
@@ -37,7 +37,7 @@ class GccSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
         features = []
         features.append('MAKE_CHECK_TARGETS = "{0}"'.format(" ".join(targets)))
         if ssh is not None:
-            features.append('TOOLCHAIN_TEST_TARGET = "ssh"')
+            features.append('TOOLCHAIN_TEST_TARGET = "linux-ssh"')
             features.append('TOOLCHAIN_TEST_HOST = "{0}"'.format(ssh))
             features.append('TOOLCHAIN_TEST_HOST_USER = "root"')
             features.append('TOOLCHAIN_TEST_HOST_PORT = "22"')
diff --git a/meta/recipes-connectivity/openssh/openssh/sshd_config b/meta/recipes-connectivity/openssh/openssh/sshd_config
index e9eaf93157..b9357ef6c5 100644
--- a/meta/recipes-connectivity/openssh/openssh/sshd_config
+++ b/meta/recipes-connectivity/openssh/openssh/sshd_config
@@ -100,7 +100,7 @@ ClientAliveInterval 15
 ClientAliveCountMax 4
 #UseDNS no
 #PidFile /var/run/sshd.pid
-#MaxStartups 10:30:100
+MaxStartups 75:30:100
 #PermitTunnel no
 #ChrootDirectory none
 #VersionAddendum none
diff --git a/meta/recipes-devtools/gcc/gcc-testsuite.inc b/meta/recipes-devtools/gcc/gcc-testsuite.inc
index f16d471478..0a950b6c9e 100644
--- a/meta/recipes-devtools/gcc/gcc-testsuite.inc
+++ b/meta/recipes-devtools/gcc/gcc-testsuite.inc
@@ -101,7 +101,7 @@ python check_prepare() {
         f.write(generate_qemu_linux_user_config(d))
 
     # write out target ssh board config
-    with open(os.path.join(dejagnudir, "ssh.exp"), "w") as f:
+    with open(os.path.join(dejagnudir, "linux-ssh.exp"), "w") as f:
         f.write(generate_remote_ssh_linux_config(d))
 
     # generate site.exp to provide boards
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] gcc: Oe-selftest failure analysis - allowing multiple ssh sessions
  2024-04-18 11:34 [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures Harish.Sadineni
@ 2024-04-18 11:34 ` Harish.Sadineni
  2024-04-18 11:40   ` Sadineni, Harish
  2024-04-18 11:38 ` [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures Sadineni, Harish
  1 sibling, 1 reply; 4+ messages in thread
From: Harish.Sadineni @ 2024-04-18 11:34 UTC (permalink / raw)
  To: openembedded-core
  Cc: Randy.MacLeod, Naveen.Gowda, Sundeep.Kokkonda,
	Shivaprasad.Moodalappa

From: Harish Sadineni <Harish.Sadineni@windriver.com>

Reusing SSH Connection to speed up remote login process using multiplexing to reduce time taken while running oe-selftest for gcc.

Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
 meta/lib/oeqa/selftest/cases/gcc.py                   | 10 ++++++++++
 meta/recipes-connectivity/openssh/openssh/sshd_config |  2 +-
 meta/recipes-devtools/gcc/gcc-testsuite.inc           |  3 ++-
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/gcc.py b/meta/lib/oeqa/selftest/cases/gcc.py
index 4cc0894d42..992a5b74be 100644
--- a/meta/lib/oeqa/selftest/cases/gcc.py
+++ b/meta/lib/oeqa/selftest/cases/gcc.py
@@ -5,6 +5,7 @@
 #
 import os
 import time
+import subprocess
 from oeqa.core.decorator import OETestTag
 from oeqa.core.case import OEPTestResultTestCase
 from oeqa.selftest.case import OESelftestTestCase
@@ -83,6 +84,15 @@ class GccSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
             # validate that SSH is working
             status, _ = qemu.run("uname")
             self.assertEqual(status, 0)
+            qemu_ip = qemu.ip
+            ssh_command = [
+            "ssh", "-o", "StrictHostKeyChecking=no",
+            "-o", "UserKnownHostsFile=/dev/null",
+            "-o", "ControlMaster=auto",
+            "-o", "ControlPath=~/.ssh/control-%r@%h:%p",
+            "-o", "Controlpersist=yes", "root@{}".format(qemu_ip),
+            "exit" ]
+            subprocess.run(ssh_command, check=True)
 
             return self.run_check(*args, ssh=qemu.ip, **kwargs)
 
diff --git a/meta/recipes-connectivity/openssh/openssh/sshd_config b/meta/recipes-connectivity/openssh/openssh/sshd_config
index b9357ef6c5..37ffe28142 100644
--- a/meta/recipes-connectivity/openssh/openssh/sshd_config
+++ b/meta/recipes-connectivity/openssh/openssh/sshd_config
@@ -34,7 +34,7 @@ Include /etc/ssh/sshd_config.d/*.conf
 #PermitRootLogin prohibit-password
 #StrictModes yes
 #MaxAuthTries 6
-#MaxSessions 10
+MaxSessions 1000
 
 #PubkeyAuthentication yes
 
diff --git a/meta/recipes-devtools/gcc/gcc-testsuite.inc b/meta/recipes-devtools/gcc/gcc-testsuite.inc
index 0a950b6c9e..62e9691a99 100644
--- a/meta/recipes-devtools/gcc/gcc-testsuite.inc
+++ b/meta/recipes-devtools/gcc/gcc-testsuite.inc
@@ -87,7 +87,8 @@ python check_prepare() {
         content.append("set_board_info username {0}".format(d.getVar("TOOLCHAIN_TEST_HOST_USER")))
 
         port = d.getVar("TOOLCHAIN_TEST_HOST_PORT")
-        content.append("set_board_info rsh_prog \"/usr/bin/ssh -p {0} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\"".format(port))
+        qemuip_address = d.getVar("TOOLCHAIN_TEST_HOST")
+        content.append("set_board_info rsh_prog \"/usr/bin/ssh -S ~/.ssh/control-root@{0}:{1} \"".format( qemuip_address, port))
         content.append("set_board_info rcp_prog \"/usr/bin/scp -P {0} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\"".format(port))
 
         return "\n".join(content)
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures
  2024-04-18 11:34 [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures Harish.Sadineni
  2024-04-18 11:34 ` [PATCH 2/2] gcc: Oe-selftest failure analysis - allowing multiple ssh sessions Harish.Sadineni
@ 2024-04-18 11:38 ` Sadineni, Harish
  1 sibling, 0 replies; 4+ messages in thread
From: Sadineni, Harish @ 2024-04-18 11:38 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 2425 bytes --]

testresults before applying patch for x86_64 :
|  gcc            |   g++           |  libatomic    |   libgomp  |    libitm      |   libstdc++ |  Total (Sum of all modules)
expected passes         |  148313     |   218545      |  27              |    3369      |    24           |    9693     |  379971
unexpected failures     |  15             |   20              |                    |                  |                   |                 |  35
expected failures         |  1419         |   2052          |                    |    30          |                   |    6           |  3507
unresolved testcases  |  25130        |   10816       |  27              |    1579      |     22          |    4869      |  42443
unsupported tests       |  2686          |   10420       |                    |    410        |     2             |    643       |  14161

testresults after applying patch for x86_64:
|  gcc          |   g++           |  libatomic    |   libgomp  |    libitm      |   libstdc++ |  Total (Sum of all modules)
expected passes         |  177610    |   230158     |  54              |    5033      |    24          |    13695    |  426574
unexpected failures     |  99           |   20              |                    |    1            |    19          |    7            |  146
expected failures         |  1422       |   2063          |                    |    32          |    3            |    106        |  3626
unresolved testcases  |  4              |                    |                    |                  |                  |    1125       |  1129
unsupported tests       |  2147        |   10350       |                    |    429        |    2            |    805         |  13733

Unresolved cases are reduced to ~1000 (i.e., More than 41K tests are newly executed)
More than 45000 tests cases are passed newly.

Thanks,
Harish

[-- Attachment #2: Type: text/html, Size: 5311 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] gcc: Oe-selftest failure analysis - allowing multiple ssh sessions
  2024-04-18 11:34 ` [PATCH 2/2] gcc: Oe-selftest failure analysis - allowing multiple ssh sessions Harish.Sadineni
@ 2024-04-18 11:40   ` Sadineni, Harish
  0 siblings, 0 replies; 4+ messages in thread
From: Sadineni, Harish @ 2024-04-18 11:40 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 216 bytes --]

Time taken to run gcc testsuite w/o multiple ssh sessions -> 16-18 hrs
Time taken to run gcc testsuite w/ multiple ssh sessions -> 11-12 hrs
There is an improvement of ~30% in execution time.

Thanks,

Harish

[-- Attachment #2: Type: text/html, Size: 1258 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-18 11:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-18 11:34 [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures Harish.Sadineni
2024-04-18 11:34 ` [PATCH 2/2] gcc: Oe-selftest failure analysis - allowing multiple ssh sessions Harish.Sadineni
2024-04-18 11:40   ` Sadineni, Harish
2024-04-18 11:38 ` [PATCH 1/2] gcc: fix for host key verfication & kex exchange identification failures Sadineni, Harish

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.