summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <thierry.vignaud@gmail.com>2022-04-29 12:56:22 +0200
committerThierry Vignaud <thierry.vignaud@gmail.com>2022-04-29 15:55:55 +0200
commit4de9e157f8b9f030e087146085b4543819b07b67 (patch)
tree5f9fab68e614e96d1cf8c62566c6613e90167e30
parent1bc61ee3959a47013be5b12a902e4ba575fa2aaa (diff)
downloadperl-RPM4-4de9e157f8b9f030e087146085b4543819b07b67.tar
perl-RPM4-4de9e157f8b9f030e087146085b4543819b07b67.tar.gz
perl-RPM4-4de9e157f8b9f030e087146085b4543819b07b67.tar.bz2
perl-RPM4-4de9e157f8b9f030e087146085b4543819b07b67.tar.xz
perl-RPM4-4de9e157f8b9f030e087146085b4543819b07b67.zip
Skip failing test Te->files on mga[2-7]
We added the test in commit f6d333affb60e5364bf30355869fd359da2317e8 when switching to the new API. But sadly this new test fails on older mga releases. Eg Te->files segfaults on mga3 with rpm-4.11.0.1: Stack trace when testing Te->files in RPM-0.45+: ok 32 - Running transaction justdb ok 33 - Running traverse on transaction ok 34 - Can find header in transaction *** Error in `/usr/bin/perl': free(): invalid next size (fast): 0x0000000000f9a1b0 *** Program received signal SIGSEGV, Segmentation fault. 0x00007ffff69932fb in malloc_consolidate () from /lib64/libc.so.6 (gdb) bt #0 0x00007ffff69932fb in malloc_consolidate () from /lib64/libc.so.6 #1 0x00007ffff699442d in _int_malloc () from /lib64/libc.so.6 #2 0x00007ffff699712d in calloc () from /lib64/libc.so.6 #3 0x00007ffff7de830f in _dl_new_object () from /lib64/ld-linux-x86-64.so.2 #4 0x00007ffff7de3fdc in _dl_map_object_from_fd () from /lib64/ld-linux-x86-64.so.2 #5 0x00007ffff7de5c2b in _dl_map_object () from /lib64/ld-linux-x86-64.so.2 #6 0x00007ffff7df01fc in dl_open_worker () from /lib64/ld-linux-x86-64.so.2 #7 0x00007ffff7dec526 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2 #8 0x00007ffff7defd39 in _dl_open () from /lib64/ld-linux-x86-64.so.2 #9 0x00007ffff6a42202 in do_dlopen () from /lib64/libc.so.6 #10 0x00007ffff7dec526 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2 #11 0x00007ffff6a422c4 in __libc_dlopen_mode () from /lib64/libc.so.6 #12 0x00007ffff6a1c4e5 in init () from /lib64/libc.so.6 #13 0x00007ffff6cd89f0 in pthread_once () from /lib64/libpthread.so.0 #14 0x00007ffff6a1c604 in backtrace () from /lib64/libc.so.6 #15 0x00007ffff698cea5 in __libc_message () from /lib64/libc.so.6 #16 0x00007ffff6993e66 in _int_free () from /lib64/libc.so.6 #17 0x00007ffff54354a9 in rfree () from /lib/../lib64/librpmio.so.3 #18 0x00007ffff56880e9 in rpmfiFree () from /lib/../lib64/librpm.so.3 #19 0x00007ffff56829de in rpmalFree () from /lib/../lib64/librpm.so.3 #20 0x00007ffff5691a99 in rpmtsClean () from /lib/../lib64/librpm.so.3 #21 0x00007ffff5691aec in rpmtsEmpty () from /lib/../lib64/librpm.so.3 #22 0x00007ffff5691b85 in rpmtsFree () from /lib/../lib64/librpm.so.3 #23 0x00007ffff58bd910 in XS_RPM4__Transaction_DESTROY (my_perl=<optimized out>, cv=<optimized out>) at RPM4.xs:1424 #24 0x00007ffff7b11a22 in Perl_pp_entersub () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #25 0x00007ffff7a9fc69 in Perl_call_sv () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #26 0x00007ffff7b1ae6b in S_curse () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #27 0x00007ffff7b1b808 in Perl_sv_clear () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #28 0x00007ffff7b1bbe2 in Perl_sv_free2 () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #29 0x00007ffff7b3eea0 in Perl_free_tmps () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #30 0x00007ffff7b0a835 in Perl_pp_nextstate () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #31 0x00007ffff7b0a196 in Perl_runops_standard () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #32 0x00007ffff7aa5b45 in perl_run () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #33 0x0000000000400f09 in main () Stack trace when testing Te->files in RPM-0.44: Program received signal SIGABRT, Aborted. 0x00007ffff694d6e5 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00007ffff694d6e5 in raise () from /lib64/libc.so.6 #1 0x00007ffff694ed48 in abort () from /lib64/libc.so.6 #2 0x00007ffff698ce8b in __libc_message () from /lib64/libc.so.6 #3 0x00007ffff6993e66 in _int_free () from /lib64/libc.so.6 #4 0x00007ffff54354a9 in rfree () from /lib/../lib64/librpmio.so.3 #5 0x00007ffff5688062 in rpmfiFree () from /lib/../lib64/librpm.so.3 #6 0x00007ffff56829de in rpmalFree () from /lib/../lib64/librpm.so.3 #7 0x00007ffff5691a99 in rpmtsClean () from /lib/../lib64/librpm.so.3 #8 0x00007ffff5691aec in rpmtsEmpty () from /lib/../lib64/librpm.so.3 #9 0x00007ffff5691b85 in rpmtsFree () from /lib/../lib64/librpm.so.3 #10 0x00007ffff58bd910 in XS_RPM4__Transaction_DESTROY (my_perl=<optimized out>, cv=<optimized out>) at RPM4.xs:1424 #11 0x00007ffff7b11a22 in Perl_pp_entersub () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #12 0x00007ffff7a9fc69 in Perl_call_sv () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #13 0x00007ffff7b1ae6b in S_curse () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #14 0x00007ffff7b1b808 in Perl_sv_clear () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #15 0x00007ffff7b1bbe2 in Perl_sv_free2 () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #16 0x00007ffff7b3eea0 in Perl_free_tmps () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #17 0x00007ffff7b0a835 in Perl_pp_nextstate () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #18 0x00007ffff7b0a196 in Perl_runops_standard () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #19 0x00007ffff7aa5b45 in perl_run () from /usr/lib/perl5/5.16.3/x86_64-linux-thread-multi/CORE/libperl.so #20 0x0000000000400f09 in main ()
-rw-r--r--RPM4/NEWS2
-rw-r--r--RPM4/t/05transaction.t4
2 files changed, 5 insertions, 1 deletions
diff --git a/RPM4/NEWS b/RPM4/NEWS
index 92d9590..ed7c34c 100644
--- a/RPM4/NEWS
+++ b/RPM4/NEWS
@@ -1,5 +1,5 @@
- Adapt for rpm-4.19
-- Fix Te->file segfaulting
+- Fix Te->file segfaulting (at least with rpm-4.18+)
Version 0.45 - 27 April 2022
diff --git a/RPM4/t/05transaction.t b/RPM4/t/05transaction.t
index 1a319b3..ffc4837 100644
--- a/RPM4/t/05transaction.t
+++ b/RPM4/t/05transaction.t
@@ -56,7 +56,11 @@ ok($h, "Reading the header works");
ok($ts->transadd($h, "$Bin/test-rpm-1.0-1mdk.noarch.rpm") == 0, "Adding a package to transaction works");
ok($ts->traverse_transaction(sub {
ok($_[0]->fullname, "Can get name from te");
+SKIP: {
+# segfault on mga[2-7], aka with rpm-4.9 & rpm-4.1[04], status is unknown for 4.15
+skip 'segfault on older rpm', 1 if `rpm --version` =~ /4\.(9|1[0-5])\./;
ok($_[0]->files, "Can get files from te");
+}
ok($_[0]->type, "Can get type from te");
}), "traverse_transaction works");