Skip to contentSkip to conversation

sstate-diff-machines.sh encounters IndexError

DISCUSSION Mike Crowe 2 participants 2 messages Jan 9, 2014

lore
Share & tools
lore

Mike Crowe

author
#0 lore raw

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.

#1 lore raw
Quoted 34 lines · Mike Crowe

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)
Quoted 8 lines

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?

It's not fault of this script, bitbake -S is currently broken, see

http://lists.openembedded.org/pipermail/bitbake-devel/2013-December/004269.html
and
http://lists.openembedded.org/pipermail/bitbake-devel/2013-December/004271.html

Regards,

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]