Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Pidgin crashes when started with any Perl plugin active
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
andrei.mihaila
n00b
n00b


Joined: 20 Jun 2013
Posts: 3

PostPosted: Thu Jun 20, 2013 4:54 pm    Post subject: Pidgin crashes when started with any Perl plugin active Reply with quote

Pidgin crashes when started with any Perl plugin active. This started to happen after I upgraded to Perl 5.16.x ... which was a long time ago (and I admit I was too lazy to report it at that time). I did report it upstream (https://developer.pidgin.im/ticket/15377) - they said they don't know about any issue with Pidgin and Perl 5.16.x. Then I tested on an OpenSuse live CD with Perl 5.16.3 and it worked. So this seems to be related to Gentoo (most probably to some particular setting when building Perl or Pidgin with Perl support).

I'd like to know if anyone else has this issue. A simple way to test is to add a simple Perl plugin (that doesn't do anything) such as:
Code:

use Purple;

our %PLUGIN_INFO = (
    perl_api_version => 2,
    name             => "test",
    load             => "test"
);

sub test() {
}


Save the code into a file under ~/.purple/plugins say ... ~/.purple/plugins/test.pl and restart Pidgin and activate the plugin. It should crash either now either when restarting it after the plugin activation ...

Another plugin example can be downloaded from here http://gitorious.org/libpurple-kwallet-plugin/libpurple-kwallet-plugin/blobs/master/libpurple_kwallet_plugin.pl - it saves the Pidgin accounts passwords into KWallet. It is the reason I want Pidgin Perl plugins to work - this plugin is useful to me (... should also mention that I've written it myself). To get it just do
Code:

cd ~/.purple/plugins && wget http://gitorious.org/libpurple-kwallet-plugin/libpurple-kwallet-plugin/blobs/master/libpurple_kwallet_plugin.pl

and restart Pidgin. Activate the plugin and it should crash (or on the next Pidgin restart) ...

I have Pidgin 2.10.7-r1 installed and the relevant log messages when starting it are
Quote:

(19:40:37) plugins: Loading saved plugin /home/mad/.purple/plugins/libpurple_kwallet_plugin.pl
(19:40:37) perl: Loading perl script
Hi, user. We need to talk.
I think something's gone wrong here. It's probably my fault.
No, really, it's not you... it's me... no no no, I think we get along well
it's just that.... well, I want to see other people. I... what?!? NO! I
haven't been cheating on you!! How many times do you want me to tell you?! And
for the last time, it's just a rash!
Aborted


The rest of the log (including a backtrace) can be found in the file I attached to the bug reported upstream https://developer.pidgin.im/attachment/ticket/15377/pidgin-backtrace.log. Nothing seems to have changed ever since.

Thanks in advance!


My perl -v says:
Quote:

$ perl -V
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:

