On 07/12/2012 05:07 AM, Nishanth Aravamudan wrote: > On 12.07.2012 [00:20:04 -0700], Nishanth Aravamudan wrote: >> Hi all, >> >> After finally bothering to just put a proxy in place locally, I got >> grubby 8.15 to build, but it doesn't seem to make boottool happy :) >> >> 07/12 02:53:12 INFO | boottool:0667| Installing grubby because currently >> installed version (8.11) is not recent enough >> 07/12 02:53:18 DEBUG| boottool:0674| Installed: grubby version 8.15 >> 07/12 02:53:18 ERROR| job:1338| JOB ERROR: Unhandled TypeError: >> sequence item 0: expected string, NoneType found >> Traceback (most recent call last): >> File "/usr/local/autotest/job.py", line 1089, in _run_step_fn >> exec('__ret = %s(*__args, **__dargs)' % fn, local_vars, local_vars) >> File "<string>", line 1, in <module> >> File "/usr/local/autotest/control.autoserv", line 16, in boot_kernel >> host.cleanup_kernels() >> File "/usr/local/autotest/shared/hosts/base_classes.py", line 655, in >> cleanup_kernels >> boot_info = self.bootloader.get_entries() >> File "/usr/local/autotest/tools/boottool.py", line 1150, in get_entries >> raw = self.get_info() >> File "/usr/local/autotest/tools/boottool.py", line 1180, in get_info >> info = self._run_grubby_get_output([command]) >> File "/usr/local/autotest/tools/boottool.py", line 835, in >> _run_grubby_get_output >> return self._run_get_output(args) >> File "/usr/local/autotest/tools/boottool.py", line 751, in _run_get_output >> ' '.join(arguments)) >> TypeError: sequence item 0: expected string, NoneType found >> >> 07/12 02:53:18 INFO | job:0210| END ABORT ---- ---- >> timestamp=1342075998 localtime=Jul 12 02:53:18 Unhandled TypeError: >> sequence item 0: expected string, NoneType found >> Traceback (most recent call last): >> File "/usr/local/autotest/job.py", line 1089, in _run_step_fn >> exec('__ret = %s(*__args, **__dargs)' % fn, local_vars, local_vars) >> File "<string>", line 1, in <module> >> File "/usr/local/autotest/control.autoserv", line 16, in boot_kernel >> host.cleanup_kernels() >> File "/usr/local/autotest/shared/hosts/base_classes.py", line 655, in >> cleanup_kernels >> boot_info = self.bootloader.get_entries() >> File "/usr/local/autotest/tools/boottool.py", line 1150, in get_entries >> raw = self.get_info() >> File "/usr/local/autotest/tools/boottool.py", line 1180, in get_info >> info = self._run_grubby_get_output([command]) >> File "/usr/local/autotest/tools/boottool.py", line 835, in >> _run_grubby_get_output >> return self._run_get_output(args) >> File "/usr/local/autotest/tools/boottool.py", line 751, in >> _run_get_output >> ' '.join(arguments)) >> TypeError: sequence item 0: expected string, NoneType found >> >> 07/12 02:53:18 DEBUG| base_job:0349| Persistent state client._record_indent >> now set to 0 > I won't claim to understand why it's happening, but I can tell a bit > more about what's happening: > > Adding some hacks locally to _run_grubby_get_output, to print out the > parameter arguments and the prepared return value args, I get: > > 04:01:35 INFO | Writing results to /usr/local/autotest/results/default > 04:01:35 INFO | START ---- ---- timestamp=1342080095 localtime=Jul > 12 04:01:35 > 04:01:36 INFO | arguments : ['--info=ALL'] > 04:01:36 INFO | self.path = None > 04:01:36 INFO | arguments : ['--version'] > 04:01:36 INFO | self.path = /sbin/grubby > 04:01:36 INFO | args : ['/sbin/grubby', '--version'] > 04:01:36 INFO | arguments : ['--version'] > 04:01:36 INFO | self.path = /sbin/grubby > 04:01:36 INFO | args : ['/sbin/grubby', '--version'] > 04:01:36 INFO | arguments : ['--version'] > 04:01:36 INFO | self.path = /sbin/grubby > 04:01:36 INFO | args : ['/sbin/grubby', '--version'] > 04:01:36 INFO | args : [None, '--grub2', '--info=ALL'] > 04:01:36 ERROR| JOB ERROR: Unhandled TypeError: sequence item 0: expected > string, NoneType found > > So a couple of questions come to mind: > > 1) why do we call --version so many times?
There's certainly room for optimizations here. > > 2) AFAICT from my debugging, this is all coming from the one call to > get_info(), but I don't see how self.path can be None. I've seen the same error when I had two grub entries with the same kernel and parameters set. I'm *guessiing* this is related to it, as your configuration also seems to be like that. I'm debugging that right now and will let you know about it. > > -Nish > _______________________________________________ Autotest mailing list Autotest@test.kernel.org http://test.kernel.org/cgi-bin/mailman/listinfo/autotest