-
Notifications
You must be signed in to change notification settings - Fork 327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qtbase do_install broken after update to recent oe-core #187
Comments
Is it reproducible in clean build (after removing tmp-glibc)? I've updated oe-core yesterday as well and haven't seen this issue in my jenkins builds yet. |
Yes I started build from scratch and cleansstate qtbase does not help - it looks 100% reproducible for me. In my desperation, I have now updated build host (Fedora 29) and a new glibc was installed. Started another build from scratch - oh this project will drive me insane some day... |
This is 100% reproducible for me as well. This is a recent change (in the last few days). |
My builds are on Ubuntu 18.04 and e.g.
http://jenkins.nas-admin.org/job/LuneOS/view/unstable/job/luneos-unstable_qemux86/191/consoleFull
just finished with this oe-core revision from today:
http://git.openembedded.org/openembedded-core/commit/?id=7469c2a5595337fc4407fa7a2ad06b5bf2347545
and latest meta-qt5 revision a4bf240
…On Fri, Apr 12, 2019 at 7:43 PM Andreas Müller ***@***.***> wrote:
Yes I started build from scratch and cleansstate qtbase does not help - it
looks 100% reproducible for me.
In my desperation, I have now updated build host (Fedora 29) and a new
glibc was installed. Started another build from scratch - oh this project
will drive me insane some day...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#187 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABLW0pjEXmAo167iSa93oTnsk4GWgXGkks5vgMWtgaJpZM4csfgW>
.
|
meta-qt5: same a4bf240 And the worst: After update and restart of host as mentioned and building from scratch I now get an error at do_compile!! I'll come back with log later - am working on other issues currently (there are lots - not OE specific only)... |
I'm bisecting the breakage in meta, I'll let you know when I have a commit. |
We'll see - my glass ball says [1] [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 |
I suspect so, I have gotten this far. I don't think I'll get a chance to finish it today:
|
Yeah, pseudo: Update to gain key bugfixes is the first bad commit in meta. |
Well, that's concerning.
This seems to be the root actual error. The actual changes are (1) on systems that have renameat2 wrappers in glibc, block access to renameat2 through the wrapper, not just through the generic syscall wrapper, (2) handle blocking opens of pipes differently. I'm guessing it isn't the pipe thing, so this could be a change with renameat2 handling. If that means that qmake actually needs renameat2, and hasn't got a way to fall back if renameat2 doesn't work, then we definitely have a serious problem, because renameat2 is surprisingly hard to implement in pseudo, which is why it's just being blocked right now. |
I think with this background a solution might be simple: We have already a patch deciding to use renameat2 or not (LOL the author has lost his brain - can't remember) [1]. If I am not mistaken is just needs adjustment. Will play around a bit and get back then. |
That would explain it, yeah! Sorry about this -- the underlying problem is that it turns out pseudo's IPC and database code doesn't have a good way to handle atomic exchange renames, and while I could in theory just ENOSYS on those, I thought it would be safer if the renameat2 code just errored out unconditionally, because that's more likely to result in code concluding that it's unsupported. I might try to actually implement the support some day, but it's a much larger thing, and it'll probably still stay broken for the syscall wrapper case -- syscall parameters are more magic than I'm comfortable trying to handle on code that might need to run on multiple architectures. |
I start to remember [1]: Since then renameat2 got mandatory to avoid direct syscalls by coreutils (and that's why I did the patch for - I guess). Wonder what qmake does when disabling renamat2 these days... Ahh and - I think people not seeing breakages have glibc < 2.28 and elder coreutils - right? [1] http://lists.openembedded.org/pipermail/openembedded-core/2018-March/267587.html |
Yup, the glibc wrapper got added in glibc 2.28. We already did ENOSYS for direct syscalls using the RENAMEAT2 syscall, because it's hard to translate safely. It's a lovely system call, it just violates assumptions I made designing pseudo's original protocol. |
Looked through meta-qt5 git log:
Martin's patch is gone - so my first approach is to remove mine either. Build from scratch is running.... |
Nope - just remove https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qtbase/0013-Check-glibc-version-for-renameat2-statx-on-non-boots.patch does not do the job - zzz |
Can you just try unconditionally defining # define QT_FEATURE_renameat2 -1 ? I'm hoping that means it uses a fallback! |
Yes that's the next step |
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5#187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5#187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameat2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5#187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
After fixing all typos in commit message (hopefully) patch is ready for test [1]. @alistair23: Maybe you want to give it a try [1] #189 |
Yep, that fixes the install failure for me. |
There is probably a more advanced patch where you could catch ENOSYS as well as EINVAL and just fall through that function FWIW... |
On Ubuntu 18.04 with: With Ubuntu 19.04 beta with: I was able to reproduce it, but only with qt 5.12 (not with 5.11 from meta-qt5/thud). Now when I can reproduce, I'll test your PR on Ubuntu and if it fixes the issue there as well I'll merge it to warrior and master (probably together with 5.12.3 upgrade). Thanks |
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameat2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] #187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
I'm going to merge these patches soon, but still something isn't right. I was going to report on oe-core ML, that new pseudo finally really resolved the issue with host-user-contamination as often triggered in glibc-locale (one of my builders already finished 1700 rebuilds of glibc-locale without any host-user-contamination error). But then when testing the PR for this issue (together with 5.12.3 upgrade on top of it) I already got few host-user-contamination issues there: ERROR: qtwebengine-5.12.3+gitAUTOINC+c7b8d6d878_4c7ecce300-r0 do_package_qa: QA Issue: qtwebengine: /qtwebengine-qmlplugins/usr/lib/qml/QtWebEngine/Controls1Delegates/MenuItem.qml is owned by uid 1026, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] ERROR: qtquickcontrols-5.12.3+gitAUTOINC+3a5ac4885b-r0 do_package_qa: QA Issue: qtquickcontrols: /qtquickcontrols-qmlplugins/usr/lib/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml is owned by uid 1026, which is the same as the user running bitbake. This may be due to host contamination So maybe the 0013-Check-glibc-version-for-renameat2-statx-on-non-boots.patch patch was still useful to prevent host-user-contamination with pseudo which I haven't seen with qt5* recipes for quite long time possibly since 5.9* where I'm still using host-user-contamination issues as well even with the latest revision from pseudo (3fa7c853e0bcd6fe23f7524c2a3c9e3af90901c3 ERROR: QA Issue: lib32-qtquickcontrols: /lib32-qtquickcontrols-qmlplugins/usr/lib/qml/QtQuick/Dialogs/DefaultColorDialog.qmlc is owned by uid 1101, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]) And these host-user-contaminated issues happen with Ubuntu 18.04 already. |
I'm guessing that the addition of the glibc renameat2 patch is going to break some things that were previously working, although I'm not totally sure how. We may need to try to catch more cases, or possibly even implement some of them. (As noted elsewhere, actually handling renameat2 is going to be really ugly in pseudo, which is why it hasn't happened yet, but we might be able to handle some subset of cases reasonably.) The obvious question would be: Can you find specific renameat2 calls, especially their flags, that are happening but failing, so I can develop a better plan for this? |
Haven't had the time to look into pseudo sources yet but if I understood @seebs correctly, actual pseudo returns ENOSYS on renameeat2 for glibc wrapper or direct system call.
Both host-contamination share that they are on installation of qml-files (and that they seem to occure unreproducible). Don't know for 'qml-file' installation:
|
Source: meta-qt5 MR: 00000 Type: Integration Disposition: Merged from meta-qt5 ChangeID: 8895ea3 Description: Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameat2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Source: meta-qt5 MR: 00000 Type: Integration Disposition: Merged from meta-qt5 ChangeID: 8895ea3 Description: Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameat2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
I've added https://bugzilla.yoctoproject.org/show_bug.cgi?id=12434#c48 with a bit more information about this issue. |
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameat2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] #187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Source: meta-qt5 MR: '00000' Type: Integration Disposition: Merged from meta-qt5 ChangeID: 1520d5b Description: Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameat2 independent of glibc version. Target qtbase does not require this adjustment - there is no pseudo on target. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This causes massive failures at do_install [2] on qtbase. To work around tell Qt build configuration not to use ranameet2 independent of glibc version. [1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 [2] meta-qt5/meta-qt5#187 Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Updated my oe-core yesterday (was so happy my patched made it into warror..).
Now I get dozens of errors at qt install:
log)_do_install.txt
Have no idea what's going wrong except that pseudo was updated and maybe qtbase tries something that pseudo does't accept...
The text was updated successfully, but these errors were encountered: