Date: Mon, 13 Aug 2012 23:11:09 +0200 From: Juergen Lock <nox@jelal.kn-bremen.de> To: Rainer Hurling <rhurlin@gwdg.de> Cc: kan@FreeBSD.org, Juergen Lock <nox@jelal.kn-bremen.de>, freebsd-multimedia@FreeBSD.org, kib@FreeBSD.org, freebsd-ports@FreeBSD.org, gnome@FreeBSD.org Subject: More rtld trouble (was: Re: Another vlc 2.0.3 update ... ) Message-ID: <20120813211109.GA71682@triton8.kn-bremen.de> In-Reply-To: <50295B53.3020902@gwdg.de> References: <20120812143124.GA21414@triton8.kn-bremen.de> <5027E2EA.2070508@gwdg.de> <20120812171133.GA26625@triton8.kn-bremen.de> <5027E471.1020800@gwdg.de> <5028022B.3020005@gwdg.de> <20120812231210.GA35081@triton8.kn-bremen.de> <502891F5.7080500@gwdg.de> <20120813174521.GA65208@triton8.kn-bremen.de> <50295485.3010706@gwdg.de> <50295B53.3020902@gwdg.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi kib, kan, sorry to bother you again but... :) On Mon, Aug 13, 2012 at 09:53:55PM +0200, Rainer Hurling wrote: > On 13.08.2012 21:24 (UTC+2), Rainer Hurling wrote: > > On 13.08.2012 19:45 (UTC+2), Juergen Lock wrote: > >> On Mon, Aug 13, 2012 at 07:34:45AM +0200, Rainer Hurling wrote: > >>> Am 13.08.2012 01:12 (UTC+1) schrieb Juergen Lock: > >>>> On Sun, Aug 12, 2012 at 09:21:15PM +0200, Rainer Hurling wrote: > >>>>> On 12.08.2012 19:14 (UTC+2), Rainer Hurling wrote: > >>>>>> On 12.08.2012 19:11 (UTC+2), Juergen Lock wrote: > >>>>>>> On Sun, Aug 12, 2012 at 07:07:54PM +0200, Rainer Hurling wrote: > >>>>>>>> On 12.08.2012 16:31 (UTC+2), Juergen Lock wrote: > >>>>>>>>> Thanks to Martin Matuska (ffmpeg port maintainer) for fixing the > >>>>>>>>> multimedia/ffmpeg-011 port to install the shlibs with suffix! > >>>>>>>>> I now seem to have vlc 2.0.3 working using this updated version: > >>>>>>>>> > >>>>>>>>> http://people.freebsd.org/~nox/tmp/vlc-2.0.3-008.patch > >>>>>>>> > >>>>>>>> Does this mean we should change from multimedia/ffmpeg to > >>>>>>>> multimedia/ffmpeg-011? Or is it ok to have them both installed? > >>>>>>> > >>>>>>> Yes it's ok to have both installed. > >>>>>> > >>>>>> Thanks, I will it give a try now :-) > >>>>> > >>>>> Again, there is the problem with the build breaking with > >>>>> > >>>>> GEN ../modules/plugins.dat > >>>>> gmake[2]: *** [../modules/plugins.dat] Segmentation fault: 11 > >>>>> (Speicherauszug erstellt) > >>>>> gmake[2]: Leaving directory > >>>>> `/usr/ports/multimedia/vlc/work/vlc-2.0.3/bin' > >>>>> gmake[1]: *** [all-recursive] Fehler 1 > >>>>> gmake[1]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > >>>>> gmake: *** [all] Fehler 2 > >>>>> *** [do-build] Error code 1 > >>>>> > >>>>> This only happens when option PulseAudio is enabled. (My sound > >>>>> system is > >>>>> driven by PulseAudio.) > >>>>> > >>>> Aah, thanx, I missed the bit about pulseaudio, now I can finally > >>>> reproduce this. I'll follow up on the other thread with the bt > >>>> kib wanted. > >>>> > >>>>> And, as described in another thread on August, 3rd, it only happens, > >>>>> when vlc version 1.x is already installed. So, deleting old vlc before > >>>>> build this new version works for me. > >>>>> > >>>>> Unfortunately if option PulseAudio is enabled, and only then, vlc core > >>>>> dumps right after opening for example mp3 or mp4 files :( > >>>> > >>>> Hm if I did this right the bt for that is: > >>>> > >>>> [...] > >>>> Loaded symbols for /libexec/ld-elf.so.1 > >>>> #0 0x0000000816d33068 in vlc_pa_connect (obj=0x6f6e2f656d6f682f, > >>>> mlp=0x6b636f4c206e65) at vlcpulse.c:137 > >>>> 137 pa_threaded_mainloop_lock (mainloop); > >>>> gdb) bt > >>>> #0 0x0000000816d33068 in vlc_pa_connect (obj=0x6f6e2f656d6f682f, > >>>> mlp=0x6b636f4c206e65) at vlcpulse.c:137 > >>>> #1 0x0000000816d34682 in Open (obj=Variable "obj" is not available. > >>>> ) at pulse.c:840 > >>>> #2 0x0000000800aba580 in vlc_module_load () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #3 0x0000000800aaab2c in aout_VolumeHardSet () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #4 0x0000000800aa83c3 in aout_TimeReport () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #5 0x0000000800a75f70 in decoder_NewPicture () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #6 0x00000008134c77e8 in _::vlc_entry_license () from > >>>> /usr/local/lib/vlc/plugins/codec/libfaad_plugin.so > >>>> #7 0x0000000800a76d83 in input_DecoderCreate () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #8 0x0000000800a7810d in input_DecoderCreate () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #9 0x0000000800a785db in input_DecoderCreate () from > >>>> /usr/local/lib/libvlccore.so.6 > >>>> #10 0x000000080169c58d in pthread_create () from /lib/libthr.so.3 > >>>> #11 0x0000000000000000 in ?? () > >>>> Cannot access memory at address 0x7ffffedf4000 > >>>> (gdb) l vlcpulse.c:130 > >>>> 125 { > >>>> 126 pa_proplist_setf (props, > >>>> PA_PROP_APPLICATION_PROCESS_MACHINE_ID, > >>>> 127 "%.32s", session); /* XXX: is > >>>> this valid? */ > >>>> 128 pa_proplist_sets (props, > >>>> PA_PROP_APPLICATION_PROCESS_SESSION_ID, > >>>> 129 session); > >>>> 130 } > >>>> 131 } > >>>> 132 > >>>> 133 /* Connect to PulseAudio daemon */ > >>>> 134 pa_context *ctx; > >>>> (gdb) l > >>>> 135 pa_mainloop_api *api; > >>>> 136 > >>>> 137 pa_threaded_mainloop_lock (mainloop); > >>>> 138 api = pa_threaded_mainloop_get_api (mainloop); > >>>> 139 ctx = pa_context_new_with_proplist (api, ua, props); > >>>> 140 free (ua); > >>>> 141 if (props != NULL) > >>>> 142 pa_proplist_free (props); > >>>> 143 if (unlikely(ctx == NULL)) > >>>> 144 goto fail; > >>>> (gdb) > >>> > >>> I can confirm this backtrace. It is exactly the same on my system. > >>> > >> I just posted the workaround for that crash: > >> > >> http://people.freebsd.org/~nox/tmp/vlc-2.0.3-009.patch > > > > Thanks for the newest patch! The change from > > sysconf(_SC_GETPW_R_SIZE_MAX) to LINE_MAX + 1 works nice here. No core > > dumps any more and sound via pulseaudio is working again :) > > > >>>> I'll Cc the pulseaudio port maintainers (gnome@), maybe they have > >>>> an idea? > >>> > >>> Did you forgot to Cc gnome@ (even on the other thread)? > >>> > >> Yeah, I manually forwarded the mail when I noticed. > >>> > >>> I tried out a little bit the build without pulseaudio enabled. It seems > >>> to me, that the sound of vlc is somewhat noisy or dirty, especially for > >>> parts with more dynamics. This scratchy noise grows up when gain control > >>> comes over 100% (up to 200% is possible). Can anyone confirm this? > >>> > >> I haven't noticed that here, maybe your soundcard is clipping etc > >> due to too high mixer levels? > > > > Hmm, possible, but unlikely. This worked pretty good with version 1.1.13 > > and as I wrote, gain control was set in the middle (100%). But now, with > > pulseaudio enabled again, there is not problem with damaged sound > > quality any more. > > > >>> And last but not least: When I deinstall vlc I get the following > >>> message: > >>> pkg_delete: '/usr/local/lib/vlc/plugins/plugins.dat' fails original MD5 > >>> checksum - deleted anyway. > >>> > >> That's the file whose generating crashed when building with the old > >> vlc still installed, maybe it's regenerated at runtime otherwise? > > > > No, it also fails original MD5 checksum with deinstall/reinstall within > > 2.0.3. > > > >>> Thanks again for your work on this port. > >>> Rainer > >> > >> You're welcome! :) > >> Juergen > > I just found two other problems, which at least occur on my system > (10.0-CURRENT amd64): > > (1) With option NOTIFY enabled I am able to build, but not to install > vlc. It gives me: > > gmake[3]: Entering directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > /usr/local/bin/gmkdir -p > '/usr/ports/multimedia/vlc/work/fake/usr/local/bin' > install -o root -g wheel -m 555 cvlc rvlc svlc qvlc > '/usr/ports/multimedia/vlc/work/fake/usr/local/bin' > gmake install-exec-hook > gmake[4]: Entering directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > if test "amd64-portbld-freebsd10.0" = "amd64-portbld-freebsd10.0"; then \ > > LD_LIBRARY_PATH="/usr/ports/multimedia/vlc/work/fake/usr/local/lib:$LD_LIBRARY_PATH" > \ > > "/usr/ports/multimedia/vlc/work/fake/usr/local/lib/vlc/vlc-cache-gen" \ > > "/usr/ports/multimedia/vlc/work/fake/usr/local/lib/vlc/plugins" ; \ > else \ > echo "Cross-compilation: cache generation skipped!" ; \ > fi > gmake[4]: *** [install-exec-hook] Segmentation fault: 11 (Speicherauszug > erstellt) > gmake[4]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > gmake[3]: *** [install-exec-am] Fehler 2 > gmake[3]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > gmake[2]: *** [install-am] Fehler 2 > gmake[2]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > gmake[1]: *** [install-recursive] Fehler 1 > gmake[1]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3' > gmake: *** [install] Fehler 2 > *** [pre-install] Error code 2 > Looks like this is another vlc-cache-gen rtld crash, and this time the remove-old-vlc-version-first workaround doesn't apply... [...] Loaded symbols for /libexec/ld-elf.so.1 #0 symlook_obj (req=0x7fffffffbef0, obj=0x800640c00) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3847 3847 for (symnum = obj->buckets[req->hash % obj->nbuckets]; [New Thread 802406400 (LWP 100159/vlc-cache-gen)] (gdb) bt #0 symlook_obj (req=0x7fffffffbef0, obj=0x800640c00) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3847 #1 0x0000000800608ae7 in symlook_list (req=0x7fffffffc110, objlist=Variable "objlist" is not available. ) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3611 #2 0x000000080060911b in symlook_default (req=0x7fffffffc1b0, refobj=Variable "refobj" is not available. ) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3569 #3 0x000000080060939d in find_symdef (symnum=14, refobj=0x800704c00, defobj_out=0x7fffffffc250, flags=0, cache=0x80061d000, lockstate=0x7fffffffc2f0) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:1541 #4 0x0000000800603690 in reloc_non_plt (obj=0x800704c00, obj_rtld=Variable "obj_rtld" is not available. ) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/amd64/reloc.c:204 #5 0x0000000800606ae8 in relocate_object (obj=0x800704c00, bind_now=0 '\0', rtldobj=0x800819d00, flags=0, lockstate=0x7fffffffc2f0) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:2433 #6 0x00000008006084a8 in dlopen_object ( name=0x80243fb80 "/usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/vlc/plugins/services_discovery/libpulselist_plugin.so", fd=Variable "fd" is not available. ) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:2392 #7 0x0000000800608f67 in rtld_dlopen ( name=0x80243fb80 "/usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/vlc/plugins/services_discovery/libpulselist_plugin.so", fd=-1, mode=1) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:2761 #8 0x0000000800ad377d in vlc_timer_create () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #9 0x0000000800ab9998 in module_gettext () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #10 0x0000000800aba0aa in module_list_get () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #11 0x0000000800ab9db1 in module_list_get () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #12 0x0000000800aba17d in module_list_get () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #13 0x0000000800aba631 in module_list_get () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #14 0x0000000800a52573 in libvlc_InternalInit () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlccore.so.6 #15 0x0000000800822777 in libvlc_new () from /usr/ports/multimedia/vlc-203a/work/fake/usr/local/lib/libvlc.so.8 #16 0x0000000000400cd4 in main () (gdb) p obj->buckets[req->hash % obj->nbuckets] Cannot access memory at address 0x8082ac16c (gdb) p obj->nbuckets $1 = 17 (gdb) p *obj $2 = {magic = 3578837114, version = 1, next = 0x800641c00, path = 0x800643a00 "/usr/local/lib/libXinerama.so.1", origin_path = 0x0, refcount = 1, dl_refcount = 0, mapbase = 0x8082ac000 <Address 0x8082ac000 out of bounds>, mapsize = 2105344, textsize = 8192, vaddrbase = 0, relocbase = 0x8082ac000 <Address 0x8082ac000 out of bounds>, dynamic = 0x8084ad6d8, entry = 0x8082aca40 <Address 0x8082aca40 out of bounds>, phdr = 0x8082ac040, phsize = 280, interp = 0x0, stack_flags = 6, tlsindex = 0, tlsinit = 0x0, tlsinitsize = 0, tlssize = 0, tlsoffset = 0, tlsalign = 0, relro_page = 0x8082ac000 <Address 0x8082ac000 out of bounds>, relro_size = 0, pltgot = 0x8084ad8f8, rel = 0x0, relsize = 0, rela = 0x8082ac768, relasize = 168, pltrel = 0x0, pltrelsize = 0, pltrela = 0x8082ac810, pltrelasize = 312, symtab = 0x8082ac218, strtab = 0x8082ac4d0 <Address 0x8082ac4d0 out of bounds>, strsize = 568, verneed = 0x8082ac748, verneednum = 1, verdef = 0x0, verdefnum = 0, versyms = 0x8082ac708, buckets = 0x8082ac160, nbuckets = 17, chains = 0x8082ac1a4, nchains = 29, nbuckets_gnu = 0, symndx_gnu = 0, maskwords_bm_gnu = 0, shift2_gnu = 0, dynsymcount = 29, bloom_gnu = 0x0, buckets_gnu = 0x0, chain_zero_gnu = 0x0, rpath = 0x8082ac6f0 <Address 0x8082ac6f0 out of bounds>, runpath = 0x0, needed = 0x0, needed_filtees = 0x0, needed_aux_filtees = 0x0, names = {stqh_first = 0x0, stqh_last = 0x800640dc0}, vertab = 0x80061ed80, vernum = 3, init = 34496760136, fini = 34496763032, preinit_array = 0, init_array = 0, fini_array = 0, preinit_array_num = 0, init_array_num = 0, fini_array_num = 0, osrel = 0, mainprog = 0 '\0', rtld = 0 '\0', relocated = 1 '\001', ver_checked = 1 '\001', textrel = 0 '\0', symbolic = 0 '\0', bind_now = 0 '\0', traced = 0 '\0', jmpslots_done = 0 '\0', init_done = 1 '\001', tls_done = 0 '\0', phdr_alloc = 0 '\0', z_origin = 0 '\0', z_nodelete = 0 '\0', z_noopen = 0 '\0', z_loadfltr = 0 '\0', z_nodeflib = 0 '\0', ref_nodel = 0 '\0', init_scanned = 0 '\0', on_fini_list = 1 '\001', dag_inited = 0 '\0', filtees_loaded = 0 '\0', irelative = 0 '\0', gnu_ifunc = 0 '\0', crt_no_init = 0 '\0', valid_hash_sysv = 1 '\001', valid_hash_gnu = 0 '\0', linkmap = {l_addr = 0x8082ac000 <Address 0x8082ac000 out of bounds>, l_name = 0x800643a00 "/usr/local/lib/libXinerama.so.1", l_ld = 0x8084ad6d8, l_next = 0x800641e20, l_prev = 0x800641a20}, dldags = {stqh_first = 0x8006fce60, stqh_last = 0x8006fce60}, dagmembers = {stqh_first = 0x0, stqh_last = 0x800640e58}, dev = 160, ino = 2054422, priv = 0x0} (gdb) p obj->buckets $3 = (const Elf_Hashelt *) 0x8082ac160 (gdb) p obj->buckets[16] Cannot access memory at address 0x8082ac1a0 (gdb) p obj->buckets[15] Cannot access memory at address 0x8082ac19c (gdb) p obj->buckets[10] Cannot access memory at address 0x8082ac188 (gdb) p obj->buckets[5] Cannot access memory at address 0x8082ac174 (gdb) p obj->buckets[2] Cannot access memory at address 0x8082ac168 (gdb) p obj->buckets[1] Cannot access memory at address 0x8082ac164 (gdb) p obj->buckets[0] Cannot access memory at address 0x8082ac160 (gdb) > > (2) Option PROJM builds and installs, but crashes when I try to start it > within vlc: > > No Textures Loaded from /usr/local/share/projectM/textures > Segmentation fault (core dumped) > > As far as I can see, there is no path to projectM/textures (installed > from libprojectM) on FreeBSD, but to projectM/presets? > I'll have to look at that next... > > Sorry for this late response, but before I was not able to run vlc > because of the pulseaudio crashing. Thanx, Juergen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120813211109.GA71682>