[yocto] warrior with recipes AUTOREV, issues (and hangs bitbake on Centos )

Richard Allen richard_allen at keysight.com
Wed Jun 19 08:19:08 PDT 2019


Hi, during our development process, many of our recipes use AUTOREV  to get latest bits

Under warrior ( bitbake 1.42?) , we are seeing failures with the follow structure
( from recipes not even used by the image, which recipe changes from bitbake to bitbake)

Traceback (most recent call last):
  File "/home/rcallen/tlo-warrior/sources/openembedded-core/bitbake/lib/bb/fetch2/__init__.py", line 1179, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7f43640bdc88>, d=<bb.data_smart.DataSmart object at 0x7f4364111588>, name='default'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)
     
  File "/home/rcallen/tlo-warrior/sources/openembedded-core/bitbake/lib/bb/fetch2/__init__.py", line 1574, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7f43640bdc88>, d=<bb.data_smart.DataSmart object at 0x7f4364111588>, name='default'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/home/rcallen/tlo-warrior/sources/openembedded-core/bitbake/lib/bb/persist_data.py", line 60, in SQLTable.wrap_func(*args=('XXXt', '1a969ebe1841690d0c5c36c174aa119175c90cd6'), **kwargs={}):
                             try:
    >                            return f(self, *args, **kwargs)
                             except sqlite3.OperationalError as exc:
  File "/home/rcallen/tlo-warrior/sources/openembedded-core/bitbake/lib/bb/persist_data.py", line 89, in SQLTable.wrap_func(*args=(XXX', '1a969ebe1841690d0c5c36c174aa119175c90cd6'), **kwargs={}):
                         with contextlib.closing(self.connection.cursor()) as cursor:
    >                        return f(self, cursor, *args, **kwargs)
                 return wrap_func
  File "/home/rcallen/tlo-warrior/sources/openembedded-core/bitbake/lib/bb/persist_data.py", line 197, in SQLTable.__setitem__(cursor=<sqlite3.Cursor object at 0x7f4364180ab0>, key= XXX't', value='1a969ebe1841690d0c5c36c174aa119175c90cd6'):
             else:
    >            cursor.execute("INSERT into %s(key, value) values (?, ?);" % self.table, [key, value])
     
bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception IntegrityError: UNIQUE constraint failed: BB_URI_HEADREVS.key


Most times , no problems
If I set BB_SRCREV_POLICY = "cache" , never a problem..

When bitbake on a ubuntu, the error is created and bitbake recovers
On a Centos, the error is created AND bitbake HANGS ( A Ctrl C will break into the bitbake , but leaves a set of processes in memory,  need to manually kill the bitbake process and all its' children processes,
	- this behavior makes centos for warrior bitbaking pretty useless .

Wondering if others are seeing this?
If so, any known 'fixes' (besides not using AUTOREV ?)
If so, will this get fixed in 'warrior' or later?

Thanks
Richard C Allen





More information about the yocto mailing list