* [PATCH 0/4] sstate-cache-management fixes
@ 2014-03-29 10:34 Martin Jansa
2014-03-29 10:34 ` [PATCH 1/4] sstate-cache-management: rm_by_stamps - include signatures of .sigdata. files Martin Jansa
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Martin Jansa @ 2014-03-29 10:34 UTC (permalink / raw)
To: openembedded-core
Removing do_package was reported by Jacob Kroon and then I've found
few more issues, the most surprising is the one with populate_lic.
The following changes since commit b16de9af5c7108396a347e7107c73608a2f8d74f:
packagegroup-toolset-native: Update after ocf-linux -> cryptodev-linux change (2014-03-27 19:53:07 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib jansa/sstate-management
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/sstate-management
Martin Jansa (4):
sstate-cache-management: rm_by_stamps - include signatures of
.sigdata. files
sstate-cache-management: rm_by_stamps - remove .siginfo and .done
files
sstate-cache-management: skip populate_lic archives when removing
duplicates
sstate-cache-management: rm_by_stamps - discover all suffixes like
remove_duplicated does
scripts/sstate-cache-management.sh | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] sstate-cache-management: rm_by_stamps - include signatures of .sigdata. files
2014-03-29 10:34 [PATCH 0/4] sstate-cache-management fixes Martin Jansa
@ 2014-03-29 10:34 ` Martin Jansa
2014-03-29 10:34 ` [PATCH 2/4] sstate-cache-management: rm_by_stamps - remove .siginfo and .done files Martin Jansa
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Martin Jansa @ 2014-03-29 10:34 UTC (permalink / raw)
To: openembedded-core
* there are .siginfo files in sstate-cache, but STAMPS_DIR calls them
.sigdata, make sure that such signatures are kept, because some tasks
like do_package, don't have _setscene or main task entry and are
removed:
stamps:
tmp-eglibc/stamps/i586-oe-linux/busybox/1.22.1-r0.do_package.sigdata.cd6f625471ef1b20a9379e90519db6f1
tmp-eglibc/stamps/i586-oe-linux/busybox/1.22.1-r0.do_package_write_ipk.f20fe66285219f23373fc64d5de1d412
tmp-eglibc/stamps/i586-oe-linux/busybox/1.22.1-r0.do_package_write_ipk.sigdata.f20fe66285219f23373fc64d5de1d412
tmp-eglibc/stamps/i586-oe-linux/busybox/1.22.1-r0.do_packagedata.sigdata.c55a3dbe90010c15aa3294753fbd402e
tmp-eglibc/stamps/i586-oe-linux/busybox/1.22.1-r0.do_packagedata_setscene.c55a3dbe90010c15aa3294753fbd402e.qemux86
sstate (we want to keep all in this case):
sstate-cache/c5/sstate:busybox:i586-oe-linux:1.22.1:r0:i586:3:c55a3dbe90010c15aa3294753fbd402e_packagedata.tgz
sstate-cache/c5/sstate:busybox:i586-oe-linux:1.22.1:r0:i586:3:c55a3dbe90010c15aa3294753fbd402e_packagedata.tgz.siginfo
sstate-cache/cd/sstate:busybox:i586-oe-linux:1.22.1:r0:i586:3:cd6f625471ef1b20a9379e90519db6f1_package.tgz
sstate-cache/cd/sstate:busybox:i586-oe-linux:1.22.1:r0:i586:3:cd6f625471ef1b20a9379e90519db6f1_package.tgz.siginfo
sstate-cache/f2/sstate:busybox:i586-oe-linux:1.22.1:r0:i586:3:f20fe66285219f23373fc64d5de1d412_package_write_ipk.tgz
sstate-cache/f2/sstate:busybox:i586-oe-linux:1.22.1:r0:i586:3:f20fe66285219f23373fc64d5de1d412_package_write_ipk.tgz.siginfo
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
scripts/sstate-cache-management.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/sstate-cache-management.sh b/scripts/sstate-cache-management.sh
index d741ec9..34bde01 100755
--- a/scripts/sstate-cache-management.sh
+++ b/scripts/sstate-cache-management.sh
@@ -330,11 +330,11 @@ rm_by_stamps (){
# Figure out all the md5sums in the stamps dir.
echo "Figuring out all the md5sums in stamps dir ... "
for i in $suffixes; do
- # There is no "\.siginfo" but "_setcene" when it is mirrored
+ # There is no "\.sigdata" but "_setcene" when it is mirrored
# from the SSTATE_MIRRORS, use them to figure out the sum.
sums=`find $stamps -maxdepth 3 -name "*.do_$i.*" \
-o -name "*.do_${i}_setscene.*" | \
- sed -ne 's#.*_setscene\.##p' -e 's#.*\.siginfo\.##p' | \
+ sed -ne 's#.*_setscene\.##p' -e 's#.*\.sigdata\.##p' | \
sed -e 's#\..*##' | sort -u`
all_sums="$all_sums $sums"
done
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] sstate-cache-management: rm_by_stamps - remove .siginfo and .done files
2014-03-29 10:34 [PATCH 0/4] sstate-cache-management fixes Martin Jansa
2014-03-29 10:34 ` [PATCH 1/4] sstate-cache-management: rm_by_stamps - include signatures of .sigdata. files Martin Jansa
@ 2014-03-29 10:34 ` Martin Jansa
2014-03-29 10:34 ` [PATCH 3/4] sstate-cache-management: skip populate_lic archives when removing duplicates Martin Jansa
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Martin Jansa @ 2014-03-29 10:34 UTC (permalink / raw)
To: openembedded-core
* it's possible that corresponding .tgz files were already removed
(e.g. with -d option and older version of this script) and this
won't find orphaned .siginfo or .done files to remove
* add sort -u to count files found multiple times only once
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
scripts/sstate-cache-management.sh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/scripts/sstate-cache-management.sh b/scripts/sstate-cache-management.sh
index 34bde01..ffda05e 100755
--- a/scripts/sstate-cache-management.sh
+++ b/scripts/sstate-cache-management.sh
@@ -341,9 +341,9 @@ rm_by_stamps (){
echo "Done"
# Total number of files including sstate-, .siginfo and .done files
- total_files=`find $cache_dir -name 'sstate*' | wc -l`
+ total_files=`find $cache_dir -type f -name 'sstate*' | wc -l`
# Save all the state file list to a file
- find $cache_dir -name 'sstate*.tgz' | sort -u -o $cache_list
+ find $cache_dir -type f -name 'sstate*' | sort -u -o $cache_list
echo "Figuring out the files which will be removed ... "
for i in $all_sums; do
@@ -355,14 +355,14 @@ rm_by_stamps (){
sort -u $keep_list -o $keep_list
to_del=`comm -1 -3 $keep_list $cache_list`
gen_rmlist $rm_list "$to_del"
- let total_deleted=`cat $rm_list | wc -w`
+ let total_deleted=`cat $rm_list | sort -u | wc -w`
if [ $total_deleted -gt 0 ]; then
- [ $debug -gt 0 ] && cat $rm_list
+ [ $debug -gt 0 ] && cat $rm_list | sort -u
read_confirm
if [ "$confirm" = "y" -o "$confirm" = "Y" ]; then
echo "Removing sstate cache files ... ($total_deleted files)"
# Remove them one by one to avoid the argument list too long error
- for i in `cat $rm_list`; do
+ for i in `cat $rm_list | sort -u`; do
rm -f $verbose $i
done
echo "$total_deleted files have been removed"
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] sstate-cache-management: skip populate_lic archives when removing duplicates
2014-03-29 10:34 [PATCH 0/4] sstate-cache-management fixes Martin Jansa
2014-03-29 10:34 ` [PATCH 1/4] sstate-cache-management: rm_by_stamps - include signatures of .sigdata. files Martin Jansa
2014-03-29 10:34 ` [PATCH 2/4] sstate-cache-management: rm_by_stamps - remove .siginfo and .done files Martin Jansa
@ 2014-03-29 10:34 ` Martin Jansa
2014-03-29 10:34 ` [PATCH 4/4] sstate-cache-management: rm_by_stamps - discover all suffixes like remove_duplicated does Martin Jansa
2014-03-29 10:57 ` [PATCH 0/4] sstate-cache-management fixes Jacob Kroon
4 siblings, 0 replies; 6+ messages in thread
From: Martin Jansa @ 2014-03-29 10:34 UTC (permalink / raw)
To: openembedded-core
* there are 2 issues
* all *gcc* recipes produce "duplicate" files and we cannot keep just the newest one:
OE qemux86@ ~/build/oe-core $ find sstate-cache/ | grep gcc.*populate_lic
sstate-cache/cd/sstate:gcc::4.8.2:r0::3:cd8d1a33b832662b624f5e4bd9f55154_populate_lic.tgz
sstate-cache/cd/sstate:gcc::4.8.2:r0::3:cd8d1a33b832662b624f5e4bd9f55154_populate_lic.tgz.siginfo
sstate-cache/d5/sstate:gcc::4.8.2:r0::3:d591af812395cc386e017fa2c8fa0722_populate_lic.tgz
sstate-cache/d5/sstate:gcc::4.8.2:r0::3:d591af812395cc386e017fa2c8fa0722_populate_lic.tgz.siginfo
sstate-cache/f7/sstate:gcc::4.8.2:r0::3:f74cfd4982fd7c349a5418f07297f955_populate_lic.tgz
sstate-cache/f7/sstate:gcc::4.8.2:r0::3:f74cfd4982fd7c349a5418f07297f955_populate_lic.tgz.siginfo
sstate-cache/74/sstate:gcc::4.8.2:r0::3:7489e4502cb446506b9829cda13c7630_populate_lic.tgz
sstate-cache/74/sstate:gcc::4.8.2:r0::3:7489e4502cb446506b9829cda13c7630_populate_lic.tgz.siginfo
OE qemux86@ ~/build/oe-core $ find tmp-eglibc/stamps/ | grep gcc.*populate_lic
tmp-eglibc/stamps/i586-oe-linux/gcc-cross-initial/4.8.2-r0.do_populate_lic_setscene.cd8d1a33b832662b624f5e4bd9f55154
tmp-eglibc/stamps/i586-oe-linux/libgcc/4.8.2-r0.do_populate_lic_setscene.f74cfd4982fd7c349a5418f07297f955
tmp-eglibc/stamps/i586-oe-linux/gcc-cross/4.8.2-r0.do_populate_lic_setscene.d591af812395cc386e017fa2c8fa0722
tmp-eglibc/stamps/i586-oe-linux/gcc-runtime/4.8.2-r0.do_populate_lic_setscene.7489e4502cb446506b9829cda13c7630
* the same for target and native versions of the same recipe:
OE qemux86@ ~/build/oe-core $ find tmp-eglibc/stamps/ | grep opkg-utils.*populate_lic
tmp-eglibc/stamps/x86_64-linux/opkg-utils-native/0.1.8+gitAUTOINC+c33b217016-r0.do_populate_lic_setscene.dd21a3c5444482ce90be4c9a33d806f1
tmp-eglibc/stamps/i586-oe-linux/opkg-utils/0.1.8+gitAUTOINC+c33b217016-r0.do_populate_lic_setscene.8571422f9e311dc41bb6b21e71a09bc0
OE qemux86@ ~/build/oe-core $ find sstate-cache/ | grep opkg-utils.*populate_lic
sstate-cache/dd/sstate:opkg-utils::0.1.8+gitAUTOINC+c33b217016:r0::3:dd21a3c5444482ce90be4c9a33d806f1_populate_lic.tgz.siginfo
sstate-cache/dd/sstate:opkg-utils::0.1.8+gitAUTOINC+c33b217016:r0::3:dd21a3c5444482ce90be4c9a33d806f1_populate_lic.tgz
sstate-cache/85/sstate:opkg-utils::0.1.8+gitAUTOINC+c33b217016:r0::3:8571422f9e311dc41bb6b21e71a09bc0_populate_lic.tgz.siginfo
sstate-cache/85/sstate:opkg-utils::0.1.8+gitAUTOINC+c33b217016:r0::3:8571422f9e311dc41bb6b21e71a09bc0_populate_lic.tgz
* similar problem for .siginfo file of do_patch:
OE qemux86@ ~/build/oe-core $ find sstate-cache/ | grep eglibc.*patch
sstate-cache/99/sstate:eglibc::2.19:r0::3:99b7e1d688e4c6c659b458c9c57611df_patch.tgz.siginfo
sstate-cache/11/sstate:eglibc::2.19:r0::3:11401ddd208a753fee17696b14dc1e52_patch.tgz.siginfo
OE qemux86@ ~/build/oe-core $ find tmp-eglibc/stamps/ | grep /eglibc.*patch
tmp-eglibc/stamps/i586-oe-linux/eglibc-initial/2.19-r0.do_patch.sigdata.99b7e1d688e4c6c659b458c9c57611df
tmp-eglibc/stamps/i586-oe-linux/eglibc/2.19-r0.do_patch.sigdata.11401ddd208a753fee17696b14dc1e52
* maybe these should have ideally identical signatures, but before it's fixed lets
just skip removing them
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
scripts/sstate-cache-management.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/scripts/sstate-cache-management.sh b/scripts/sstate-cache-management.sh
index ffda05e..77afd68 100755
--- a/scripts/sstate-cache-management.sh
+++ b/scripts/sstate-cache-management.sh
@@ -225,6 +225,10 @@ remove_duplicated () {
# Save the file list which needs to be removed
local remove_listdir=`mktemp -d` || exit 1
for suffix in $sstate_suffixes; do
+ if [ "$suffix" = "populate_lic" ] ; then
+ echo "Skipping populate_lic, because removing duplicates doesn't work correctly for them (use --stamps-dir instead)"
+ continue
+ fi
# Total number of files including .siginfo and .done files
total_files_suffix=`grep ".*/sstate:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:_]*_$suffix\.tgz.*" $sstate_files_list | wc -l 2>/dev/null`
total_tgz_suffix=`grep ".*/sstate:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:_]*_$suffix\.tgz$" $sstate_files_list | wc -l 2>/dev/null`
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] sstate-cache-management: rm_by_stamps - discover all suffixes like remove_duplicated does
2014-03-29 10:34 [PATCH 0/4] sstate-cache-management fixes Martin Jansa
` (2 preceding siblings ...)
2014-03-29 10:34 ` [PATCH 3/4] sstate-cache-management: skip populate_lic archives when removing duplicates Martin Jansa
@ 2014-03-29 10:34 ` Martin Jansa
2014-03-29 10:57 ` [PATCH 0/4] sstate-cache-management fixes Jacob Kroon
4 siblings, 0 replies; 6+ messages in thread
From: Martin Jansa @ 2014-03-29 10:34 UTC (permalink / raw)
To: openembedded-core
* instead of hard coding list of sstate enabled task use
the same function as remove_duplicated to find them in
sstate-cache directory
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
scripts/sstate-cache-management.sh | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/scripts/sstate-cache-management.sh b/scripts/sstate-cache-management.sh
index 77afd68..e5c57d3 100755
--- a/scripts/sstate-cache-management.sh
+++ b/scripts/sstate-cache-management.sh
@@ -324,16 +324,23 @@ rm_by_stamps (){
local cache_list=`mktemp` || exit 1
local keep_list=`mktemp` || exit 1
local rm_list=`mktemp` || exit 1
- local suffixes
local sums
local all_sums
- suffixes="populate_sysroot populate_lic package_write_ipk \
- package_write_rpm package_write_deb package packagedata deploy"
+ # Total number of files including sstate-, .siginfo and .done files
+ total_files=`find $cache_dir -type f -name 'sstate*' | wc -l`
+ # Save all the state file list to a file
+ find $cache_dir -type f -name 'sstate*' | sort -u -o $cache_list
+
+ echo "Figuring out the suffixes in the sstate cache dir ... "
+ local sstate_suffixes="`sed 's%.*/sstate:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^_]*_\([^:]*\)\.tgz.*%\1%g' $cache_list | sort -u`"
+ echo "Done"
+ echo "The following suffixes have been found in the cache dir:"
+ echo $sstate_suffixes
# Figure out all the md5sums in the stamps dir.
echo "Figuring out all the md5sums in stamps dir ... "
- for i in $suffixes; do
+ for i in $sstate_suffixes; do
# There is no "\.sigdata" but "_setcene" when it is mirrored
# from the SSTATE_MIRRORS, use them to figure out the sum.
sums=`find $stamps -maxdepth 3 -name "*.do_$i.*" \
@@ -344,11 +351,6 @@ rm_by_stamps (){
done
echo "Done"
- # Total number of files including sstate-, .siginfo and .done files
- total_files=`find $cache_dir -type f -name 'sstate*' | wc -l`
- # Save all the state file list to a file
- find $cache_dir -type f -name 'sstate*' | sort -u -o $cache_list
-
echo "Figuring out the files which will be removed ... "
for i in $all_sums; do
grep ".*/sstate:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:${i}_.*" $cache_list >>$keep_list
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] sstate-cache-management fixes
2014-03-29 10:34 [PATCH 0/4] sstate-cache-management fixes Martin Jansa
` (3 preceding siblings ...)
2014-03-29 10:34 ` [PATCH 4/4] sstate-cache-management: rm_by_stamps - discover all suffixes like remove_duplicated does Martin Jansa
@ 2014-03-29 10:57 ` Jacob Kroon
4 siblings, 0 replies; 6+ messages in thread
From: Jacob Kroon @ 2014-03-29 10:57 UTC (permalink / raw)
To: Martin Jansa; +Cc: openembedded-core
On Sat, 29 Mar 2014, Martin Jansa wrote:
> Removing do_package was reported by Jacob Kroon and then I've found
> few more issues, the most surprising is the one with populate_lic.
>
> The following changes since commit b16de9af5c7108396a347e7107c73608a2f8d74f:
>
> packagegroup-toolset-native: Update after ocf-linux -> cryptodev-linux change (2014-03-27 19:53:07 +0000)
>
> are available in the git repository at:
>
> git://git.openembedded.org/openembedded-core-contrib jansa/sstate-management
> http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/sstate-management
>
> Martin Jansa (4):
> sstate-cache-management: rm_by_stamps - include signatures of
> .sigdata. files
> sstate-cache-management: rm_by_stamps - remove .siginfo and .done
> files
> sstate-cache-management: skip populate_lic archives when removing
> duplicates
> sstate-cache-management: rm_by_stamps - discover all suffixes like
> remove_duplicated does
>
> scripts/sstate-cache-management.sh | 34 ++++++++++++++++++++--------------
> 1 file changed, 20 insertions(+), 14 deletions(-)
>
For the whole patch series:
Tested-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-03-29 10:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-29 10:34 [PATCH 0/4] sstate-cache-management fixes Martin Jansa
2014-03-29 10:34 ` [PATCH 1/4] sstate-cache-management: rm_by_stamps - include signatures of .sigdata. files Martin Jansa
2014-03-29 10:34 ` [PATCH 2/4] sstate-cache-management: rm_by_stamps - remove .siginfo and .done files Martin Jansa
2014-03-29 10:34 ` [PATCH 3/4] sstate-cache-management: skip populate_lic archives when removing duplicates Martin Jansa
2014-03-29 10:34 ` [PATCH 4/4] sstate-cache-management: rm_by_stamps - discover all suffixes like remove_duplicated does Martin Jansa
2014-03-29 10:57 ` [PATCH 0/4] sstate-cache-management fixes Jacob Kroon
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.