[OE-core] sstate-diff-machines.sh encounters IndexError

Mike Crowe mac at mcrowe.com
Thu Jan 9 17:26:05 UTC 2014


I just got round to trying sstate-diff-machines.sh in order to find out why
some of our recipes are thwarting the sstate cache but I couldn't make it
work. :(

With current oe-core 1028ac813fa9803ebfff6bcfa7f8b67012609b27 and bitbake
e13acb4113ce75226664c3006a9776cc885e860d I get the following error:

$ sstate-diff-machines.sh --tmpdir=tmp-eglibc --machines=qemux86 --targets=gcc-cross

[...]
NOTE: Reparsing files to collect dependency data
ERROR: An uncaught exception occured in runqueue, please see the failure below:
ERROR: Running idle function
Traceback (most recent call last):
  File "/vg0disk/mac/src/oe-core/bitbake/lib/bb/server/process.py", line 133, in ProcessServer.idle_commands(delay=0.1, fds=[<read-only Connection, handle 4>, <read-write Connection, handle 7>]):
                 try:
    >                retval = function(self, data, False)
                     if retval is False:
  File "/vg0disk/mac/src/oe-core/bitbake/lib/bb/cooker.py", line 1151, in buildTargetsIdle(server=<ProcessServer(ProcessServer-2, started)>, rq=<bb.runqueue.RunQueue instance at 0x2d118c0>, abort=False):
                 try:
    >                retval = rq.execute_runqueue()
                 except runqueue.TaskFailure as exc:
  File "/vg0disk/mac/src/oe-core/bitbake/lib/bb/runqueue.py", line 1082, in RunQueue.execute_runqueue():
             try:
    >            return self._execute_runqueue()
             except bb.runqueue.TaskFailure:
  File "/vg0disk/mac/src/oe-core/bitbake/lib/bb/runqueue.py", line 1034, in RunQueue._execute_runqueue():
                     self.dump_signatures()
    >                self.write_diffscenetasks(invalidtasks)
                     self.state = runQueueComplete
  File "/vg0disk/mac/src/oe-core/bitbake/lib/bb/runqueue.py", line 1227, in RunQueue.write_diffscenetasks(invalidtasks=set([4, 389, 136, 269, 399, 472, 147, 20, 279, 409, 159, 32, 289, 419, 169, 42, 299, 429, 179, 52, 309, 439, 189, 62, 319, 449, 199, 72, 329, 460, 209, 339, 88, 219, 349, 482, 229, 102, 359, 239, 369, 116, 379, 126, 255])):
                 matches = {k : v for k, v in matches.iteritems() if h not in k}
    >            latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1]
                 prevh = __find_md5__.search(latestmatch).group(0)
IndexError: list index out of range

NOTE: Tasks Summary: Attempted 0 tasks of which 0 didn't need to be rerun and all succeeded.

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.


Am I doing something silly or is this tool currently broken?

Thanks.

Mike.



More information about the Openembedded-core mailing list