Go Back   nV News Forums > Linux Support Forums > NVIDIA Linux

Newegg Daily Deals

Reply
 
Thread Tools
Old 06-16-09, 04:48 PM   #1
wbreu
Registered User
 
Join Date: Jun 2009
Posts: 9
Default Segmention Fault with xine-vdpau and VDR

Hello,

i become with my System:

Debian Linux 4.0
Kernel 2.6.27.9
Nvidia-Driver-185.18.14

xine-vdpau-r271 and VDR-1.7.0


following segmention-fault by zapping in VDR from a DVB-S2-channel to an DVB-S-channel:

Local decoder/d[6397]: segfault at 99ea9000 ip b7bf518f sp af5c4ea0 error 4 in libc-2.9.so[b7b81000+13c000]


1. bt:

....
Program terminated with signal 11, Segmentation fault.
#0 0xb7bf518f in memcpy () from /usr/lib/libc.so.6
(gdb) bt
#0 0xb7bf518f in memcpy () from /usr/lib/libc.so.6
#1 0xafb3a7c3 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#2 0xafb3bd38 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#3 0xafb3be77 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#4 0xafb46902 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#5 0xafb02009 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#6 0xafaf61d8 in vdp_trace_device_create_x11 () from /usr/lib/libvdpau_trace.so
#7 0xafc7fa89 in vdpau_display_frame (this_gen=0x93c8ba0, frame_gen=0x93d3de0) at video_out_vdpau.c:1410
#8 0xb4060f41 in overlay_and_display_frame (this=0x93d6de0, img=0x93d3de0, vpts=15898414) at video_out.c:1043
#9 0xb4062851 in video_out_loop (this_gen=0x93d6de0) at video_out.c:1179
#10 0xb7ed1f50 in start_thread () from /usr/lib/libpthread.so.0
#11 0xb7c4e5de in clone () from /usr/lib/libc.so.6



2. The last lines of the console there VDR/xine-vdpau runs are:

.....
vdp_video_mixer_render(10, 4294967295, NULL, 1, 2, {20, 27}, 20, 1, {24}, {0, 0, 720, 576}, 5, {0, 0, 1920, 1080}, {0, 0, 1920, 1080}, 2, {{(ver 0) 15,{0, 0, 720, 576}, {0, 0, 1920, 1080}}, {(ver 0) 14,{0, 0, 1900, 1060}, {0, 0, 1900, 1060}}})
-> 0
vdp_presentation_queue_display(3, 5, 0, 0, 1245172882659382176)
-> 0
vdp_decoder_render(23, 27, {11, 21, 36, 3, 3, 0, 0, 0, 1, 1, 1, 1, 0, 0, {{5, 5}, {5, 5}}, {8, 16, 19, 22, 26, 27, 29, 34, 16, 16, 22, 24, 27, 29, 34, 37, 19, 22, 26, 27, 29, 34, 34, 38, 22, 22, 26, 27, 29, 34, 37, 40, 22, 26, 27, 29, 32, 35, 40, 48, 26, 27, 29, 32, 35, 40, 48, 58, 26, 27, 29, 34, 38, 46, 56, 69, 27, 29, 35, 38, 46, 56, 69, 83}, {16, 17, 19, 20, 22, 23, 25, 26, 17, 18, 20, 21, 23, 24, 26, 28, 19, 20, 22, 24, 26, 27, 29, 31, 20, 21, 23, 25, 27, 29, 31, 33, 22, 24, 26, 28, 30, 32, 34, 36, 23, 25, 27, 29, 31, 33, 35, 38, 25, 27, 29, 32, 34, 36, 39, 41, 26, 28, 30, 33, 35, 38, 40, 43}}, 1, {{(ver 0) 11336, ...}})
-> 0
vdp_decoder_destroy(23)
prebuffer=14400 pts
prebuffer=14400 pts
video_out: Verwerfe Bild mit pts -6648956008, weil es zu alt ist (Unterschied: 6664850823).
vdp_video_surface_destroy(21)
-> 0
vdp_video_surface_put_bits_y_cb_cr(4, 1, {0x99e42f30, 0x9a22bfc0, 0x9a201360}, {720, 360, 360}, )




################