Platform:
osname=linux, osvers=3.7.6-gentoo, archname=x86_64-linux
uname='linux gentoo 3.7.6-gentoo #3 smp preempt tue feb 19 22:50:52 eet 2013 x86_64 intel(r) core(tm)2 quad cpu q9550 @ 2.83ghz genuineintel gnulinux '
config_args='-des -Duseshrplib -Darchname=x86_64-linux -Dcc=x86_64-pc-linux-gnu-gcc -Doptimize=-march=native -msse -msse2 -msse3 -mmmx -msse4.1 -O2 -pipe -Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dinstallprefix=/usr -Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin -Dprivlib=/usr/lib64/perl5/5.16.3 -Darchlib=/usr/lib64/perl5/5.16.3/x86_64-linux -Dsitelib=/usr/local/lib64/perl5/5.16.3 -Dsitearch=/usr/local/lib64/perl5/5.16.3/x86_64-linux -Dvendorlib=/usr/lib64/perl5/vendor_perl/5.16.3 -Dvendorarch=/usr/lib64/perl5/vendor_perl/5.16.3/x86_64-linux -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dvendorman1dir=/usr/share/man/man1 -Dvendorman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3pm -Dlibperl=libperl.so.5.16.3 -Dlocincpth=/usr/include -Dglibpth=/lib64 /usr/lib64 -Duselargefiles -Dd_semctl_semun -Dcf_by=Gentoo -Dmyhostname=localhost -Dperladmin=root@localhost -Dinstallusrbinperl=n -Ud_csh -Uusenm -Di_ndbm -Di_gdbm -Ui_db -DDEBUGGING=none -Dinc_version_list=5.16.2/x86_64-linux 5.16.2 5.16.1/x86_64-linux 5.16.1 5.16.0/x86_64-linux 5.16.0 -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='x86_64-pc-linux-gnu-gcc', ccflags ='-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-march=native -msse -msse2 -msse3 -mmmx -msse4.1 -O2 -pipe',
cppflags='-fno-strict-aliasing -pipe'
ccversion='', gccversion='4.5.4', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='x86_64-pc-linux-gnu-gcc', ldflags ='-Wl,-O1 -Wl,--as-needed'
libpth=/usr/local/lib64 /lib64 /usr/lib64
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.16.so, so=so, useshrplib=true, libperl=libperl.so.5.16.3
gnulibc_version='2.16'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -march=native -msse -msse2 -msse3 -mmmx -msse4.1 -O2 -pipe -Wl,-O1 -Wl,--as-needed'


Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Locally applied patches:
gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054 cpan/ExtUtils-MakeMaker: drop $PORTAGE_TMPDIR from LD_RUN_PATH
gentoo/EUMM_delete_packlist - Don't install .packlist or perllocal.pod for perl or vendor
gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
gentoo/cpanplus_definstalldirs - Configure CPANPLUS to use the site directories by default.
gentoo/create_libperl_soname - https://bugs.gentoo.org/286840 Set libperl soname
gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557 Don't force -fstack-protector on everyone.
gentoo/enc2xs - https://bugs.gentoo.org/338802 Tweak enc2xs to ignore missing @INC directories
gentoo/mod_paths - Add /etc/perl to @INC
gentoo/patchlevel - List packaged patches for perl-5.16.3(#1) in patchlevel.h
gentoo/aix_soname - aix gcc detection and shared library soname support
gentoo/solaris-relocation - Fix lddlflags for solaris
gentoo/opensolars_headers - Add headers for opensolaris
gentoo/cleanup-paths - Cleanup PATH and shrpenv
gentoo/usr_local - Remove /usr/local paths
gentoo/hints_hpux - Fix hpux hints
gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 darwin: Use $CC to link
gentoo/mint - [perl #89502] Mint fixes
gentoo/interix - Fix interix hints
fixes/maketext-code-execution - [1735f6f] https://bugs.gentoo.org/448632 Fix misparsing of maketext strings.
fixes/cgi-cr-escaping - https://bugs.gentoo.org/443446 CR escaping for P3P and Set-Cookie headers
debian/cpan-missing-site-dirs - https://bugs.gentoo.org/422981 Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable
Built under linux
Compiled at Mar 26 2013 22:32:04
@INC:
/etc/perl
/usr/local/lib64/perl5/5.16.3/x86_64-linux
/usr/local/lib64/perl5/5.16.3
/usr/lib64/perl5/vendor_perl/5.16.3/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.16.3
/usr/local/lib64/perl5
/usr/lib64/perl5/vendor_perl/5.16.2/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.16.2
/usr/lib64/perl5/vendor_perl/5.16.1/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.16.1
/usr/lib64/perl5/vendor_perl
/usr/lib64/perl5/5.16.3/x86_64-linux
/usr/lib64/perl5/5.16.3
.


My emerge --info
Quote:

emerge --info
Portage 2.2.0_alpha179 (default/linux/amd64/13.0/desktop/kde, gcc-4.7.3, glibc-2.17, 3.8.5-gentoo x86_64)
=================================================================
System uname: Linux-3.8.5-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9550_@_2.83GHz-with-gentoo-2.2
KiB Mem: 3531524 total, 47456 free
KiB Swap: 20059308 total, 20040800 free
Timestamp of tree: Tue, 11 Jun 2013 16:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.1
app-shells/bash: 4.2_p45
dev-java/java-config: 2.2.0
dev-lang/python: 2.7.5, 3.2.5, 3.3.2
dev-util/cmake: 2.8.11.1
dev-util/pkgconfig: 0.28
sys-apps/baselayout: 2.2
sys-apps/openrc: 0.11.8
sys-apps/sandbox: 2.6-r1
sys-devel/autoconf: 2.13, 2.69
sys-devel/automake: 1.10.3, 1.11.6, 1.12.6, 1.13.2
sys-devel/binutils: 2.23.1
sys-devel/gcc: 4.5.4, 4.6.3, 4.7.3
sys-devel/gcc-config: 1.8
sys-devel/libtool: 2.4.2
sys-devel/make: 3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc: 2.17
Repositories: gentoo kde wish mv local
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -msse -msse2 -msse3 -mmmx -msse4.1 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -msse -msse2 -msse3 -mmmx -msse4.1 -O2 -pipe"
DISTDIR="/usr/portage_distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirror.qubenet.net/mirror/gentoo/ ftp://gentoo.imj.fr/pub/gentoo/ http://91.121.125.139/gentoo-distfiles/ ftp://mirror.leaseweb.com/gentoo/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage_packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/kde /usr/local/portage/layman/wish /usr/local/portage/layman/mv /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 aufs bash-completion branding bzip2 cairo cdda cdio cdr cleartype cli cmake consolekit coverart cracklib crypt cups cxx dbus declarative djvu dri dts dv dvd dvdr emboss enca encode exif fam ffmpeg firefox flac fontconfig fontforge g3dvl gallium gdbm gif git glitz gpm gpssync graphics graphite graphviz gsm gstreamer hddtemp iconv icu imagemagick infinality iproute2 ipv6 jpeg jpeg2k kde kernel-patch kipi lame lastfmradio lcdfilter lcms ldap libnotify lirc lm_sensors lyx lzma mad methodjit minizip mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib mysql ncurses nls nptl nsplugin ofa ogg opengl openmp pam pam_ssh pango pbins pcre pdf pdfimport phonon plasma png policykit postproc ppds prediction private-headers qalculate qt3support qt4 qthelp quicktime qwt readline redeyes reviewboard rss schroedinger search search-index semantic-desktop session sftp smp spell sse sse2 sse4_1 ssl ssse3 startup-notification svg taglib tcpd templates theora tiff truetype udev udisks unicode upower usb utils v4l v4l2 valgrind vdpau visibility vorbis webm x264 xcb xcomposite xetex xinerama xml xscreensaver xv xvid xvmc zip zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LIRC_DEVICES="serial" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1406

PostPosted: Tue Jun 25, 2013 6:13 pm    Post subject: Reply with quote

See:
perl-cleaner Guide

Try:
Code:
perl-cleaner --ask all
This will remove all perl modules linked to an older version of perl and rebuild them with your current perl.
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
andrei.mihaila
n00b
n00b


Joined: 20 Jun 2013
Posts: 3

PostPosted: Tue Jun 25, 2013 7:57 pm    Post subject: Reply with quote

Did try it a few months ago when this first occurred. No luck.
Tried it a few minutes ago to double check (did a perl-cleaner --reallyall) - same Pidgin crash :-(. But thanks anyway!

Tried searching for the function that crashes (internal Perl). Seems it has something to do with Carp.pm and some regular expressions parsing (from this source http://mail-archives.apache.org/mod_mbox/perl-modperl/201208.mbox/%3Calpine.DEB.2.02.1208211101080.7649@localhost6.localdomain6%3E). Only got so far ...
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1406

PostPosted: Tue Jun 25, 2013 8:33 pm    Post subject: Reply with quote

In that case add:
>dev-lang/perl-5.16.2-r1 to /etc/portage/package.mask
Compile that version of perl, test the module, if it fails, lower the version number in package.mask and repeat. It looks as if you've found a regression bug. Use the version numbers from Gentoo Pakages - Perl.

Try out your offending module, with every version of perl until the module works. Make note of the version in which the module stops working, and then file a bug titled Versions >=<offending version> cause module <module-name> to crash and file it on our bugzilla, since the upstream developers of pidgin claim they have no issues... Make sure it's assigned to perl@gentoo.org
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
andrei.mihaila
n00b
n00b


Joined: 20 Jun 2013
Posts: 3

PostPosted: Mon Jul 01, 2013 8:02 pm    Post subject: Reply with quote

Right, I can confirm that it works with perl-5.12.5 (didn't test 5.14.x as they were hard-masked). Reported the bug https://bugs.gentoo.org/show_bug.cgi?id=475454, will test some more perl versions if the bug assignee needs it. Thanks!

PS: sorry, didn't know how to assign the bug to perl@gentoo.org ... and I don't thing I used the correct way of adding the bug (only later got to the guided interface)
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1406

PostPosted: Mon Jul 01, 2013 8:09 pm    Post subject: Reply with quote

Thats OK, whoever is on Bug Duty will assign properly. Look Here:
Gentoo Herds
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum