Page 1 of 2
VLC crashes when u try to run multiple instances of it
Posted: 23 Jul 2010 16:34
by ghazzalyahmad
Hello everyone,
I am currently writing an application where it can display up to 12 monitors of live video streams. The problem that I am currently facing that when I start/stop the application sometimes I get a java fatal error. After searching about the problem, it seems that making multiple calls in quick succession to libvlc_media_player_play causes a crash, according to the VLCJ website:
http://code.google.com/p/vlcj/wiki/Mult ... rInstances. There is written the following:
"The VLCJ bindings are generally stable and hard crashes in the Java Virtual Machine due to native library failures usually don't occur.
However, when using multiple video player instances the chance for instability and hard crashes increases.
..., when there are up to three video player instances everything is still stable.
However, with more than three video player instances there is a chance of a fatal native library crash, apparently due to a race condition during start-up. If the race condition does not materialise then all instances will play videos correctly.
These crashes occur in native libraries and there's not much that VLCJ can do about it.
The main cause of failure seems to be as a result of making multiple calls in quick succession to libvlc_media_player_play. It is possible to workaround this problem (to some degree) by staggering the play calls (e.g. with a one second delay between calls)."
I did try the workaround (showed improvement, but still it is no guarantee that it won't crash), however having 1 second delay between the calls is a bit too much and it doesn't always work.
I am wondering if this is a known problem and the VLC-team will attempt to fix it in VLC 1.1.2?
And is there a command-line parameter that can be used to avoid this problem?
Thanks in advance for your help..
Gr.
Ahmed
Re: VLC crashes when u try to run multiple instances of it
Posted: 23 Jul 2010 17:13
by sherington
From the point of view of the Java bindings, the reason I said I think there's a race is that I can see no pattern in the failures - sometimes it works just fine for me, sometimes it crashes. Same code, same video files. Increasing the number of instances seems to make it more likely to crash, but even then it doesn't always crash. I have very little experience in debugging native libraries when JVM crashes occur so I don't really know what I can do about it from the Java side.
I'm not saying vlc is causing the crash, I'm saying I don't know what's causing the crash.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 12:05
by Rémi Denis-Courmont
I am wondering if this is a known problem and the VLC-team will attempt to fix it in VLC 1.1.2?
There were a number of issues in LibVLC 1.0.
There are no known (crash) issues in LibVLC 1.1.1, and only accept bug reports concerning the native API, since we do not maintain the bindings.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 12:22
by sherington
I post here in the hope that anyone has any ideas, not because I blame vlc for errors.
What I see from valgrind (I'm very new to that tool) when the error we're discussing occurs (against 1.1.1) is this:
Code: Select all
java: tpp.c:63: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio <= __sched_fifo_max_prio)' failed.
./test.sh: line 3: 11911 Aborted valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes java -cp $CP $MAINCLASS
The top google result for me refers to this post but I have no idea if it's relevant to vlc:
http://sourceware.org/ml/libc-help/2008 ... 00072.html
Unfortunately from the Java side I have no idea what to do about this.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 12:45
by Rémi Denis-Courmont
Looks like a bug in valgrind. What does gdb say?
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 14:21
by sherington
Looks like a bug in valgrind. What does gdb say?
I've posted here backtraces and thread lists for the three different types of failures I've seen when using gdb.
I see different types of failures and which particular failure occurs at any particular time is unpredictable.
I can't be sure any of these back-traces refers to the valgrind error above, but all of these errors do occur when I use multiple media player instances (without staggering the libvlc_media_player_play calls).
I pulled the 1.1 maintenance branch and did a full build configured with --enable-debug and --disable-optimizations.
This is the version and changeset I am running these tests against:
* 1.1.2-git The Luggage
* 1.1.1-22-gc7cc7c2
This usually happens first...
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb065f710 (LWP 11165)]
0x00007fffb2741034 in FcConfigSubstituteWithPat () from /usr/lib/libfontconfig.so.1
(gdb) bt
#0 0x00007fffb2741034 in FcConfigSubstituteWithPat () from /usr/lib/libfontconfig.so.1
#1 0x00007fffaea20c70 in Create (p_this=0x7fffb8347e38) at freetype.c:392
#2 0x00007fffcc276236 in module_need (p_this=0x7fffb8347e38, psz_capability=0x7fffcc2c0379 "text renderer", psz_name=0x0, b_strict=false) at modules/modules.c:559
#3 0x00007fffcc253a0b in SpuRenderCreateAndLoadText (p_spu=0x7fffb8347358) at video_output/vout_subpictures.c:1000
#4 0x00007fffcc251d89 in spu_Create (p_this=0x7fffb83421d8) at video_output/vout_subpictures.c:231
#5 0x00007fffcc24a03a in vout_Create (p_parent=0x7fffc82e46b8, p_fmt=0x7fffb065e7c0) at video_output/video_output.c:412
#6 0x00007fffcc2499a9 in vout_Request (p_this=0x7fffc82e46b8, p_vout=0x0, p_fmt=0x7fffb065e7c0) at video_output/video_output.c:273
#7 0x00007fffcc239dcc in RequestVout (p_resource=0x405a1a20, p_vout=0x0, p_fmt=0x7fffb065e7c0, b_recycle=true) at input/resource.c:245
#8 0x00007fffcc23a6cd in input_resource_RequestVout (p_resource=0x405a1a20, p_vout=0x0, p_fmt=0x7fffb065e7c0, b_recycle=true) at input/resource.c:463
#9 0x00007fffcc21d6d7 in vout_new_buffer (p_dec=0x7fffb80357d8) at input/decoder.c:2332
#10 0x00007fffcc21855c in decoder_NewPicture (p_decoder=0x7fffb80357d8) at input/decoder.c:187
#11 0x00007fffb17dd6cc in ffmpeg_NewPictBuf (p_dec=0x7fffb80357d8, p_context=0x41366200) at video.c:185
#12 0x00007fffb17df033 in ffmpeg_GetFrameBuf (p_context=0x41366200, p_ff_pic=0x415d6840) at video.c:953
#13 0x00007fffb0eabfdc in alloc_picture () from /usr/lib/libavcodec.so.52
#14 0x00007fffb0eac81e in MPV_frame_start () from /usr/lib/libavcodec.so.52
#15 0x00007fffb0fe67d5 in ?? () from /usr/lib/libavcodec.so.52
#16 0x00007fffb0fefc96 in ?? () from /usr/lib/libavcodec.so.52
#17 0x00007fffb1013182 in ?? () from /usr/lib/libavcodec.so.52
#18 0x00007fffb1013a2b in ?? () from /usr/lib/libavcodec.so.52
#19 0x00007fffb0e64598 in avcodec_decode_video () from /usr/lib/libavcodec.so.52
#20 0x00007fffb17de3bb in DecodeVideo (p_dec=0x7fffb80357d8, pp_block=0x7fffb065ed60) at video.c:550
#21 0x00007fffcc21b724 in DecoderDecodeVideo (p_dec=0x7fffb80357d8, p_block=0x7fffb4c79d50) at input/decoder.c:1466
#22 0x00007fffcc21c30e in DecoderProcessVideo (p_dec=0x7fffb80357d8, p_block=0x7fffb4c79d50, b_flush=false) at input/decoder.c:1831
#23 0x00007fffcc21c8fb in DecoderProcess (p_dec=0x7fffb80357d8, p_block=0x7fffb4c79d50) at input/decoder.c:2003
#24 0x00007fffcc21a086 in DecoderThread (p_this=0x7fffb80357d8) at input/decoder.c:892
#25 0x00007fffcc27e7e1 in thread_entry (data=0x4063fc00) at misc/threads.c:58
#26 0x00007ffff7bc59ca in start_thread (arg=<value optimised out>) at pthread_create.c:300
#27 0x00007ffff771e6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#28 0x0000000000000000 in ?? ()
(gdb) info threads
42 Thread 0x7fffa1800710 (LWP 11176) __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
41 Thread 0x7fffaa804710 (LWP 11174) 0x00007ffff7711f83 in *__GI___poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=30000) at ../sysdeps/unix/sysv/linux/poll.c:87
40 Thread 0x7fffa6002710 (LWP 11175) 0x00007ffff7711f83 in *__GI___poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=29998) at ../sysdeps/unix/sysv/linux/poll.c:87
39 Thread 0x7fffafa49710 (LWP 11173) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
38 Thread 0x7fffaff58710 (LWP 11172) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
37 Thread 0x7fffb0059710 (LWP 11171) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
36 Thread 0x7fffb015a710 (LWP 11170) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
35 Thread 0x7fffb025b710 (LWP 11169) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:140
34 Thread 0x7fffb045d710 (LWP 11167) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:140
33 Thread 0x7fffb035c710 (LWP 11168) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:140
32 Thread 0x7fffb055e710 (LWP 11166) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
* 31 Thread 0x7fffb065f710 (LWP 11165) 0x00007fffb2741034 in FcConfigSubstituteWithPat () from /usr/lib/libfontconfig.so.1
30 Thread 0x7fffb0760710 (LWP 11164) 0x00007fffb2740fe3 in FcConfigSubstituteWithPat () from /usr/lib/libfontconfig.so.1
29 Thread 0x7fffb0861710 (LWP 11163) 0x00007fffb274139e in FcConfigSubstituteWithPat () from /usr/lib/libfontconfig.so.1
28 Thread 0x7fffb0962710 (LWP 11162) 0x00007fffb274d9bb in ?? () from /usr/lib/libfontconfig.so.1
27 Thread 0x7fffc1d7c710 (LWP 11161) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
26 Thread 0x7fffc1e7d710 (LWP 11160) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
25 Thread 0x7fffc1f7e710 (LWP 11159) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
24 Thread 0x7fffc4127710 (LWP 11158) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
23 Thread 0x7fffc4228710 (LWP 11157) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
22 Thread 0x7fffc4329710 (LWP 11156) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
21 Thread 0x7fffc442a710 (LWP 11155) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
20 Thread 0x7fffc452b710 (LWP 11154) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
19 Thread 0x7fffc472d710 (LWP 11153) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
18 Thread 0x7fffc618b710 (LWP 11150) __pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50
17 Thread 0x7fffc628c710 (LWP 11149) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
16 Thread 0x7fffc638d710 (LWP 11148) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
15 Thread 0x7fffc6ac8710 (LWP 11147) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
14 Thread 0x7fffcc924710 (LWP 11146) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
13 Thread 0x7fffcca25710 (LWP 11145) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
12 Thread 0x7fffccb26710 (LWP 11144) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
11 Thread 0x7fffccc27710 (LWP 11143) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
10 Thread 0x7fffccd28710 (LWP 11142) sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
9 Thread 0x7fffcce68710 (LWP 11141) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
8 Thread 0x7fffccf69710 (LWP 11140) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
7 Thread 0x7fffcd06a710 (LWP 11139) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
6 Thread 0x7fffcd863710 (LWP 11138) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
5 Thread 0x7fffcd964710 (LWP 11137) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
4 Thread 0x7fffcda65710 (LWP 11136) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
3 Thread 0x7fffcdb66710 (LWP 11135) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
2 Thread 0x7ffff690c710 (LWP 11134) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
1 Thread 0x7ffff7ecc700 (LWP 11131) 0x00007ffff7bc703d in pthread_join (threadid=140737330071312, thread_return=0x7fffffffbf80) at pthread_join.c:89
(gdb)
Followed by this (after restarting the program being debugged)...
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb0962710 (LWP 11207)]
0x00007fffb273ec34 in ?? () from /usr/lib/libfontconfig.so.1
(gdb) bt
#0 0x00007fffb273ec34 in ?? () from /usr/lib/libfontconfig.so.1
#1 0x00007fffb273f3cc in ?? () from /usr/lib/libfontconfig.so.1
#2 0x00007fffb273f479 in ?? () from /usr/lib/libfontconfig.so.1
#3 0x00007fffb273ef6d in ?? () from /usr/lib/libfontconfig.so.1
#4 0x00007fffb273f06a in FcDirCacheLoad () from /usr/lib/libfontconfig.so.1
#5 0x00007fffb2745c15 in FcDirCacheRead () from /usr/lib/libfontconfig.so.1
#6 0x00007fffb2741aae in ?? () from /usr/lib/libfontconfig.so.1
#7 0x00007fffb2741d36 in FcConfigBuildFonts () from /usr/lib/libfontconfig.so.1
#8 0x00007fffb274aefb in FcInitLoadConfigAndFonts () from /usr/lib/libfontconfig.so.1
#9 0x00007fffb274afc5 in FcInit () from /usr/lib/libfontconfig.so.1
#10 0x00007fffb2740ee7 in FcConfigGetCurrent () from /usr/lib/libfontconfig.so.1
#11 0x00007fffb2741652 in FcConfigSubstituteWithPat () from /usr/lib/libfontconfig.so.1
#12 0x00007fffaeb21c70 in Create (p_this=0x41f4f2a8) at freetype.c:392
#13 0x00007fffcc276236 in module_need (p_this=0x41f4f2a8, psz_capability=0x7fffcc2c0379 "text renderer", psz_name=0x0, b_strict=false) at modules/modules.c:559
#14 0x00007fffcc253a0b in SpuRenderCreateAndLoadText (p_spu=0x41166a98) at video_output/vout_subpictures.c:1000
#15 0x00007fffcc251d89 in spu_Create (p_this=0x41f4a2b8) at video_output/vout_subpictures.c:231
#16 0x00007fffcc24a03a in vout_Create (p_parent=0x404a5488, p_fmt=0x7fffb09617c0) at video_output/video_output.c:412
#17 0x00007fffcc2499a9 in vout_Request (p_this=0x404a5488, p_vout=0x0, p_fmt=0x7fffb09617c0) at video_output/video_output.c:273
#18 0x00007fffcc239dcc in RequestVout (p_resource=0x7fffc83e3a60, p_vout=0x0, p_fmt=0x7fffb09617c0, b_recycle=true) at input/resource.c:245
#19 0x00007fffcc23a6cd in input_resource_RequestVout (p_resource=0x7fffc83e3a60, p_vout=0x0, p_fmt=0x7fffb09617c0, b_recycle=true) at input/resource.c:463
#20 0x00007fffcc21d6d7 in vout_new_buffer (p_dec=0x404a5e48) at input/decoder.c:2332
#21 0x00007fffcc21855c in decoder_NewPicture (p_decoder=0x404a5e48) at input/decoder.c:187
#22 0x00007fffb17dd6cc in ffmpeg_NewPictBuf (p_dec=0x404a5e48, p_context=0x404434c0) at video.c:185
#23 0x00007fffb17df033 in ffmpeg_GetFrameBuf (p_context=0x404434c0, p_ff_pic=0x4114b8e0) at video.c:953
#24 0x00007fffb0eabfdc in alloc_picture () from /usr/lib/libavcodec.so.52
#25 0x00007fffb0eac81e in MPV_frame_start () from /usr/lib/libavcodec.so.52
#26 0x00007fffb0fe67d5 in ?? () from /usr/lib/libavcodec.so.52
#27 0x00007fffb0fefc96 in ?? () from /usr/lib/libavcodec.so.52
#28 0x00007fffb1013182 in ?? () from /usr/lib/libavcodec.so.52
#29 0x00007fffb1013a2b in ?? () from /usr/lib/libavcodec.so.52
#30 0x00007fffb0e64598 in avcodec_decode_video () from /usr/lib/libavcodec.so.52
#31 0x00007fffb17de3bb in DecodeVideo (p_dec=0x404a5e48, pp_block=0x7fffb0961d60) at video.c:550
#32 0x00007fffcc21b724 in DecoderDecodeVideo (p_dec=0x404a5e48, p_block=0x403f5b60) at input/decoder.c:1466
#33 0x00007fffcc21c30e in DecoderProcessVideo (p_dec=0x404a5e48, p_block=0x403f5b60, b_flush=false) at input/decoder.c:1831
#34 0x00007fffcc21c8fb in DecoderProcess (p_dec=0x404a5e48, p_block=0x403f5b60) at input/decoder.c:2003
#35 0x00007fffcc21a086 in DecoderThread (p_this=0x404a5e48) at input/decoder.c:892
#36 0x00007fffcc27e7e1 in thread_entry (data=0x7fffc90ca970) at misc/threads.c:58
#37 0x00007ffff7bc59ca in start_thread (arg=<value optimised out>) at pthread_create.c:300
#38 0x00007ffff771e6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#39 0x0000000000000000 in ?? ()
(gdb) info threads
38 Thread 0x7fffaef2d710 (LWP 11216) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
37 Thread 0x7fffaee2c710 (LWP 11217) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
36 Thread 0x7fffaf02e710 (LWP 11215) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
35 Thread 0x7fffaf12f710 (LWP 11214) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
34 Thread 0x7fffaf495710 (LWP 11213) 0x00007ffff7711f83 in *__GI___poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
33 Thread 0x7fffb0258710 (LWP 11212) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
32 Thread 0x7fffb055e710 (LWP 11211) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
31 Thread 0x7fffb065f710 (LWP 11210) 0x00007fffb274db70 in ?? () from /usr/lib/libfontconfig.so.1
30 Thread 0x7fffb0760710 (LWP 11209) 0x00007ffff7df3eea in mmap64 () at ../sysdeps/unix/syscall-template.S:82
29 Thread 0x7fffb0861710 (LWP 11208) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
* 28 Thread 0x7fffb0962710 (LWP 11207) 0x00007fffb273ec34 in ?? () from /usr/lib/libfontconfig.so.1
27 Thread 0x7fffc1d7c710 (LWP 11206) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
26 Thread 0x7fffc1e7d710 (LWP 11205) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
25 Thread 0x7fffc1f7e710 (LWP 11204) 0x00007ffff297dd5a in ?? ()
24 Thread 0x7fffc4127710 (LWP 11203) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
23 Thread 0x7fffc4228710 (LWP 11202) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
22 Thread 0x7fffc4329710 (LWP 11201) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
21 Thread 0x7fffc442a710 (LWP 11200) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
20 Thread 0x7fffc452b710 (LWP 11199) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
19 Thread 0x7fffc472d710 (LWP 11198) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
18 Thread 0x7fffc618b710 (LWP 11195) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
17 Thread 0x7fffc628c710 (LWP 11194) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
16 Thread 0x7fffc638d710 (LWP 11193) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
15 Thread 0x7fffc6ac8710 (LWP 11192) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
14 Thread 0x7fffcc924710 (LWP 11191) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
13 Thread 0x7fffcca25710 (LWP 11190) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
12 Thread 0x7fffccb26710 (LWP 11189) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
11 Thread 0x7fffccc27710 (LWP 11188) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
10 Thread 0x7fffccd28710 (LWP 11187) sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
9 Thread 0x7fffcce68710 (LWP 11186) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
8 Thread 0x7fffccf69710 (LWP 11185) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
7 Thread 0x7fffcd06a710 (LWP 11184) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
6 Thread 0x7fffcd863710 (LWP 11183) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
5 Thread 0x7fffcd964710 (LWP 11182) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
4 Thread 0x7fffcda65710 (LWP 11181) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
3 Thread 0x7fffcdb66710 (LWP 11180) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
2 Thread 0x7ffff690c710 (LWP 11179) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
1 Thread 0x7ffff7ecc700 (LWP 11178) 0x00007ffff7bc703d in pthread_join (threadid=140737330071312, thread_return=0x7fffffffbf80) at pthread_join.c:89
(gdb)
I see mostly these ones - which maybe indicates a Java VM issue? Obviously the missing parts of the trace don't help.
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc618b710 (LWP 10636)]
__pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50
50 pthread_mutex_lock.c: No such file or directory.
in pthread_mutex_lock.c
(gdb) bt
#0 __pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50
#1 0x00007fffc76f0e47 in XrmQGetResource () from /usr/lib/libX11.so.6
#2 0x00007fffc76e7fac in XStringToKeysym () from /usr/lib/libX11.so.6
#3 0x00007fffc77187fa in _XimParseStringFile () from /usr/lib/libX11.so.6
#4 0x00007fffc7716965 in _XimLocalOpenIM () from /usr/lib/libX11.so.6
#5 0x00007fffc77151e6 in _XimOpenIM () from /usr/lib/libX11.so.6
#6 0x00007fffcc08b2ef in OpenXIMCallback () from /home/java/jdk1.6.0_21/jre/lib/amd64/xawt/libmawt.so
#7 0x00007fffc7714f6a in _XimRegisterIMInstantiateCallback () from /usr/lib/libX11.so.6
#8 0x00007fffc76f9eef in XRegisterIMInstantiateCallback () from /usr/lib/libX11.so.6
#9 0x00007fffcc08b3d3 in Java_sun_awt_X11_XInputMethod_openXIMNative () from /home/java/jdk1.6.0_21/jre/lib/amd64/xawt/libmawt.so
#10 0x00007ffff297cc88 in ?? ()
#11 0x00007ffff2970d00 in ?? ()
#12 0x00007fffc8290800 in ?? ()
#13 0x00007fffc8290800 in ?? ()
#14 0x00007fffc6189b08 in ?? ()
#15 0x00007fffce829a58 in ?? ()
#16 0x00007fffc6189b78 in ?? ()
#17 0x00007fffce832fb0 in ?? ()
#18 0x0000000000000000 in ?? ()
(gdb) info threads
39 Thread 0x7fffaed2b710 (LWP 10659) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
38 Thread 0x7fffafd53710 (LWP 10658) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
37 Thread 0x7fffb0059710 (LWP 10657) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
36 Thread 0x7fffb025b710 (LWP 10655) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
35 Thread 0x7fffb015a710 (LWP 10656) 0x00007ffff771013d in open64 () at ../sysdeps/unix/syscall-template.S:82
34 Thread 0x7fffb035c710 (LWP 10654) 0x00007ffff771aa57 in mprotect () at ../sysdeps/unix/syscall-template.S:82
33 Thread 0x7fffb045d710 (LWP 10653) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
32 Thread 0x7fffb055e710 (LWP 10652) 0x00007ffff7deb751 in _dl_name_match_p (name=0x7fffc82e49c0 "/home/linux/vlc/lib/libpulse_plugin.so", map=0x40111470) at dl-misc.c:301
31 Thread 0x7fffb065f710 (LWP 10651) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
30 Thread 0x7fffb0760710 (LWP 10650) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
29 Thread 0x7fffb0861710 (LWP 10649) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
28 Thread 0x7fffb0962710 (LWP 10648) __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
27 Thread 0x7fffc1d7c710 (LWP 10647) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
26 Thread 0x7fffc1e7d710 (LWP 10646) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
25 Thread 0x7fffc1f7e710 (LWP 10645) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
24 Thread 0x7fffc4127710 (LWP 10644) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
23 Thread 0x7fffc4228710 (LWP 10643) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
22 Thread 0x7fffc4329710 (LWP 10642) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
21 Thread 0x7fffc442a710 (LWP 10641) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
20 Thread 0x7fffc452b710 (LWP 10640) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
19 Thread 0x7fffc472d710 (LWP 10639) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
* 18 Thread 0x7fffc618b710 (LWP 10636) __pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50
17 Thread 0x7fffc628c710 (LWP 10635) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
16 Thread 0x7fffc638d710 (LWP 10634) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
15 Thread 0x7fffc6ac8710 (LWP 10633) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
14 Thread 0x7fffcc924710 (LWP 10632) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
13 Thread 0x7fffcca25710 (LWP 10631) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
12 Thread 0x7fffccb26710 (LWP 10630) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
11 Thread 0x7fffccc27710 (LWP 10629) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
10 Thread 0x7fffccd28710 (LWP 10628) sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
9 Thread 0x7fffcce68710 (LWP 10627) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
8 Thread 0x7fffccf69710 (LWP 10626) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
7 Thread 0x7fffcd06a710 (LWP 10625) pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
6 Thread 0x7fffcd863710 (LWP 10624) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
5 Thread 0x7fffcd964710 (LWP 10623) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
4 Thread 0x7fffcda65710 (LWP 10622) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
3 Thread 0x7fffcdb66710 (LWP 10621) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
2 Thread 0x7ffff690c710 (LWP 10620) pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
1 Thread 0x7ffff7ecc700 (LWP 10619) 0x00007ffff7bc703d in pthread_join (threadid=140737330071312, thread_return=0x7fffffffbf80) at pthread_join.c:89
(gdb)
I hope this is what you're asking for, I'm not familiar much with these tools.
I'm happy to run more tests and provide more info if you think this is worth pursuing.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 14:31
by Rémi Denis-Courmont
The last one is most likely because your process fails to call XInitThreads() before the first use of Xlib. I don't know about the first ones, but they're deep within FontConfig.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 15:12
by sherington
The last one is most likely because your process fails to call XInitThreads() before the first use of Xlib. I don't know about the first ones, but they're deep within FontConfig.
Thanks for looking over that.
I don't think I can do anything about it in the Java bindings - if like you say something is failing to call XInitThreads() at the right time, then that is something that is presumably hidden deep inside the Java VM. We never deal with Xlib directly at all in Java applications.
So I guess to go back to the OP, there's nothing that can be done. If it's a JVM bug, complain to Oracle or the OpenJDK people.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 15:29
by Rémi Denis-Courmont
It's not necessarily a bug in the JVM. If AWT only uses Xlib from a single (native) thread per process, not calling XInitThreads() is perfectly legitimate. I don't know its internals, but I guess that is the case.
Then you're simply not allowed to use Xlib from any other (native) thread than the one using AWT. That implies LibVLC cannot use Xlib; the "--no-xlib" was created for that particular case. Unfortunately, it means the PulseAudio audio outputs, and the OpenGL/GLX, SDL and ASCII Art video outputs will be disabled.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 15:57
by sherington
It's not necessarily a bug in the JVM. If AWT only uses Xlib from a single (native) thread per process, not calling XInitThreads() is perfectly legitimate. I don't know its internals, but I guess that is the case.
That's interesting, thanks.
I'd like to hear from the OP if this simplistic workaround resolves the issue for him/her.
Code: Select all
mediaPlayer.play();
while(!mediaPlayer.isPlaying()) {
Thread.yield();
}
This works reliably for me, and it gives hope that with further work I can encapsulate a proper workaround in the Java bindings (basically to make sure calls to libvlc_media_player_play are serialised and wait for the player to start between calls). Maybe using events would be better than the yield loop, and there are obvious issues to address like what if isPlaying never returns true. I'll do some more work on this.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 16:24
by Rémi Denis-Courmont
--no-xlib is already used by the Mozilla plugin for the same reason.
We have spent a lot of time making sure libvlc proper is reentrant. I would not recommend going the hack route.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 18:09
by sherington
--no-xlib is already used by the Mozilla plugin for the same reason.
We have spent a lot of time making sure libvlc proper is reentrant. I would not recommend going the hack route.
Hmm... ok. I guess for now I will leave it up the client application to decide if they want to try disabling xlib or try doing the hack approach themselves, rather than hacking
inside the bindings.
It only affects users who need to create multiple instances so I suspect most users probably won't care.
Thanks again for the discussion and pointers on this.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 18:21
by Rémi Denis-Courmont
That's not true. The probably that the crash increases dramatically with the number of instances, due to the application of the birthday paradox to race conditions. But it can happen even with a single instance. In fact, it is very likely to cause a crash when AWT cleans up after itself, regardless of the number of instances.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 18:50
by sherington
That's not true. The probably that the crash increases dramatically with the number of instances, due to the application of the birthday paradox to race conditions. But it can happen even with a single instance. In fact, it is very likely to cause a crash when AWT cleans up after itself, regardless of the number of instances.
OK, I accept what you're saying and I will try and resolve it because obviously I don't want to cause crashes, but at this moment I don't know what I can realistically do about it inside the bindings.
Re: VLC crashes when u try to run multiple instances of it
Posted: 24 Jul 2010 20:21
by Rémi Denis-Courmont
At the bindings level, the only solution is to always pass --no-xlib.
Re: VLC crashes when u try to run multiple instances of it
Posted: 25 Jul 2010 09:29
by sherington
At the bindings level, the only solution is to always pass --no-xlib.
Yes that does indeed get rid of one of the types of crash.
I'm still doing a lot of tests and work on this because now that I have most of the functionality I want exposed in the bindings I want to focus on the reliability and eliminating crashes.
So...
Something else is still going wrong because I still see random font config crashes (as described earlier), and now I see new random other crashes.
Here's a flavour of the new errors (mostly the JVM crashes soon afterwards):
Code: Select all
Fontconfig error: "/etc/fonts/conf.d/65-fonts-persian.conf", line 190: <match target="scan"> cannot edit user-defined object "(null)"
[0x7fd6c4e75980] jack audio output error: failed to connect to JACK server
[0x7fd6c4e75980] oss audio output error: cannot open audio device (/dev/dsp)
[0x7fd6bc12ea40] freetype spu text error: Failed to get fontfile
[0x40dd78d0] freetype spu text error: Failed to get fontfile
(process:3646): Pango-CRITICAL **: pango_coverage_get: assertion `coverage != NULL' failed
ALSA lib pcm.c:2211:(snd_pcm_open_noupdate) Unknown PCM �8|C
(I made sure I compiled and installed the latest alsa.)
Here's some more random anecdotal observations...
If the JVM does not crash immediately, I sometimes see some of the media player instances stop playing video after a short while.
With "--no-audio" I see only the fontconfig errors causing VM crashes.
Sometimes, but rarely, the multi-instance test I have starts and runs perfectly no matter what args I pass to libvlc.
If I do the isRunning hack described earlier, it works 100% - I know that's not the right answer, I just say it for something to compare against.
The same behaviour happens whether I embed the output or leave it for libvlc to open up it's own video windows.
Re: VLC crashes when u try to run multiple instances of it
Posted: 25 Jul 2010 09:55
by Rémi Denis-Courmont
I must say, I don't know if fontconfig is internally thread safe. But it might also be that the process ran out of memory (I expect fontconfig/freetype do large-ish allocations).
The ALSA one looks odd, especially out of the blue.
Re: VLC crashes when u try to run multiple instances of it
Posted: 25 Jul 2010 10:01
by sherington
The ALSA one looks odd, especially out of the blue.
Sorry for any confusion, those errors weren't all in sequence from the same session.
Re: VLC crashes when u try to run multiple instances of it
Posted: 25 Jul 2010 11:13
by sherington
So next I did a build of vlc with --disable-font-config. If I use that build in conjunction with --no-xlib libvlc args then, as you'd probably expect, I get much less JVM crashes, but still get some.
I also still randomly get ALSA warnings and other errors dumped to the console, here's the latest example:
Code: Select all
java: conf.c:3778: snd_config_iterator_first: Assertion `config->type == SND_CONFIG_TYPE_COMPOUND' failed.
The only post I could find regarding thread-safetiness of fontconfig was some release notes here
http://qt.nokia.com/developer/changes/changes-4.5.2/ which stated "[241361] Prevented asynchronous access to non-thread safe libfontconfig API".
I do feel like I'm pushing the problem around from one sub-system to the next!
Re: VLC crashes when u try to run multiple instances of it
Posted: 25 Jul 2010 11:25
by Rémi Denis-Courmont
Looks like ALSA is not thread-safe then. Starting only one media at a time only reduces the chances of hitting the problem though.
Re: VLC crashes when u try to run multiple instances of it
Posted: 26 Jul 2010 14:44
by ghazzalyahmad
Hi everyone,
First of all, thanks a million for the discussion and great insight on this problem.
I tried the --no-xlib and it works, it doesn't crash as often, however it still does sometimes, but not as bas as before. Unfortunately I am not very familiar on how to capture the error and show what the problem is. I don't even get any logs about the error. If someone can tell me how I would capture it, I would love to try and post it. However, i can also provide a working sample of the application.
Again thanks for the support...
Re: VLC crashes when u try to run multiple instances of it
Posted: 26 Jul 2010 17:02
by sherington
If someone can tell me how I would capture it, I would love to try and post it. However, i can also provide a working sample of the application.
I don't think you're going to be able to capture anything we don't already know about. FontConfig is seemingly not thread-safe, ALSA is seemingly not thread-safe. A single-threaded Java application calling multiple libvlc_play_media in quick succession will lead to crashes.
As of right now, I would do the isPlaying() -> yield() hack as previously described in this thread. Whilst far from ideal, it's all you can do for now if --no-xlib etc is not working 100% for you.
Re: VLC crashes when u try to run multiple instances of it
Posted: 03 Aug 2010 16:49
by ghazzalyahmad
The isPlaying() -> yield() hack.. caused me more problems. it also caused the application to crash. Is there a way (like the --no-xlib) to also disable the FontConfig and ALSA..?
Re: VLC crashes when u try to run multiple instances of it
Posted: 03 Aug 2010 17:03
by Rémi Denis-Courmont
The only way to disable fontconfig is to compile VLC without it (--disable-fontconfig). This is likely to break all OSD functionality.
To disable ALSA, you need to force another audio output, or to compile VLC without ALSA, and without SDL_audio (which probably wraps ALSA). Since --no-xlib disables PulseAudio, that leaves no option but OSS. OSS does typically not support multiple clients, and there is most probably already one (PulseAudio daemon, another VLC instance, the desktop environment, etc), so you can basically forget audio.
Re: VLC crashes when u try to run multiple instances of it
Posted: 03 Aug 2010 17:34
by ghazzalyahmad
Thanks for the quick reply.
Seeing that your one of the VLC team, is there a way in which these functionalities would be thread safe any time soon, in one of the coming releases?