If you need the full log from the console of VDR/xine-vdpau (ca. 8 MB), no problem.

The segfault is also reproduceable with 180.60- and 185.18.10-driver-versions and more other versions.

Is this a problem of xine-vdpau or the nvidia-driver?


Many thanks for your Help

Wolfgang
Attached Files
File Type: gz nvidia-bug-report.log.gz (32.3 KB, 76 views)

Last edited by wbreu; 06-16-09 at 04:54 PM. Reason: typo
wbreu is offline   Reply With Quote
Old 06-17-09, 12:48 AM   #2
Stephen Warren
Moderator
 
Stephen Warren's Avatar
 
Join Date: Aug 2005
Posts: 1,327
Default Re: Segmention Fault with xine-vdpau and VDR

Which version of the driver was the crash backtrace you gave from? I assume 185.18.14.

Can you reproduce the crash, and run "info sharedlibrary" in addition to "bt", and post that output too, or at least the line that corresponds to libvdpau_nvidia.so.

Finally, could you validate that the pointers passed into vdp_video_surface_put_bits_y_cb_cr are valid, by e.g. from your example:

// take 0x99e42f30 from the VDPAU_TRACE log
p *(unsigned char *)(0x99e42f30) // first entry
p *(unsigned char *)(0x99e42f30 + (720 * 480) - 1) // last entry

and similar for the other two plane pointers, except with (360 * 240) as the offset for the last entry.

Thanks.
Stephen Warren is offline   Reply With Quote
Old 06-17-09, 12:43 PM   #3
wbreu
Registered User
 
Join Date: Jun 2009
Posts: 9
Default Re: Segmention Fault with xine-vdpau and VDR

Hello stephen,

thank you for your answer.

the bt was with the 185.18.14.

the two attachments are the "info shreadlibrary"-ouput and the last 100 kb (tracelog) from the log of the konsole there the VDR runs.

I hope this will also help to solve the problem.

best wishes from germany

Wolfgang
Attached Files
File Type: txt info_sharedlibrary.txt (14.7 KB, 126 views)
File Type: log vdr-short.log (94.4 KB, 83 views)
wbreu is offline   Reply With Quote
Old 06-17-09, 04:56 PM   #4
Stephen Warren
Moderator
 
Stephen Warren's Avatar
 
Join Date: Aug 2005
Posts: 1,327
Default Re: Segmention Fault with xine-vdpau and VDR

Sorry, I need both "bt" and "info sharedlibrary" from the exact same crash; the libs may get loaded to different addresses different times you run the app.
Stephen Warren is offline   Reply With Quote
Old 06-17-09, 05:04 PM   #5
Stephen Warren
Moderator
 
Stephen Warren's Avatar
 
Join Date: Aug 2005
Posts: 1,327
Default Re: Segmention Fault with xine-vdpau and VDR

Actually, it looks like you probably got lucky and the libs got loaded in the same location both times.

Can you perform the debugger experiments I mentioned before; wait for the crash, then:

// take 0x99e42f30 from the VDPAU_TRACE log
p *(unsigned char *)(0x99e42f30) // first entry
p *(unsigned char *)(0x99e42f30 + (720 * 480) - 1) // last entry

and similar for the other two plane pointers, except with (360 * 240) as the offset for the last entry.

The most likely explanation is that the memory buffers being passed to VDPAU are invalid. The above will confirm whether this is the case, or whether there is a bug inside VDPAU.
Stephen Warren is offline   Reply With Quote
Old 06-17-09, 05:21 PM   #6
wbreu
Registered User
 
Join Date: Jun 2009
Posts: 9
Default Re: Segmention Fault with xine-vdpau and VDR

Hello stephen,

another segfault:

Local decoder/d[4777]: segfault at 999b6000 ip b7bf818f sp b0034ea0 error 4 in libc-2.9.so[b7b84000+13c000]

(gdb) bt
#0 0xb7bf818f in memcpy () from /usr/lib/libc.so.6
#1 0xb05aa7c3 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#2 0xb05abd38 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#3 0xb05abe77 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#4 0xb05b6902 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#5 0xb0572009 in vdp_imp_device_create_x11 () from /usr/lib/libvdpau_nvidia.so
#6 0xb05661d8 in vdp_trace_device_create_x11 () from /usr/lib/libvdpau_trace.so
#7 0xb06eca89 in vdpau_display_frame (this_gen=0x83f0290, frame_gen=0x83fadb0) at video_out_vdpau.c:1410
#8 0xb1acdf41 in overlay_and_display_frame (this=0x83fe4d0, img=0x83fadb0, vpts=2735264) at video_out.c:1043
#9 0xb1acfc13 in video_out_loop (this_gen=0x83fe4d0) at video_out.c:1117
#10 0xb7ed4f50 in start_thread () from /usr/lib/libpthread.so.0
#11 0xb7c515de in clone () from /usr/lib/libc.so.6

All output from the same time / corefile

thanks

Wolfgang
Attached Files
File Type: txt new_info_sharedlibrary.txt (15.7 KB, 137 views)
wbreu is offline   Reply With Quote
Old 06-17-09, 05:27 PM   #7
wbreu
Registered User
 
Join Date: Jun 2009
Posts: 9
Default Re: Segmention Fault with xine-vdpau and VDR

Quote:
Originally Posted by Stephen Warren View Post
Actually, it looks like you probably got lucky and the libs got loaded in the same location both times.

Can you perform the debugger experiments I mentioned before; wait for the crash, then:

// take 0x99e42f30 from the VDPAU_TRACE log
p *(unsigned char *)(0x99e42f30) // first entry
p *(unsigned char *)(0x99e42f30 + (720 * 480) - 1) // last entry

and similar for the other two plane pointers, except with (360 * 240) as the offset for the last entry.

The most likely explanation is that the memory buffers being passed to VDPAU are invalid. The above will confirm whether this is the case, or whether there is a bug inside VDPAU.
The new log,

has 985 KB, can i upload the complete log, if it's help.

Sorry, i don't understand what you mean, should i past "p *(unsigned char *)(0x99e42f30)" in gdb if the core.xxxx is loaded in gdb, and notice the output?

thanks
Wolfgang
wbreu is offline   Reply With Quote
Old 06-17-09, 05:31 PM   #8
Stephen Warren
Moderator
 
Stephen Warren's Avatar
 
Join Date: Aug 2005
Posts: 1,327
Default Re: Segmention Fault with xine-vdpau and VDR

Yes, those are commands to run in gdb.

However, the address ("0x99e42f30") in the command needs to be whatever the VDPAU trace library printed out for the put_bits that's currently executing, i.e. for this log entry:

vdp_video_surface_put_bits_y_cb_cr(4, 1, {0x99e42f30, 0x9a22bfc0, 0x9a201360}, {720, 360, 360}, )

You'd run the command once with 0x99e42f30, again with 0x9a22bfc0, and again with 0x9a201360.

In the two commands I gave, the first is just the base address, the second is the last entry, so you'd end up with:

p *(unsigned char *)(0x99e42f30)
p *(unsigned char *)(0x99e42f30 + (720 * 480) - 1)
p *(unsigned char *)(0x9a22bfc0)
p *(unsigned char *)(0x9a22bfc0 + (360 * 240) - 1)
p *(unsigned char *)(0x9a201360)
p *(unsigned char *)(0x9a201360 + (360 * 240) - 1)
Stephen Warren is offline   Reply With Quote

Old 06-17-09, 05:39 PM   #9
wbreu
Registered User
 
Join Date: Jun 2009
Posts: 9
Default Re: Segmention Fault with xine-vdpau and VDR

Quote:
Originally Posted by Stephen Warren View Post
Yes, those are commands to run in gdb.

However, the address ("0x99e42f30") in the command needs to be whatever the VDPAU trace library printed out for the put_bits that's currently executing, i.e. for this log entry:

vdp_video_surface_put_bits_y_cb_cr(4, 1, {0x99e42f30, 0x9a22bfc0, 0x9a201360}, {720, 360, 360}, )

You'd run the command once with 0x99e42f30, again with 0x9a22bfc0, and again with 0x9a201360.

In the two commands I gave, the first is just the base address, the second is the last entry, so you'd end up with:

