** Also affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Also affects: linux (Ubuntu Questing)
Importance: Undecided
Status: New
** Changed in: linux (Ubuntu Questing)
Assignee: (unassigned) => Po-Hsu Lin (cypressyew)
** Changed in: linux (Ubuntu Questing)
Status: New => In Progress
** Description changed:
+
+ [ Impact ]
+ In bareudp.sh, this script uses /bin/sh and it will load another lib.sh
+ BASH script at the very beginning.
+
+ But on some operating systems like Ubuntu, /bin/sh is actually pointed to
+ DASH, thus it will try to run BASH commands with DASH and consequently
+ leads to syntax issues:
+ # ./bareudp.sh: 4: ./lib.sh: Bad substitution
+ # ./bareudp.sh: 5: ./lib.sh: source: not found
+ # ./bareudp.sh: 24: ./lib.sh: Syntax error: "(" unexpected
+
+ Fix this by explicitly using BASH for bareudp.sh. This fixes test
+ execution failures on systems where /bin/sh is not BASH.
+
+ [ Test Plan ]
+ Run the bareudp.sh with this patch applied, the syntax issues above will
+ be fixed and the test can proceed.
+
+ [ Where problems could occur ]
+ The change has been applied upstream and 6.17.10, it can be cherry-picked
+ the scope is limited to the test script itself, with no functional changes
+ to the kernel.
+ We may discover new failures through this test. Even if this change is
+ incorrect, it should not make anything worse, as the test has already
+ been blocked by this syntax issue.
+
+
+ == Original bug report ==
bareudp.sh execution fails on questing because the shebang /bin/sh under
ubuntu points to dash.
Explicitly changing to /bin/bash fixes the issue
20052 13:57:37 DEBUG| [stdout] # ./bareudp.sh: 4: ./lib.sh: Bad substitution
20053 13:57:37 DEBUG| [stdout] # ./bareudp.sh: 5: ./lib.sh: source: not found
20054 13:57:37 DEBUG| [stdout] # ./bareudp.sh: 24: ./lib.sh: Syntax error:
"(" unexpected
Full Log:
20041 13:57:36 INFO | START ubuntu_kselftests_net.net:bareudp.sh
ubuntu_kselftests_net.net:bareudp.sh timeout=2700 timestamp=1760968656
localtime=Oct 20 13:57:36
20042 13:57:36 DEBUG| Persistent state client._record_indent now set to 2
20043 13:57:36 DEBUG| Persistent state client.unexpected_reboot now set to
('ubuntu_kselftests_net.net:bareudp.sh', 'ubuntu_kselftests_net.net:bareudp.sh')
20044 13:57:36 DEBUG| Waiting for pid 1348605 for 2700 seconds
20045 13:57:36 WARNI| System python is too old, crash handling disabled
20046 13:57:36 DEBUG| Running 'make run_tests -C net TEST_PROGS=bareudp.sh
TEST_GEN_PROGS='' TEST_CUSTOM_PROGS='''
20047 13:57:36 DEBUG| [stdout] make: Entering directory
'/home/ubuntu/autotest/client/tmp/ubuntu_kselftests_net/src/linux/tools/testing/selftests/net'
20048 13:57:36 DEBUG| [stdout] TAP version 13
20049 13:57:36 DEBUG| [stdout] 1..1
20050 13:57:36 DEBUG| [stdout] # timeout set to 0
20051 13:57:36 DEBUG| [stdout] # selftests: net: bareudp.sh
20052 13:57:37 DEBUG| [stdout] # ./bareudp.sh: 4: ./lib.sh: Bad substitution
20053 13:57:37 DEBUG| [stdout] # ./bareudp.sh: 5: ./lib.sh: source: not found
20054 13:57:37 DEBUG| [stdout] # ./bareudp.sh: 24: ./lib.sh: Syntax error:
"(" unexpected
20055 13:57:37 DEBUG| [stdout] not ok 1 selftests: net: bareudp.sh # exit=2
20056 13:57:37 DEBUG| [stdout] make: Leaving directory
'/home/ubuntu/autotest/client/tmp/ubuntu_kselftests_net/src/linux/tools/testing/selftests/net'
20057 13:57:37 ERROR| Exception escaping from test:
20058 Traceback (most recent call last):
20059 File "/home/ubuntu/autotest/client/shared/test.py", line 411, in _exec
20060 _call_test_function(self.execute, *p_args, **p_dargs)
20061 ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20062 File "/home/ubuntu/autotest/client/shared/test.py", line 823, in
_call_test_function
20063 return func(*args, **dargs)
20064 File "/home/ubuntu/autotest/client/shared/test.py", line 290, in
execute
20065 self._call_run_once(constraints, profile_only,
20066 ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
20067 postprocess_profiled_run, args, dargs)
20068 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20069 File "/home/ubuntu/autotest/client/shared/test.py", line 212, in
_call_run_once
20070 self.run_once(*args, **dargs)
20071 ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
20072 File
"/home/ubuntu/autotest/client/tests/ubuntu_kselftests_net/ubuntu_kselftests_net.py",
line 174, in run_once
20073 raise error.TestError(test_name + ' failed.')
20074 autotest.client.shared.error.TestError: net:bareudp.sh failed.
20075 13:57:37 ERROR| child process failed
20076 13:57:37 DEBUG| Traceback (most recent call last):
20077 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 411, in _exec
20078 13:57:37 DEBUG| _call_test_function(self.execute, *p_args, **p_dargs)
20079 13:57:37 DEBUG| ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20080 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 823, in _call_test_function
20081 13:57:37 DEBUG| return func(*args, **dargs)
20082 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 290, in execute
20083 13:57:37 DEBUG| self._call_run_once(constraints, profile_only,
20084 13:57:37 DEBUG| ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
20085 13:57:37 DEBUG| postprocess_profiled_run, args, dargs)
20086 13:57:37 DEBUG| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20087 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 212, in _call_run_once
20088 13:57:37 DEBUG| self.run_once(*args, **dargs)
20089 13:57:37 DEBUG| ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
20090 13:57:37 DEBUG| File
"/home/ubuntu/autotest/client/tests/ubuntu_kselftests_net/ubuntu_kselftests_net.py",
line 174, in run_once
20091 13:57:37 DEBUG| raise error.TestError(test_name + ' failed.')
20092 13:57:37 DEBUG| autotest.client.shared.error.TestError: net:bareudp.sh
failed.
20093 13:57:37 DEBUG|
20094 13:57:37 DEBUG| During handling of the above exception, another
exception occurred:
20095 13:57:37 DEBUG|
20096 13:57:37 DEBUG| Traceback (most recent call last):
20097 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/parallel.py", line
25, in fork_start
20098 13:57:37 DEBUG| l()
20099 13:57:37 DEBUG| ~^^
20100 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/job.py", line 506,
in
20101 13:57:37 DEBUG| l = lambda: test.runtest(self, url, tag, args, dargs)
20102 13:57:37 DEBUG| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20103 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/test.py", line 121,
in runtest
20104 13:57:37 DEBUG| common_test.runtest(job, url, tag, args, dargs,
locals(), globals(),
20105 13:57:37 DEBUG|
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20106 13:57:37 DEBUG| job.sysinfo.log_before_each_test,
20107 13:57:37 DEBUG| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20108 13:57:37 DEBUG| job.sysinfo.log_after_each_test,
20109 13:57:37 DEBUG| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20110 13:57:37 DEBUG| job.sysinfo.log_before_each_iteration,
20111 13:57:37 DEBUG| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20112 13:57:37 DEBUG| job.sysinfo.log_after_each_iteration)
20113 13:57:37 DEBUG| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20114 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 913, in runtest
20115 13:57:37 DEBUG| mytest._exec(args, dargs)
20116 13:57:37 DEBUG| ~~~~~~~~~~~~^^^^^^^^^^^^^
20117 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 434, in _exec
20118 13:57:37 DEBUG| raise
exc_info[0](exc_info[1]).with_traceback(exc_info[2])
20119 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 411, in _exec
20120 13:57:37 DEBUG| _call_test_function(self.execute, *p_args, **p_dargs)
20121 13:57:37 DEBUG| ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20122 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 823, in _call_test_function
20123 13:57:37 DEBUG| return func(*args, **dargs)
20124 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 290, in execute
20125 13:57:37 DEBUG| self._call_run_once(constraints, profile_only,
20126 13:57:37 DEBUG| ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
20127 13:57:37 DEBUG| postprocess_profiled_run, args, dargs)
20128 13:57:37 DEBUG| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20129 13:57:37 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py",
line 212, in _call_run_once
20130 13:57:37 DEBUG| self.run_once(*args, **dargs)
20131 13:57:37 DEBUG| ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
20132 13:57:37 DEBUG| File
"/home/ubuntu/autotest/client/tests/ubuntu_kselftests_net/ubuntu_kselftests_net.py",
line 174, in run_once
20133 13:57:37 DEBUG| raise error.TestError(test_name + ' failed.')
20134 13:57:37 DEBUG| autotest.client.shared.error.TestError: net:bareudp.sh
failed.
20135 13:57:38 INFO | ERROR ubuntu_kselftests_net.net:bareudp.sh
ubuntu_kselftests_net.net:bareudp.sh timestamp=1760968658 localtime=Oct 20
13:57:38 net:bareudp.sh failed.
20136 13:57:38 INFO | END ERROR ubuntu_kselftests_net.net:bareudp.sh
ubuntu_kselftests_net.net:bareudp.sh timestamp=1760968658 localtime=Oct
20 13:57:38
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2129812
Title:
bareudp.sh in ubuntu_kselftests_net fails because of dash default
shell
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-kernel-tests/+bug/2129812/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs