[vlc-devel] Core input code race condition

xxcv xxcv07 at gmail.com
Fri Mar 6 11:07:08 CET 2009


    Hello,

Rémi Denis-Courmont wrote:
> It is well-known that the "interaction" (not to be confused with the UIs) code 
> is super mega utter deep complete crap.
>
> This is very easy to reproduce: create a long playlist (e.g. M3U) of files 
> that don't exist. Open it in VLC. Wait a few instants. Caboom.
>
> I've been trying improve the interaction code, but its design is so 
> intrisincally stupid, that I have not gotten round to fixing it, and I am 
> more than fed up with it.
>
>   
1.
Stress testing without GDB shows good results.
    http://img87.imageshack.us/img87/7917/avifile.jpg will pop up every 
10 seconds
or so disrupting the stress testing.

VLC will not crash with AVI files, after 2-5 minutes in test, Quit with
close button on top right hand corner and assertion failure pops up.
http://img23.imageshack.us/img23/8977/onquitafterloadingm3uwi.jpg

The vout - input changing memory leak race condition still stands.
Checking with task manager showing vlc.exe memory usage is at 1 Gigabyte
if the stress testing were to continue vlc would crash at near 1-1.6 
Gigabyte leak.

2.
Done four separate tests through GDB, press + holding "N"
with AVI files results are below:
------------------------------------------------------------------------
[0x4e018c] main playlist debug: starting new item
[0x4e018c] main playlist debug: creating new input thread
[0x1f06bf04] main input debug: Creating an input for 'test1.avi'
[0x1ee079bc] main input debug: Destroying the input for 'test0.avi'
[0x1ee079bc] main input debug: TIMER input launching for 'test0.avi' : 
389.000 ms - Total 389.000 ms / 1 intvls (Avg 389.000 ms)
[0x1f06bf04] main input debug: thread (input) created at priority 1 
(input/input.c:353)
[0xd7e8e7c] qt4 interface debug: IM: Setting an input
[0x1f06bf04] main input debug: thread started
[0x1f06bf04] main input debug: using timeshift granularity of 52428800 bytes
[0x1f06bf04] main input debug: using timeshift  path 
'C:\Users\vista\AppData\Local\Temp'
[0x1f06bf04] main input debug: `C:\media\test1.avi' gives access `' 
demux `' path `C:\media\test1.avi'
[0xd7e8e7c] qt4 interface debug: Updating the geometry
[0x1f06bf04] main input debug: creating demux: access='' demux='' 
path='C:\media\test1.avi'
[0x20063994] main demux debug: looking for access_demux module: 3 candidates
[0xd7e8e7c] qt4 interface debug: size: 1 - -623
libdvdread: Using libdvdcss version 1.2.10 for DVD access
[0xd7e8e7c] qt4 interface debug: sizeHint: 524 - 704

--- Qt 4.5.0 locked up here, nothing is responding

--- Killed process at this point, from task manager
--- The following debug message get popped into the log file.

[0xd7e8e7c] qt4 interface debug: size: 1 - -623
[New thread 18244.0x1b2c]
[New thread 18244.0x2de0]
[New thread 18244.0x438c]

Program exited with code 01.
(gdb) Error: dll starting at 0x77b60000 not found.

------------------------------------------------------------------------
[0x261018c] main playlist debug: starting new item
[0x261018c] main playlist debug: creating new input thread
[0x1bc52234] main input debug: Creating an input for 'test2.avi'
[0x1bc52234] main input debug: thread (input) created at priority 1 
(input/input.c:353)
[0x1bc52234] main input debug: thread started
[0x1bc52234] main input debug: using timeshift granularity of 52428800 bytes
[0x1bc52234] main input debug: using timeshift  path 
'C:\Users\vista\AppData\Local\Temp'
[0x1bc52234] main input debug: `C:\media\test2.avi' gives access `' 
demux `' path `C:\media\test2.avi'
[0x1bc52234] main input debug: creating demux: access='' demux='' 
path='C:\media\test2.avi'
[0x261018c] main playlist debug: incoming request - stopping current input
[0x1bc3dbbc] main demux debug: looking for access_demux module: 3 candidates
[0xd6b8cd4] qt4 interface debug: IM: Deleting the input

--- Qt 4.5.0 locked up here, nothing is responding

--- Killed process at this point, from task manager
--- The following debug message get popped into the log file.

libdvdread: Using libdvdcss version 1.2.10 for DVD access
[0xd6b8cd4] qt4 interface debug: Updating the geometry
[New thread 28676.0x5a00]

Program exited with code 01.
(gdb) Error: dll starting at 0x77b60000 not found.
------------------------------------------------------------------------
[0xd6f8f14] qt4 interface debug: IM: Setting an input
[0x1ad57d64] main input debug: thread started
[0x1ad57d64] main input debug: using timeshift granularity of 52428800 bytes
[0x1ad57d64] main input debug: using timeshift  path 
'C:\Users\vista\AppData\Local\Temp'
[0x1ad57d64] main input debug: `C:\media\test3.avi' gives access `' 
demux `' path `C:\media\test3.avi'
[0x1ad57d64] main input debug: creating demux: access='' demux='' 
path='C:\media\test3.avi'
[0x1ad594d4] main demux debug: looking for access_demux module: 3 candidates
libdvdread: Using libdvdcss version 1.2.10 for DVD access
[0xd6f8f14] qt4 interface debug: Updating the geometry

--- Qt 4.5.0 locked up here, nothing is responding

--- Killed process at this point, from task manager
--- The following debug message get popped into the log file.

[0xd6f8f14] qt4 interface debug: size: 1 - -1159
[New thread 18080.0x5914]

Program exited with code 01.
(gdb) Error: dll starting at 0x77b60000 not found.
------------------------------------------------------------------------
[0x1c063ca4] main input debug: thread (input) created at priority 1 
(input/input.c:353)
[0xd678b94] qt4 interface debug: IM: Setting an input
[0x1c063ca4] main input debug: thread started
[0x1c063ca4] main input debug: using timeshift granularity of 52428800 bytes
[0x1c063ca4] main input debug: using timeshift  path 
'C:\Users\vista\AppData\Local\Temp'
[0x1c063ca4] main input debug: `C:\media\test4.avi' gives access `' 
demux `' path `C:\media\test4.avi'
[0x1c063ca4] main input debug: creating demux: access='' demux='' 
path='C:\media\test4.avi'
[0x1c06304c] main demux debug: looking for access_demux module: 3 candidates
libdvdread: Using libdvdcss version 1.2.10 for DVD access
[0xd678b94] qt4 interface debug: Updating the geometry

--- Qt 4.5.0 locked up here, nothing is responding

--- Killed process at this point, from task manager
--- The following debug message get popped into the log file.

[0xd678b94] qt4 interface debug: size: 1 - -639
[New thread 24092.0x7410]
[New thread 24092.0x5394]
[New thread 24092.0x3794]

Program exited with code 01.
(gdb) Error: dll starting at 0x77b60000 not found.
------------------------------------------------------------------------

Regards.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20090306/e9d2d2e8/attachment.html>


More information about the vlc-devel mailing list