Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 85078 - media-video/mkvtoolnix 1.4.0: mkvmerge segfaults
Summary: media-video/mkvtoolnix 1.4.0: mkvmerge segfaults
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-13 06:10 UTC by Joerg Plate
Modified: 2005-04-18 09:55 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Test file (Test.ogg,512 bytes, application/octet-stream)
2005-03-13 06:10 UTC, Joerg Plate
Details
"emerge info" output (emerge_info.txt,1.77 KB, text/plain)
2005-03-14 23:21 UTC, Joerg Plate
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joerg Plate 2005-03-13 06:10:02 UTC
(gdb) set args -o Test.mkv Test.ogg
(gdb) run
Starting program: /usr/bin/mkvmerge -o Test.mkv Test.ogg
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
mkvmerge v1.4.0 ('Cornflake Girl') built on Mar 13 2005 11:51:12
*** glibc detected *** malloc(): memory corruption: 0x000000000061d410 ***

Program received signal SIGABRT, Aborted.
0x00002aaaabb1ec09 in raise () from /lib/libc.so.6

(gdb) whe
#0  0x00002aaaabb1ec09 in raise () from /lib/libc.so.6
#1  0x00002aaaabb2010e in abort () from /lib/libc.so.6
#2  0x00002aaaabb52db0 in __fsetlocking () from /lib/libc.so.6
#3  0x00002aaaabb57f60 in malloc_usable_size () from /lib/libc.so.6
#4  0x00002aaaabb58f37 in free () from /lib/libc.so.6
#5  0x00002aaaabb5a662 in malloc () from /lib/libc.so.6
#6  0x00002aaaab71d02a in operator new () from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3-20050110/libstdc++.so.6
#7  0x00002aaaab6fde6e in std::string::_Rep::_S_create () from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3-20050110/libstdc++.so.6
#8  0x00002aaaab6fe56b in std::string::_M_mutate () from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3-20050110/libstdc++.so.6
#9  0x00002aaaab6fe852 in std::string::assign () from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3-20050110/libstdc++.so.6
#10 0x000000000048d02b in std::vector<libebml::EbmlElement*, std::allocator<libebml::EbmlElement*> >::erase ()
#11 0x000000000048d1af in std::vector<libebml::EbmlElement*, std::allocator<libebml::EbmlElement*> >::erase ()
#12 0x000000000049ba69 in std::vector<libebml::EbmlElement*, std::allocator<libebml::EbmlElement*> >::erase ()
#13 0x0000000000420b08 in std::vector<std::string, std::allocator<std::string> >::_M_insert_aux ()
#14 0x000000000041b4e8 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#15 0x00002aaaabb0c798 in __libc_start_main () from /lib/libc.so.6
#16 0x000000000040cc2a in ?? ()
#17 0x00007fffffffeb78 in ?? ()


Reproducible: Always
Steps to Reproduce:
Comment 1 Joerg Plate 2005-03-13 06:10:49 UTC
Created attachment 53328 [details]
Test file
Comment 2 Joerg Plate 2005-03-13 08:34:12 UTC
The package is "mkvtoolnix 1.4.0"...
Comment 3 Carsten Lohrke (RETIRED) gentoo-dev 2005-03-13 15:08:45 UTC
Joerg: more helpful would be, if you let start the bug summary with "category/ebuild-x.y:"
Comment 4 Luca Barbato gentoo-dev 2005-03-14 01:42:58 UTC
emerge info please
emerge -vp mkvmerge
Comment 5 Ira Snyder 2005-03-14 14:53:14 UTC
I don't know if this is related, but I get a segfault with mkvmerge also.

