Gentoo Archives: gentoo-user

From: covici@××××××××××.com
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] upgrade to perl 5.22.0 yields perl double free or corruption
Date: Tue, 04 Aug 2015 10:53:34
Message-Id: 22077.1438685594@ccs.covici.com
In Reply to: Re: [gentoo-user] upgrade to perl 5.22.0 yields perl double free or corruption by Alan McKinnon
1 Alan McKinnon <alan.mckinnon@×××××.com> wrote:
2
3 > On 04/08/2015 12:14, covici@××××××××××.com wrote:
4 > > Alan McKinnon <alan.mckinnon@×××××.com> wrote:
5 > >
6 > >> On 04/08/2015 11:13, covici@××××××××××.com wrote:
7 > >>> Hi. After upgrading to perl 5.22.0 which was a pain -- had to remove
8 > >>> all those virtuals -- I am now finding that a small perl program which
9 > >>> connects to a mysql database yields the following when it exits:
10 > >>>
11 > >>> *** Error in `perl': double free or corruption (!prev): 0x0000000001ed8610 ***
12 > >>> ======= Backtrace: =========
13 > >>> /lib64/libc.so.6(+0x71e4b)[0x7f59bc417e4b]
14 > >>> /lib64/libc.so.6(+0x7730e)[0x7f59bc41d30e]
15 > >>> /lib64/libc.so.6(+0x77afb)[0x7f59bc41dafb]
16 > >>> /usr/lib64/perl5/vendor_perl/5.22.0/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so(mysql_db_destroy+0x32)[0x7f59bb206602]
17 > >>> /usr/lib64/perl5/vendor_perl/5.22.0/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so(+0x1234d)[0x7f59bb21034d]
18 > >>> /usr/lib64/perl5/vendor_perl/5.22.0/x86_64-linux-thread-multi/auto/DBI/DBI.so(XS_DBI_dispatch+0xcc9)[0x7f59bb83e7a9]
19 > >>> /usr/lib64/libperl.so.5.22(Perl_pp_entersub+0x49b)[0x7f59bc81663b]
20 > >>> /usr/lib64/libperl.so.5.22(Perl_call_sv+0x36f)[0x7f59bc794b5f]
21 > >>> /usr/lib64/libperl.so.5.22(+0xda25f)[0x7f59bc81b25f]
22 > >>> /usr/lib64/libperl.so.5.22(Perl_sv_clear+0x740)[0x7f59bc81bc10]
23 > >>> /usr/lib64/libperl.so.5.22(Perl_sv_free2+0x5d)[0x7f59bc81be9d]
24 > >>> /usr/lib64/libperl.so.5.22(+0xb7298)[0x7f59bc7f8298]
25 > >>> /usr/lib64/libperl.so.5.22(Perl_mg_free+0x2e)[0x7f59bc7f8a4e]
26 > >>> /usr/lib64/libperl.so.5.22(Perl_sv_clear+0xae)[0x7f59bc81b57e]
27 > >>> /usr/lib64/libperl.so.5.22(Perl_sv_free2+0x5d)[0x7f59bc81be9d]
28 > >>> /usr/lib64/libperl.so.5.22(Perl_leave_scope+0xd51)[0x7f59bc84a411]
29 > >>> /usr/lib64/libperl.so.5.22(+0x52c56)[0x7f59bc793c56]
30 > >>> /usr/lib64/libperl.so.5.22(Perl_my_exit+0x3f)[0x7f59bc798d0f]
31 > >>> /usr/lib64/libperl.so.5.22(Perl_pp_exit+0x4a)[0x7f59bc857a6a]
32 > >>> /usr/lib64/libperl.so.5.22(Perl_runops_standard+0x16)[0x7f59bc80f316]
33 > >>> /usr/lib64/libperl.so.5.22(perl_run+0x2f9)[0x7f59bc79c369]
34 > >>> perl(main+0x149)[0x400e39]
35 > >>> /lib64/libc.so.6(__libc_start_main+0xf0)[0x7f59bc3c67b0]
36 > >>> perl(_start+0x29)[0x400e79]
37 > >>> ======= Memory map: ========
38 > >>>
39 > >>> memory map ommitted, if it is needed I can reproduce.
40 > >>>
41 > >>> So, should I downgrade -- means removing all those virtuals again -- or
42 > >>> any other ideas would be appreciated.
43 > >>>
44 > >>> I am running the unstable gentoo, if you need more information, I can
45 > >>> include it.
46 > >>>
47 > >>> Thanks in advance for any suggestions.
48 > >>>
49 > >>
50 > >>
51 > >> did you run emerge @preserved-rebuild, revdep-rebuild and perl-cleaner
52 > >> after the upgrade? That stuff's easy to forget.
53 > >>
54 > >>
55 > >
56 > > I ran both perl-cleaner --reallyall and emerge @preserved-rebuild which
57 > > only rebuilt some haskall stuff. Perl cleaner had some problems, it
58 > > tried to rebuild some python packages which at the time (before I did
59 > > the complete update_) had some problems because of the 3.3 to 3.4
60 > > change. So I just took the emerge line from the perl cleaner, ommitted
61 > > any package which was a hard blocker andran the rest -- about 186
62 > > packages. I can try to rerun perl-cleaner if you think that would help
63 > > any, since I now have updated the world.
64 > >
65 >
66 > I think running perl-cleaner --all as step 1 is wise.
67 > It shouldn't need to make any changes, but let's cover all the usual
68 > bases first, paying particular attention to any DBD/DBI stuff it might
69 > find that were not installed by portage.
70 >
71 > I am also curious why you have blockers and had to fiddle with virtuals
72 > - the same upgrade here was clean and portage just automatically did
73 > everything it needed. Do you have any package.* entry for perl stuff?
74 >
75 > grep -ir perl /etc/portage
76
77 Well, in the past portage did fix all the virtuals, but not this time
78 and I saw a post on gentoo forums which suggested I unmerge all of them
79 and then do the update. But I just did perl first and then ran
80 perl-cleaner --reallyall and then did the update. I do have some use
81 flags with perl i.e.
82
83 /etc/portage/package.use:dev-lang/perl ithreads
84 /etc/portage/package.use:sys-devel/libperl ithreads
85 /etc/portage/package.use:www-apache/mod-perl threads
86 /etc/portage/package.use:net-nntp/inn perl
87 /etc/portage/package.use:dev-db/postgresql-server perl python
88
89 and an extra_econf for innd which ran OK.
90
91
92
93 --
94 Your life is like a penny. You're going to lose it. The question is:
95 How do
96 you spend it?
97
98 John Covici
99 covici@××××××××××.com