the combination of: media-libs/libmp3splt-0.5.6 media-sound/mp3splt-2.2.5 when trying to split mp3 as a normal user the program reports: error: cannot allocate memory However the program runs fine as root. Reproducible: Always
Is that complete error message ?
mp3splt 2.2.5 (16/05/09) - using libmp3splt 0.5.6 Matteo Trotta <mtrotta AT users.sourceforge.net> Alexandru Munteanu <io_fx AT yahoo.fr> THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Searching for plugins ... Scanning plugins in the directory _/usr/lib64/libmp3splt_ error: cannot allocate memory This is all the error message. As root this program runs fine.
WOrks without any problems here. Please post your "emerge --info".
Portage 2.1.6.13 (default/linux/amd64/2008.0, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.29-gentoo-r5 x86_64) ================================================================= System uname: Linux-2.6.29-gentoo-r5-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T7250_@_2.00GHz-with-gentoo-1.12.11.1 Timestamp of tree: Thu, 11 Jun 2009 08:00:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p39 dev-java/java-config: 2.1.7 dev-lang/python: 2.6.2-r1 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.6.4 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63 sys-devel/automake: 1.5, 1.7.9-r1, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /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 /etc/udev/rules.d" CXXFLAGS="-march=nocona -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks fixpackages nodoc parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://ftp.twaren.net/Linux/Gentoo/" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/layman/sunrise /var/layman/science /var/layman/roslin" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl acpi alsa amd64 arts berkdb bluetooth bzip2 cairo cjk cli cracklib crypt cups custom-cxxflags dbus djvu dri flac fortran gdbm gif gnutls gpm gtk hal iconv ieee1394 ipv6 isdnlog java jpeg jpeg2k kde lm_sensors midi mmx mng mp3 mudflap multilib ncurses nls nptl nptlonly nsplugin opengl openmp pam pcmcia pcre pdf perl png pppd python qt3 qt3support qt4 readline reflection sdl session spell spl sqlite sqlite3 sse sse2 ssl svg sysfs tcpd threads tiff truetype unicode vorbis xcomposite xml xorg xvmc zlib" 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" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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 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" ELIBC="glibc" INPUT_DEVICES="keyboard evdev mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="intel" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Does the error disappear when you compile the package with ccache being diasbled?
No. The problem stays. error: cannot allocate memory
Upstream replied, <snap> Hello, thanks for the report. Can you please send me the mp3splt command + output by adding the '-D' option ? You can also try the latest development snapshot from : http://ioalex.net/testing_downloads/ to see if the problem still occurs. I will also reply on the gentoo bugs later. -- Alex </snap> So can you do that for me Luyang? I was able to reproduce this earlier, but I rebuilt my system only few days ago and tried it again just now, and I can't anymore! How annoying to not know what caused it! :-/
The command: mp3splt -D -c foobar.cue foobar.mp3 Output: mp3splt 2.2.5 (16/05/09) - using libmp3splt 0.5.6 Matteo Trotta <mtrotta AT users.sourceforge.net> Alexandru Munteanu <io_fx AT yahoo.fr> THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Searching for plugins ... Scanning plugins in the directory _/usr/lib64/libmp3splt_ error: cannot allocate memory I will try to compile the newer version later.
(In reply to comment #8) > The command: > mp3splt -D -c foobar.cue foobar.mp3 > > Output: > mp3splt 2.2.5 (16/05/09) - using libmp3splt 0.5.6 > Matteo Trotta <mtrotta AT users.sourceforge.net> > Alexandru Munteanu <io_fx AT yahoo.fr> > THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! > > Searching for plugins ... > Scanning plugins in the directory _/usr/lib64/libmp3splt_ > error: cannot allocate memory Thank you for the output. I believe that this was a bug caused by bad coding in the plugin search section. However, this could also be a bug when permissions are wrong Part of this section has been re-written in the latest development code. In order to check if this has been fixed, knowing the output of the following command could help : $ ls -lah /usr/lib64/libmp3splt
Sorry for the trouble but I think I found out the problem. The permission of /usr/lib64/libmp3splt is somehow wrong. I change it from drwxr-x--- to drwxr-xr-x, which it should be, and everything works. So a permission problem. I think a quick look into the ebuild of media-libs/libmp3splt could solve this problem.
well, we just use "make install" to DESTDIR as normal, the ebuild isn't doing anything special.. perhaps the autotools update in the upstream package could use some improving? i really don't know but i'll add chmod to the ebuild as workaround to ensure it works
workaround added
There is no problem with the libmp3splt autotools scripts. Probably the ebuild should contain permission change (?). Maybe there was some umask change or something before the installation of libmp3splt. I have tested on amd64 with both ebuilds versions 0.5.4 (without any chmod) & 0.5.6 (with the new chmod change). Both work on my system. Btw, why are the '.la' files deleted ?
Fixed the wrong error message in the latest development version. Next version will point out that 'no plugin was found'.
> There is no problem with the libmp3splt autotools scripts. > Probably the ebuild should contain permission change (?). It does now, but that shouldn't be required. The ebuild really only does 'make DESTDIR="/temporary/target" install' as standard GNU installation. As I said when I mailed you, I was able to reproduce this once; but when I tried again it worked so I really don't know what's going on here... Anyway, the workaround is only a one line so it's no big deal to include it. I'll drop it from the next version that gets out, and see if this happens again. The .la files are useless, it can load the plugins anyway: ssuominen@unique ~ $ strace -e open mp3splt |& fgrep libmp3splt open("/usr/lib/libmp3splt.so.0", O_RDONLY) = 3 mp3splt 2.2.5 (16/05/09) - using libmp3splt 0.5.6 open("/usr/lib64/libmp3splt", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 open("/usr/lib64/libmp3splt/libsplt_mp3.so", O_RDONLY) = 3 open("/usr/lib64/libmp3splt/libsplt_ogg.so", O_RDONLY) = 4 open("/usr/lib64/libmp3splt/libsplt_ogg.so", O_RDONLY) = 3 open("/usr/lib64/libmp3splt/libsplt_mp3.so", O_RDONLY) = 3 You can also read: http://blog.flameeyes.eu/2009/07/06/identifying-pointless-la-files-for-plugins Thanks again for looking at this issue.
You can leave the workaround, no problem :) Just please reply here or drop me a mail if the problem still occurs. I agree, '.la' files are not necessary for "plugins" : * libmp3splt 0.5.6 is only looking for 'libsplt_XXX.so' files * next version will look for 'libsplt_XXX.so.0' files I was wondering why removing the 'libmp3splt.la' file.
(In reply to comment #16) > I was wondering why removing the 'libmp3splt.la' file. Also useless, gcc can link directly to -lmp3splt and because we don't install libmp3splt.a (static archive) at all for this package. You can also read: http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files
Ok, thanks for the replies :)