diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2022-04-29 12:56:22 +0200 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2022-04-29 15:55:55 +0200 |
commit | 4de9e157f8b9f030e087146085b4543819b07b67 (patch) | |
tree | 5f9fab68e614e96d1cf8c62566c6613e90167e30 | |
parent | 1bc61ee3959a47013be5b12a902e4ba575fa2aaa (diff) | |
download | perl-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/NEWS | 2 | ||||
-rw-r--r-- | RPM4/t/05transaction.t | 4 |
2 files changed, 5 insertions, 1 deletions
@@ -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"); |