<div dir="ltr">Now with pseudo log files a bit smaller this <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">package-</span><wbr style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">output.lock seems to be most common "issue" reported with do_qa_pseudo.</span><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">e.g.:</span></div><div><span style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><div style="font-size:12.8px">libao-1.2.0: This /work/i586-oe-linux-musl/libao/1.2.0-r0/pseudo/pseudo.log indicates 16 errors [qa-pseudo]</div><div style="font-size:12.8px">see grep -e '^creat ignored for existing file' -e '^creat for.*replaces existing' /home/jenkins/oe/world/shr-core/tmpfs/work/i586-oe-linux-musl/libao/1.2.0-r0/pseudo/pseudo.log or grep -v '^path mismatch' /home/jenkins/oe/world/shr-core/tmpfs/work/i586-oe-linux-musl/libao/1.2.0-r0/pseudo/pseudo.log: debug_logfile: fd 2</div><div style="font-size:12.8px">pid 4165 [parent 4160], doing new pid setup and server start</div><div style="font-size:12.8px">Setup complete, sending SIGUSR1 to pid 4160.</div><div style="font-size:12.8px">db cleanup for server shutdown, 01:43:56.829</div><div style="font-size:12.8px">memory-to-file backup complete, 01:43:56.830.</div><div style="font-size:12.8px">db cleanup finished, 01:43:56.830</div><div style="font-size:12.8px">debug_logfile: fd 2</div><div style="font-size:12.8px">pid 11266 [parent 11265], doing new pid setup and server start</div><div style="font-size:12.8px">Setup complete, sending SIGUSR1 to pid 11265.</div><div style="font-size:12.8px">inode mismatch: '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock' ino 346594 in db, 347812 in request.</div><div style="font-size:12.8px">creat ignored for existing file '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock'.</div><div style="font-size:12.8px">inode mismatch: '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock' ino 346594 in db, 347812 in request.</div><div style="font-size:12.8px">inode mismatch: '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock' ino 346594 in db, 347812 in request.</div><div style="font-size:12.8px">inode mismatch: '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock' ino 346594 in db, 347812 in request.</div><div style="font-size:12.8px">inode mismatch: '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock' ino 346594 in db, 347812 in request.</div><div style="font-size:12.8px">inode mismatch: '/home/jenkins/oe/world/shr-core/tmpfs/sysroots/package-output.lock' ino 346594 in db, 347812 in request.</div><div style="font-size:12.8px"> [qa-pseudo]</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">shown in last world build:</div><div><span style="font-size:12.8px"><a href="http://jenkins.nas-admin.org/view/OE/job/oe_world_qemux86/760/console">http://jenkins.nas-admin.org/view/OE/job/oe_world_qemux86/760/console</a></span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">I have no idea how to resolve this one as it needs to be global and shared between many pseudo databases.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Any idea?</span></div></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 20, 2018 at 9:25 AM, Richard Purdie <span dir="ltr"><<a href="mailto:richard.purdie@linuxfoundation.org" target="_blank">richard.purdie@linuxfoundation.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">PACKAGELOCK is there to protect readers of PKGDATA_DIR from writes and files<br>
changing whilst they're being read. With various changes to the codebase,<br>
the lock code has become confused as the files are now written by the sstate<br>
code in do_packagedata, not in do_package directly any longer.<br>
<br>
This change cleans up the code so read sites take the shared lock (anything in<br>
do_package), write sites take the full lock (do_packagedata sstate).<br>
<br>
The lock from do_package sstate is no longer needed since it doesn't write<br>
outside WORKDIR.<br>
<br>
Signed-off-by: Richard Purdie <<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@<wbr>linuxfoundation.org</a>><br>
---<br>
meta/classes/package.bbclass | 11 ++++++-----<br>
1 file changed, 6 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass<br>
index 0436d91..e03d450 100644<br>
--- a/meta/classes/package.bbclass<br>
+++ b/meta/classes/package.bbclass<br>
@@ -1615,7 +1615,7 @@ python package_do_shlibs() {<br>
shlibswork_dir = d.getVar('SHLIBSWORKDIR')<br>
<br>
# Take shared lock since we're only reading, not writing<br>
- lf = bb.utils.lockfile(d.expand("${<wbr>PACKAGELOCK}"))<br>
+ lf = bb.utils.lockfile(d.expand("${<wbr>PACKAGELOCK}"), True)<br>
<br>
def linux_so(file, needed, sonames, renames, pkgver):<br>
needs_ldconfig = False<br>
@@ -1900,7 +1900,7 @@ python package_do_pkgconfig () {<br>
pkgconfig_needed[pkg] += exp.replace(',', ' ').split()<br>
<br>
# Take shared lock since we're only reading, not writing<br>
- lf = bb.utils.lockfile(d.expand("${<wbr>PACKAGELOCK}"))<br>
+ lf = bb.utils.lockfile(d.expand("${<wbr>PACKAGELOCK}"), True)<br>
<br>
for pkg in packages.split():<br>
pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")<br>
@@ -2233,11 +2233,9 @@ do_package[dirs] = "${SHLIBSWORKDIR} ${PKGDESTWORK} ${D}"<br>
do_package[vardeps] += "${PACKAGEBUILDPKGD} ${PACKAGESPLITFUNCS} ${PACKAGEFUNCS} ${@gen_packagevar(d)}"<br>
addtask package after do_install<br>
<br>
-PACKAGELOCK = "${STAGING_DIR}/package-<wbr>output.lock"<br>
SSTATETASKS += "do_package"<br>
do_package[cleandirs] = "${PKGDEST} ${PKGDESTWORK}"<br>
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST} ${PKGDESTWORK}"<br>
-do_package[sstate-lockfile-<wbr>shared] = "${PACKAGELOCK}"<br>
do_package_setscene[dirs] = "${STAGING_DIR}"<br>
<br>
python do_package_setscene () {<br>
@@ -2252,9 +2250,12 @@ do_packagedata () {<br>
addtask packagedata before do_build after do_package<br>
<br>
SSTATETASKS += "do_packagedata"<br>
+# PACKAGELOCK protects readers of PKGDATA_DIR against writes<br>
+# whilst code is reading in do_package<br>
+PACKAGELOCK = "${STAGING_DIR}/package-<wbr>output.lock"<br>
do_packagedata[sstate-<wbr>inputdirs] = "${PKGDESTWORK}"<br>
do_packagedata[sstate-<wbr>outputdirs] = "${PKGDATA_DIR}"<br>
-do_packagedata[sstate-<wbr>lockfile-shared] = "${PACKAGELOCK}"<br>
+do_packagedata[sstate-<wbr>lockfile] = "${PACKAGELOCK}"<br>
do_packagedata[stamp-extra-<wbr>info] = "${MACHINE_ARCH}"<br>
<br>
python do_packagedata_setscene () {<br>
<span class="HOEnZb"><font color="#888888">-- <br>
2.7.4<br>
<br>
-- <br>
______________________________<wbr>_________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
</font></span></blockquote></div><br></div>