| Summary: | removing hardlink removes xattrs | ||
|---|---|---|---|
| Product: | [Yocto Project Subprojects] Pseudo | Reporter: | Patrick Ohly <patrick.ohly> |
| Component: | pseudo | Assignee: | Joshua Lock <joshuagloe> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | benjamin.esquivel, joshuagloe, seebs, yp.pseudo.watcher, yp.watcher |
| Version: | unspecified | ||
| Target Milestone: | 2.3 M3 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Patrick Ohly
2016-11-08 15:36:24 UTC
So this is a side-effect of the performance fixes from a bit back. When we delete a file, we used to nuke any xattrs with no remaining files. Now we delete only the xattrs that match the deleted file... But delete them even if other files still match. Should be fixable. This thing here: DELETE FROM xattrs WHERE dev = ? AND ino = ?; should probably be something like ... AND COUNT (SELECT * FROM files WHERE dev = ? AND ino = ?) == 0; Will fixing this bring back the performance problem? I don't think so. The performance problem required a check of every dev/ino pair found in the xattrs table against the whole database, this would check only one. I have this and a couple of other patches to look at. (Someone sent me a fix for Python3 compat. Yay.) if this bug is blocking the swupd progress, can the swupd bug be noted in the blockers of this bug? This is not blocking meta-swupd progress because I am using a workaround (don't remove hardlinked files). Would be nicer to not have to carry that workaround, though. I've made a corresponding patch in upstream pseudo that appears to address this. It's a trivial couple-of-line patch. Although past-seebs said "COUNT (SELECT...)" which is of course wrong, it's "SELECT COUNT(*)". Anyway, checked in upstream, commit 02168305b0a19f981ffe857f36eb256ba8810b77. Once there's a tarball for the 1.8.2 release I'll take care of updating the recipe. Richard generated the release tarball today, patch sent: https://patchwork.openembedded.org/patch/136835/ |