Bug#635724: vlc: FTBFS (kfreebsd-i386) Segmentation fault (core dumped) ../bin/vlc-cache-gen .

Reinhard Tartler siretart at tauware.de
Tue Aug 2 16:26:15 UTC 2011


On Tue, Aug 02, 2011 at 16:41:30 (CEST), Cyril Brulebois wrote:

> Michael Biebl <biebl at debian.org> (02/08/2011):
>> Bringing the bsd team into the loop here.
>> 
>> Please take a look at [1]:
>> 
>> > Your package failed to build on the kfreebsd-i386 buildds:
>> > 
>> > make[4]: Entering directory `/build/buildd-vlc_1.1.11-2-kfreebsd-i386-3OiWfZ/vlc-1.1.11/modules'
>> > if test "i486-pc-kfreebsd-gnu" = "i486-pc-kfreebsd-gnu"; then \
>> > 		../bin/vlc-cache-gen . ; \
>> > 	else \
>> > 		echo "Cross-compilation: cache generation skipped!" ; \
>> > 	fi
>> > /bin/bash: line 4: 11163 Segmentation fault      (core dumped) ../bin/vlc-cache-gen .
>> > make[4]: *** [stamp-cache] Error 139
>> > make[4]: Leaving directory `/build/buildd-vlc_1.1.11-2-kfreebsd-i386-3OiWfZ/vlc-1.1.11/modules'
>> > make[3]: *** [all-recursive] Error 1
>> > 
>> > Full build log at
>> > https://buildd.debian.org/status/fetch.php?pkg=vlc&arch=kfreebsd-i386&ver=1.1.11-2&stamp=1311826082
>> 
>> vlc is currently involved in the libnotify 0.7 transition, so a timely fix would
>> be appreciated.
>
> FWIW the build-deps were installed in asdfasdf's sid chroot earlier
> today. I'll look into doing the same on io soon.

I managed to reproduce the segmentation fault on io.debian.net, and got
this backtrace:

(gdb) bt full
#0  0x2c04225a in QVariantAnimation::registerInterpolator(QVariant (*)(void const*, void const*, double), int) ()
   from /usr/lib/libQtCore.so.4
No symbol table info available.
#1  0x2b67c5e3 in ?? () from /usr/lib/libQtGui.so.4
No symbol table info available.
#2  0x281e0f88 in __cxa_finalize () from /lib/i386-kfreebsd-gnu/libc.so.0.1
No symbol table info available.
#3  0x2b6726b4 in ?? () from /usr/lib/libQtGui.so.4
No symbol table info available.
#4  0x2bda33c0 in _fini () from /usr/lib/libQtGui.so.4
No symbol table info available.
#5  0x2805af5e in ?? () from /lib/ld.so.1
No symbol table info available.
#6  0x2805ba07 in ?? () from /lib/ld.so.1
No symbol table info available.
#7  0x28337c44 in ?? () from /lib/i386-kfreebsd-gnu/libdl.so.2
No symbol table info available.
#8  0x2805602b in ?? () from /lib/ld.so.1
No symbol table info available.
#9  0x2833803c in ?? () from /lib/i386-kfreebsd-gnu/libdl.so.2
No symbol table info available.
#10 0x28337c7a in dlclose () from /lib/i386-kfreebsd-gnu/libdl.so.2
No symbol table info available.
#11 0x281249cb in module_Unload (handle=0x812da78) at modules/os.c:236
No locals.
#12 0x2811ee25 in DeleteModule (p_bank=<value optimized out>, p_module=0x111) at modules/modules.c:1167
        pp_self = <value optimized out>
#13 0x2811f0e7 in module_EndBank (p_this=0x804a004, b_plugins=true) at modules/modules.c:191
        p_bank = <value optimized out>
#14 0x2809a636 in libvlc_InternalCleanup (p_libvlc=0x804a004) at libvlc.c:1060
        p_playlist = <value optimized out>
        psz_pidfile = <value optimized out>
#15 0x2806ef46 in libvlc_release (p_instance=0x8049f08) at control/core.c:107
        lock = 0x8049f20
        refs = 0
#16 0x08048861 in main (argc=2, argv=0xbfbfe720) at cachegen.c:113
        vlc_argv = {0x8048afd "--ignore-config", 0x8048b0d "--quiet", 0x8048b15 "--no-media-library", 0x8049f70 "--plugin-path=.", 
          0x8048b3e "--", 0x0, 
          0xbfbfe72c "\374\350\277\277\f\351\277\277\030\351\277\277)\351\277\277\064\351\277\277B\351\277\277\062\356\277\277B\356\277\277W\356\277\277m\356\277\277\232\356\277\277\275\356\277\277\311\356\277\277\340\356\277\277\364\356\277\277\374\356\277\277\023\357\277\277$\357\277\277D\357\277\277Z\357\277\277"}
        vlc = <value optimized out>
        path = 0xbfbfe8fa "."
        arg = 0x8049f70 "--plugin-path=."
        vlc_argc = <value optimized out>
        i = 1
        opts = {{name = 0x8048b53 "force", has_arg = 0, flag = 0x0, val = 102}, {name = 0x8048b59 "help", has_arg = 0, flag = 0x0, 
            val = 104}, {name = 0x8048b5e "version", has_arg = 0, flag = 0x0, val = 86}, {name = 0x0, has_arg = 0, flag = 0x0, 
            val = 0}}
        c = <value optimized out>
        force = <value optimized out>

note that in frame #12, the parameter p_module is set to 0x1111, which
looks suspicious. The code in modules/modules.c:191  looks like this:

(gdb) l module_EndBank 
138      * bank in case of success.
139      * \param p_this vlc object structure
140      * \return nothing
141      */
142     void module_EndBank( vlc_object_t *p_this, bool b_plugins )
143     {
144         module_bank_t *p_bank = p_module_bank;
145
146         assert (p_bank != NULL);
147

[...]


189
190         while( p_bank->head != NULL )
191             DeleteModule( p_bank, p_bank->head );
192
193         free( p_bank );
194     }

http://git.videolan.org/?p=vlc/vlc-1.1.git;a=blob;f=src/modules/modules.c


Maybe DeleteModule does something weird with p_bank? (defined at the end
of the same file)

As vlc-cache-gen runs single threaded, I wouldn't suspect a
syncronization issue. Interestingly, this code seems to work on all
architectures but kfreebsd-i386, so there must be something special here
that corrupts the p_bank list.


-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4





More information about the pkg-multimedia-maintainers mailing list