Emerge info:
irasnyd@yuki ~ $ emerge info
Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20050125-r0, 2.6.11-cko1 i686)
=================================================================
System uname: 2.6.11-cko1 i686 AMD Athlon(tm) XP 3000+
Gentoo Base System version 1.6.10
Python:              dev-lang/python-2.3.5 [2.3.5 (#1, Feb 18 2005, 21:08:42)]
ccache version 2.4 [enabled]
dev-lang/python:     2.3.5
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.7.9-r1, 1.8.5-r3, 1.6.3, 1.5, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r6
sys-devel/libtool:   1.5.14
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -O2 -fforce-addr -fweb -ftracer -funit-at-a-time -fvisibility-inlines-hidden -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O2 -fforce-addr -fweb -ftracer -funit-at-a-time -fvisibility-inlines-hidden -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig candy ccache distlocks fixpackages sandbox sfperms"
GENTOO_MIRRORS="http://gentoo.ccccom.com http://128.213.5.34/gentoo/ http://mirror.cpsc.ucalgary.ca/mirror/gentoo.org http://mirrors.tds.net/gentoo"
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/fluidportage/trunk"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="x86 3dnow 3dnowex S3TC X a52 aac acpi aim alsa avi berkdb bigger-fonts bitmap-fonts cdr cups curl dvd dvdr dvdread fbcon flac foomaticdb freetype gdbm gif gimpprint gpm gstreamer gtk gtk2 hal imlib imlib2 jabber java jpeg kdeenablefinal mad matroska mmap mmx mmx2 mozilla moznocompose moznoirc moznomail mp3 mpeg ncurses nptl nptlonly offensive ogg oggvorbis opengl oscar pam pdflib png ppds python radeon readline real rtc sdl slang spell sse ssl truetype truetype-fonts unicode usb userlocales vim-with-x vorbis xanim xine xml xml2 xprint xv xvid zlib video_cards_radeon"
Unset:  ASFLAGS, CBUILD, CTARGET

It also shows a kernel oops for me:
Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
b0256111
*pde = 00000000
Oops: 0000 [#13]
PREEMPT
Modules linked in: fglrx
CPU:    0
EIP:    0060:[<b0256111>]    Tainted: PF  M  VLI
EFLAGS: 00010086   (2.6.11-cko1)
EIP is at radix_tree_delete+0x21/0x190
eax: 00000004   ebx: b14d47c0   ecx: 00000002   edx: 00000000
esi: 00000000   edi: ccfe5e8c   ebp: 00000e9c   esp: ccfe5e78
ds: 007b   es: 007b   ss: 0068
Process mkvmerge (pid: 18336, threadinfo=ccfe4000 task=c1fd3590)
Stack: dd5357bc 0000071c 00000000 cdd91488 00000000 e03dd934 e03dd938 00000000
       bf1bca08 bf1bca0c 00000000 dd5356ec ccfe4000 dd535710 b1a57014 b01be9d4
       dd5356ec 00000000 cd601b60 cd601b60 00000000 b01beac8 cd601b60 b14d47c0
Call Trace:
 [<b01be9d4>] inode_detach_jnode+0x34/0x80
 [<b01beac8>] unhash_unformatted_node_nolock+0x48/0x70
 [<b0134ff4>] __remove_from_page_cache+0x24/0x50
 [<b0134ff4>] __remove_from_page_cache+0x24/0x50
 [<b014057e>] invalidate_complete_page+0x5e/0xe0
 [<b01409fd>] invalidate_mapping_pages+0x9d/0xe0
 [<b0139ca6>] sys_fadvise64_64+0x1a6/0x200
 [<b011cc93>] __do_softirq+0x43/0x90
 [<b0102719>] sysenter_past_esp+0x52/0x75
Code: 00 00 00 8d bc 27 00 00 00 00 55 57 56 53 83 ec 74 8b 84 24 88 00 00 00 c7 44 24 08 00 00 00 00 8d 7c 24 14 8b b4 24 8c 00 00 00 <8b> 28 39 34 ad a0 53 54 b0 0f 82 40 01 00 00 8d 44 6d 00 c7 44
 <6>note: mkvmerge[18336] exited with preempt_count 1
scheduling while atomic: mkvmerge/0x10000001/18336
 [<b03fe4da>] schedule+0x3fa/0x4b0
 [<b0144695>] unmap_page_range+0x75/0x90
 [<b03fed57>] cond_resched+0x27/0x40
 [<b01448b6>] unmap_vmas+0x206/0x220
 [<b0149963>] exit_mmap+0x83/0x160
 [<b0112460>] do_page_fault+0x0/0x5de
 [<b0115917>] mmput+0x37/0xb0
 [<b011a2ce>] do_exit+0xae/0x3b0
 [<b0112460>] do_page_fault+0x0/0x5de
 [<b01039db>] die+0x18b/0x190
 [<b0112460>] do_page_fault+0x0/0x5de
 [<b0118187>] printk+0x17/0x20
 [<b0112837>] do_page_fault+0x3d7/0x5de
 [<b020cbef>] save_file_hint+0x4f/0x60
 [<b020e770>] read_unix_file+0x330/0x370
 [<b020ceac>] inode_has_eflushed_jnodes+0x2c/0x50
 [<b020cf18>] inode_has_anonymous_pages+0x48/0x60
 [<b0112460>] do_page_fault+0x0/0x5de
 [<b010320b>] error_code+0x2b/0x30
 [<b0256111>] radix_tree_delete+0x21/0x190
 [<b01be9d4>] inode_detach_jnode+0x34/0x80
 [<b01beac8>] unhash_unformatted_node_nolock+0x48/0x70
 [<b0134ff4>] __remove_from_page_cache+0x24/0x50
 [<b0134ff4>] __remove_from_page_cache+0x24/0x50
 [<b014057e>] invalidate_complete_page+0x5e/0xe0
 [<b01409fd>] invalidate_mapping_pages+0x9d/0xe0
 [<b0139ca6>] sys_fadvise64_64+0x1a6/0x200
 [<b011cc93>] __do_softirq+0x43/0x90
 [<b0102719>] sysenter_past_esp+0x52/0x75

I'm using 2.6.11-cko1 on a completely reiser4 system. I don't know if the reiser4 is causing it, but this kernel has been very very stable for me. I've had no problems, and no oopses caused by anything but this.

Here is the same type of gdb trace from above:
irasnyd@yuki ~ $ gdb mkvmerge
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".

(gdb) set args -o gits01.mkv gits01.avi
(gdb) run
Starting program: /usr/bin/mkvmerge -o gits01.mkv gits01.avi
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
mkvmerge v1.4.0 ('Cornflake Girl') built on Mar 13 2005 00:38:33
'gits01.avi': Using the AVI demultiplexer. Opening file. This may take some time depending on the file's size.
'gits01.avi' track 0: Using the MPEG-4 part 2 video output module for this track.
'gits01.avi' track 1: Using the AC3 output module.
The file 'gits01.mkv' has been opened for writing.
progress: 3%
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) quit

Also, this was requested of the original poster above, so I'll include mine.
irasnyd@yuki ~ $ emerge -pv mkvtoolnix

These are the packages that I would merge, in order:

Calculating dependencies  ...done!
[ebuild   R   ] media-video/mkvtoolnix-1.4.0  +X +flac +gtk2 +oggvorbis 0 kB

Total size of downloads: 0 kB
Comment 6 Luca Barbato gentoo-dev 2005-03-14 15:02:29 UTC
Looks like an inconsisten read, if we say that raiserfs4 isn't enough reliable, you should listen.
the other issue is a double free, probably either an upstream silent bug that the glibc malloc check spotted or something more problematic
Comment 7 Joerg Plate 2005-03-14 23:21:09 UTC
Created attachment 53498 [details]
"emerge info" output
Comment 8 Joerg Plate 2005-03-14 23:24:50 UTC
I don't use reiserfs at all, it's Ext3.

1> emerge -pv mkvtoolnix
These are the packages that I would merge, in order:
Calculating dependencies  ...done!
[ebuild   R   ] media-video/mkvtoolnix-1.4.0  +X +flac +gtk2 +oggvorbis 617 kB
Comment 9 Joe Kowalski 2005-04-05 14:52:58 UTC
I can confirm this bug on AMD64 for mkvtoolnix-1.4.0 and 1.4.1 (simple ebuild copy).  This is on a jfs partiton.  It appears that upstream is aware of this bug as well.  See: http://www.bunkus.org/anthill/query.php?bug=120
Comment 10 Quintin Pan 2005-04-06 09:08:03 UTC
ditto. amd64 reiser3
Comment 11 Quintin Pan 2005-04-06 09:09:45 UTC
mmg also segfaults for me when adding new items
Comment 12 Joe Kowalski 2005-04-15 13:25:28 UTC
It appears that this bug is now fixed the current svn version of mkvtoolnix.  I did a current checkout, and built it and mkvmerge works properly now.  As soon as a new version is released, then this bug should be dead.
Comment 13 Joe Kowalski 2005-04-18 09:41:41 UTC
mkvtoolnix-1.4.2 is now available with the fix for this segfault bug on AMD64.  Reccomend bumping the ~amd64 ebuild to 1.4.2 in order to get a working build of mkvtoolnix.
Comment 14 Jan Brinkmann (RETIRED) gentoo-dev 2005-04-18 09:55:05 UTC
fixed in cvs, thanks. marking this one as fixed