Here's the correct link https://bugzilla.yoctoproject.org/show_bug.cgi?id=14301. I'll resubmit the patch referencing the bug in the commit message. Thanks.
> Em 30 de mar. de 2021, à(s) 18:59, Denys Dmytriyenko <de...@denix.org> > escreveu: > > The link is for a 10-year old bug, probably not what you wanted. > Also, if a patch fixes existing bug in bugzilla, it needs to reference it in > commit message as well - [YOCTO#1234567] > > >> On Mon, Mar 29, 2021 at 12:37:45PM -0300, Devendra Tewari wrote: >> Also, this is due to https://bugzilla.yoctoproject.org/show_bug.cgi?id=1430. >> >>>> On 29 Mar 2021, at 12:35, Devendra Tewari <devendra.tew...@gmail.com> >>>> wrote: >>> >>> Sure. >>> >>> Would the following commit message be sufficient? >>> >>> Use shutil.move when os.rename fails >>> >>> Incremental build in Docker fails with >>> >>> OSError: [Errno 18] Invalid cross-device link >>> >>> When source and destination are on different overlay filesystems. >>> >>> This change handles the error with os.rename and retries with shutil.move. >>> >>> Thanks, >>> Devendra >>> >>>> On 29 Mar 2021, at 12:23, Konrad Weihmann <kweihm...@outlook.com> wrote: >>>> >>>> Yes please quote a bit from the python manpage [1] - I certainly see the >>>> difference (and the edge cases where os.rename might fail), but that >>>> should be documented as part of the commit message >>>> >>>> [1] https://docs.python.org/3/library/shutil.html#shutil.move >>>> >>>> On 29.03.21 17:21, Bruce Ashfield wrote: >>>>> Can you document the cases that os.rename() is failing ? And also why >>>>> would we expect the shutil.move() to work in those cases ? >>>>> If a change like this cases issues in the future, we need that extra >>>>> information in the commit head for proper triage. >>>>> Bruce >>>>> On Mon, Mar 29, 2021 at 11:16 AM Devendra Tewari >>>>> <devendra.tew...@gmail.com> wrote: >>>>>> >>>>>> --- >>>>>> meta/classes/sstate.bbclass | 26 ++++++++++++++++++++++---- >>>>>> 1 file changed, 22 insertions(+), 4 deletions(-) >>>>>> >>>>>> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass >>>>>> index f579168162..f94aa96d70 100644 >>>>>> --- a/meta/classes/sstate.bbclass >>>>>> +++ b/meta/classes/sstate.bbclass >>>>>> @@ -384,6 +384,7 @@ def sstate_installpkg(ss, d): >>>>>> def sstate_installpkgdir(ss, d): >>>>>> import oe.path >>>>>> import subprocess >>>>>> + import shutil >>>>>> >>>>>> sstateinst = d.getVar("SSTATE_INSTDIR") >>>>>> d.setVar('SSTATE_FIXMEDIR', ss['fixmedir']) >>>>>> @@ -401,7 +402,11 @@ def sstate_installpkgdir(ss, d): >>>>>> >>>>>> for state in ss['dirs']: >>>>>> prepdir(state[1]) >>>>>> - os.rename(sstateinst + state[0], state[1]) >>>>>> + try: >>>>>> + os.rename(sstateinst + state[0], state[1]) >>>>>> + break >>>>>> + except OSError: >>>>>> + shutil.move(sstateinst + state[0], state[1]) >>>>>> sstate_install(ss, d) >>>>>> >>>>>> for plain in ss['plaindirs']: >>>>>> @@ -413,7 +418,11 @@ def sstate_installpkgdir(ss, d): >>>>>> dest = plain >>>>>> bb.utils.mkdirhier(src) >>>>>> prepdir(dest) >>>>>> - os.rename(src, dest) >>>>>> + try: >>>>>> + os.rename(src, dest) >>>>>> + break >>>>>> + except OSError: >>>>>> + shutil.move(src, dest) >>>>>> >>>>>> return True >>>>>> >>>>>> @@ -638,6 +647,7 @@ python sstate_hardcode_path () { >>>>>> >>>>>> def sstate_package(ss, d): >>>>>> import oe.path >>>>>> + import shutil >>>>>> >>>>>> tmpdir = d.getVar('TMPDIR') >>>>>> >>>>>> @@ -664,7 +674,11 @@ def sstate_package(ss, d): >>>>>> continue >>>>>> bb.error("sstate found an absolute path symlink %s >>>>>> pointing at %s. Please replace this with a relative link." % (srcpath, >>>>>> link)) >>>>>> bb.debug(2, "Preparing tree %s for packaging at %s" % (state[1], >>>>>> sstatebuild + state[0])) >>>>>> - os.rename(state[1], sstatebuild + state[0]) >>>>>> + try: >>>>>> + os.rename(state[1], sstatebuild + state[0]) >>>>>> + break >>>>>> + except OSError: >>>>>> + shutil.move(state[1], sstatebuild + state[0]) >>>>>> >>>>>> workdir = d.getVar('WORKDIR') >>>>>> sharedworkdir = os.path.join(d.getVar('TMPDIR'), "work-shared") >>>>>> @@ -674,7 +688,11 @@ def sstate_package(ss, d): >>>>>> pdir = plain.replace(sharedworkdir, sstatebuild) >>>>>> bb.utils.mkdirhier(plain) >>>>>> bb.utils.mkdirhier(pdir) >>>>>> - os.rename(plain, pdir) >>>>>> + try: >>>>>> + os.rename(plain, pdir) >>>>>> + break >>>>>> + except OSError: >>>>>> + shutil.move(plain, pdir) >>>>>> >>>>>> d.setVar('SSTATE_BUILDDIR', sstatebuild) >>>>>> d.setVar('SSTATE_INSTDIR', sstatebuild) >>>>>> -- >>>>>> 2.29.2 >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>> >>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#150092): https://lists.openembedded.org/g/openembedded-core/message/150092 Mute This Topic: https://lists.openembedded.org/mt/81698791/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-