** 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

Reply via email to