Opened 13 years ago

Closed 13 years ago

#178 closed defect (fixed)

ffserver segfault

Reported by: andrixnet Owned by: baptiste
Priority: normal Component: ffserver
Version: git Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Using may 8th snapshot, I seem to be unable to use ffserver.

Simply running it with the sample configuration file, I get segfault.

The only thing I changed was commenting these 2 lines in the sample :
#File /tmp/feed1.ffm
#FileMaxSize 200K

gdb ffserver_g
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-slackware-linux"...
(gdb) r -f ./ffserver.conf
Starting program: /root/62/ffserver_g -f ./ffserver.conf
[Thread debugging using libthread_db enabled]
ffserver version 2011-05-09, Copyright (c) 2000-2011 the FFmpeg developers
  built on May  9 2011 15:27:56 with gcc 4.2.4
  configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/man -
-disable-debug --enable-shared --enable-static --enable-pthreads --enable-gpl --enable-v
ersion3 --enable-postproc --enable-avfilter --enable-avdevice --enable-avcodec --enable-
avformat --enable-runtime-cpudetect --disable-vdpau --disable-vaapi --disable-dxva2 --en
able-memalign-hack --enable-swscale --enable-fastdiv --enable-x11grab --enable-bzlib --e
nable-zlib --enable-libtheora --enable-libvorbis --enable-libopenjpeg --enable-libdc1394
 --enable-libmp3lame --enable-libfaac --enable-libxvid --enable-libx264 --enable-libspee
x --enable-libdirac --enable-libschroedinger --enable-nonfree --enable-libgsm --enable-l
ibvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --extra-cfl
ags='-I/usr/include -DRUNTIME_CPUDETECT' --extra-ldflags='-L/usr/lib -lssl -lcrypto -lz
-lusb'
  libavutil    51.  2. 1 / 51.  2. 1
  libavcodec   53.  5. 0 / 53.  5. 0
  libavformat  53.  0. 3 / 53.  0. 3
  libavdevice  53.  0. 0 / 53.  0. 0
  libavfilter   2.  5. 0 /  2.  5. 0
  libswscale    0. 14. 0 /  0. 14. 0
  libpostproc  51.  2. 0 / 51.  2. 0

[1]+  Stopped                 gdb ffserver_g
root@gate:~/62# bt
bash: bt: command not found
root@gate:~/62# fg %1
gdb ffserver_g
[New Thread 0xb647b6d0 (LWP 15875)]

Program received signal SIGTTOU, Stopped (tty output).
[Switching to Thread 0xb647b6d0 (LWP 15875)]
0xb70b1d4e in __write_nocancel () from /lib/libc.so.6

(gdb) bt
#0  0xb70b1d4e in __write_nocancel () from /lib/libc.so.6
#1  0xb7051054 in _IO_new_file_write () from /lib/libc.so.6
#2  0xb7050cf5 in new_do_write () from /lib/libc.so.6
#3  0xb7050fff in _IO_new_do_write () from /lib/libc.so.6
#4  0xb7051909 in _IO_new_file_overflow () from /lib/libc.so.6
#5  0xb7050eac in _IO_new_file_xsputn () from /lib/libc.so.6
#6  0xb702a3ef in vfprintf () from /lib/libc.so.6
#7  0x0804cafc in http_vlog ()
#8  0xb71344c0 in ?? () from /lib/libc.so.6
#9  0x0805be58 in ?? ()
#10 0xbfac6d44 in ?? ()
#11 0xb80ca660 in _r_debug ()
#12 0xbfac6d20 in ?? ()
#13 0xb80bb729 in _dl_fixup () from /lib/ld-linux.so.2
#14 0x00000000 in ?? ()

(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0xb70b1d2e to 0xb70b1d6e:
0xb70b1d2e <read+110>:  jmp    0xb70b1d12 <read+82>
0xb70b1d30 <write+0>:   cmpl   $0x0,%gs:0xc
0xb70b1d38 <write+8>:   jne    0xb70b1d57 <write+39>
0xb70b1d3a <__write_nocancel+0>:        push   %ebx
0xb70b1d3b <__write_nocancel+1>:        mov    0x10(%esp),%edx
0xb70b1d3f <__write_nocancel+5>:        mov    0xc(%esp),%ecx
0xb70b1d43 <__write_nocancel+9>:        mov    0x8(%esp),%ebx
0xb70b1d47 <__write_nocancel+13>:       mov    $0x4,%eax
0xb70b1d4c <__write_nocancel+18>:       int    $0x80
0xb70b1d4e <__write_nocancel+20>:       pop    %ebx
0xb70b1d4f <__write_nocancel+21>:       cmp    $0xfffff001,%eax
0xb70b1d54 <__write_nocancel+26>:       jae    0xb70b1d83 <write+83>
0xb70b1d56 <__write_nocancel+28>:       ret
0xb70b1d57 <write+39>:  call   0xb70cde00 <__libc_enable_asynccancel>
0xb70b1d5c <write+44>:  push   %eax
0xb70b1d5d <write+45>:  push   %ebx
0xb70b1d5e <write+46>:  mov    0x14(%esp),%edx
0xb70b1d62 <write+50>:  mov    0x10(%esp),%ecx
0xb70b1d66 <write+54>:  mov    0xc(%esp),%ebx
0xb70b1d6a <write+58>:  mov    $0x4,%eax
End of assembler dump.

(gdb) info all-registers
eax            0xfffffe00       -512
ecx            0xb80ac000       -1207255040
edx            0x5d     93
ebx            0x1      1
esp            0xbfac6614       0xbfac6614
ebp            0xbfac6630       0xbfac6630
esi            0x5d     93
edi            0xb80ac000       -1207255040
eip            0xb70b1d4e       0xb70b1d4e <__write_nocancel+20>
eflags         0x200246 [ PF ZF IF ID ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            0        (raw 0x00000000000000000000)
st3            0        (raw 0x00000000000000000000)
st4            -1       (raw 0xbfff8000000000000000)
st5            -1       (raw 0xbfff8000000000000000)
st6            1        (raw 0x3fff8000000000000000)
st7            1        (raw 0x3fff8000000000000000)
fctrl          0x37f    895
fstat          0x20     32
ftag           0xffff   65535
fiseg          0x73     115
fioff          0xb715bc27       -1223312345
foseg          0x7b     123
fooff          0xbfac7164       -1079217820
fop            0x1c9    457
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
mxcsr          0x1f80   [ IM DM ZM OM UM PM ]
mm0            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0},
  v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm1            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0},
  v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm2            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0},
  v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0},
  v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm4            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000}, v4_int16 = {
    0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}}
mm5            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000}, v4_int16 = {
    0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}}
mm6            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000}, v4_int16 = {
    0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}}
mm7            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000}, v4_int16 = {
    0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}}

Change History (4)

comment:2 by Michael Niedermayer, 13 years ago

As the patch was applied, is this still reproduceable?

comment:3 by andrixnet, 13 years ago

No. The snapshot I took for testing already contained this patch and ffserver started just fine.

Today, ffserver starts just fine at release 0.8.
(sorry for the delayed reply).

comment:4 by Carl Eugen Hoyos, 13 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.