p *(unsigned char *)(0x99e42f30)
p *(unsigned char *)(0x99e42f30 + (720 * 480) - 1)
p *(unsigned char *)(0x9a22bfc0)
p *(unsigned char *)(0x9a22bfc0 + (360 * 240) - 1)
p *(unsigned char *)(0x9a201360)
p *(unsigned char *)(0x9a201360 + (360 * 240) - 1)
Ok,

here are the results:

(gdb) p *(unsigned char *)(0x99e42f30)
$1 = 0 '\0'
(gdb) p *(unsigned char *)(0x99e42f30 + (720 * 480) - 1)
$2 = 0 '\0'
(gdb) p *(unsigned char *)(0x9a22bfc0)
$3 = 128 '\200'
(gdb) p *(unsigned char *)(0x9a22bfc0 + (360 * 240) - 1)
$4 = 128 '\200'
(gdb) p *(unsigned char *)(0x9a201360)
$5 = 128 '\200'
(gdb) p *(unsigned char *)(0x9a201360 + (360 * 240) - 1)
$6 = 128 '\200'

Ok so?

Wolfgang
wbreu is offline   Reply With Quote
Old 06-17-09, 05:43 PM   #10
crisalide
Registered User
 
Join Date: Dec 2008
Posts: 173
Default Re: Segmention Fault with xine-vdpau and VDR

Seems wbreu's sample is 720x576.
crisalide is offline   Reply With Quote
Old 06-17-09, 05:47 PM   #11
Stephen Warren
Moderator
 
Stephen Warren's Avatar
 
Join Date: Aug 2005
Posts: 1,327
Default Re: Segmention Fault with xine-vdpau and VDR

That seems to point at a VDPAU bug. Can you run these commands in gdb:

frame 0
info registers
x /2048xw $esp

Oh, and based on crisalide's reply, re-run the previous gdb "p" commands with "720 * 576" and "360 * 288" instead.

Thanks.

P.S. if you have a core file of this crash, maybe you can upload it, and the xine/... binary it applies to, to the NV file drop (see VDPAU sticky thread in this forum).
Stephen Warren is offline   Reply With Quote
Old 06-17-09, 06:00 PM   #12
wbreu
Registered User
 
Join Date: Jun 2009
Posts: 9
Default Re: Segmention Fault with xine-vdpau and VDR

Quote:
Originally Posted by Stephen Warren View Post
That seems to point at a VDPAU bug. Can you run these commands in gdb:

Oh, and based on crisalide's reply, re-run the previous gdb "p" commands with "720 * 576" and "360 * 288" instead.

Thanks.

P.S. if you have a core file of this crash, maybe you can upload it, and the xine/... binary it applies to, to the NV file drop (see VDPAU sticky thread in this forum).
Hi again,

(gdb) p *(unsigned char *)(0x99e42f30)
$1 = 0 '\0'
(gdb) p *(unsigned char *)(0x99e42f30 + (720 * 576) - 1)
$2 = 0 '\0'
(gdb) p *(unsigned char *)(0x9a22bfc0)
$3 = 128 '\200'
(gdb) p *(unsigned char *)(0x9a22bfc0 + (360 * 288) - 1)
$4 = 128 '\200'
(gdb) p *(unsigned char *)(0x9a201360)
$5 = 128 '\200'
(gdb) p *(unsigned char *)(0x9a201360 + (360 * 288) - 1)
$6 = 128 '\200'
(gdb)
(gdb) frame 0
#0 0xb7bf518f in memcpy () from /usr/lib/libc.so.6
(gdb) info registers
eax 0x500 1280
ecx 0xdc 220
edx 0xafac7b00 -1347650816
ebx 0xafc5571c -1346021604
esp 0xaf5c4ea0 0xaf5c4ea0
ebp 0xaf5c4ea8 0xaf5c4ea8
esi 0x99ea9000 -1712680960
edi 0xafac7c90 -1347650416
eip 0xb7bf518f 0xb7bf518f <memcpy+47>
eflags 0x210202 [ IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51

I will upload the files to the given server, that xine-files exactly?

Many thanks
Wolfgang
Attached Files
File Type: txt output x2048.txt (38.6 KB, 95 views)
wbreu is offline   Reply With Quote
Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 08:34 AM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.