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