On Fri, Mar 16, 2018 at 02:40:00PM +0100, Hiltjo Posthuma wrote:
> On Fri, Mar 16, 2018 at 02:29:24PM +0100, Hiltjo Posthuma wrote:
> > On Thu, Mar 15, 2018 at 03:27:47PM +0100, Martin Pieuchot wrote:
> > > On 05/03/18(Mon) 21:26, Hiltjo Posthuma wrote:
> > > > >  [...]
> > > > > I tried your patch on a source build of about 25 februari on amd64. I 
> > > > > still
> > > > > notice mpv hanging when I try to close it or when the video ends.
> > > 
> > > Thanks for reporting.  This is a different issue.
> > > 
> > > > > Let me know how/if I can help you further with testing.
> > > 
> > > Could you tell me how to reproduce the problem?
> > > 
> > > > Updated to source of ~4 March:
> > > > 
> > > > OpenBSD ren.laptop 6.3 GENERIC.MP#0 amd64
> > > > 
> > > > When I do a backtrace on the hanged mpv I get:
> > > > 
> > > > 
> > > > $ gdb mpv pid
> > > > $ bt
> > > 
> > > Could you get the backtrace of all the threads?
> > > 
> > > Something like: 'thr apply all bt'
> > > 
> > > > #0  _thread_sys___thrsleep () at -:3
> > > > #1  0x0000117420965ea4 in _sem_wait (sem=0x1174219ffc40, 
> > > > tryonly=564132932, abstime=0x0,
> > > >     delayed_cancel=0x11738fa402f0) at 
> > > > /usr/src/lib/librthread/rthread_sem.c:74
> > > > #2  0x00001174209650bf in pthread_join (thread=0x1174219ffc40, 
> > > > retval=0x0)
> > > >     at /usr/src/lib/librthread/rthread.c:304
> > > > #3  0x00001173ec0a9d5b in SDL_WaitThread_REAL () from 
> > > > /usr/local/lib/libSDL2.so.0.4
> > > > #4  0x00001173ec05b64a in close_audio_device () from 
> > > > /usr/local/lib/libSDL2.so.0.4
> > > > #5  0x00001173ec05a1e2 in SDL_AudioQuit_REAL () from 
> > > > /usr/local/lib/libSDL2.so.0.4
> > > > #6  0x00001173ec05703b in SDL_QuitSubSystem_REAL () from 
> > > > /usr/local/lib/libSDL2.so.0.4
> > > > #7  0x000011713bf135e9 in ao_uninit (ao=0x11740b004740) at 
> > > > ../audio/out/ao.c:336
> > > > #8  0x000011713bf561fe in uninit_audio_out (mpctx=0x1173a2d8b840) at 
> > > > ../player/audio.c:280
> > > > #9  0x000011713bf6efd2 in mp_destroy (mpctx=0x1173a2d8b840) at 
> > > > ../player/main.c:166
> > > > #10 0x000011713bf6fbe1 in mpv_main (argc=Variable "argc" is not 
> > > > available.
> > > > ) at ../player/main.c:243
> > > > #11 0x000011713bf03156 in _start () from /usr/local/bin/mpv
> > > > #12 0x0000000000000000 in ?? ()
> > > > (gdb)
> > > 
> > 
> > Hi,
> > 
> > I rebuild base and xenocara from source yesterday and rebuild and 
> > reinstalled
> > mpv.
> > 
> > The hang always happens after a video ends. I've not had any issues with 
> > other
> > programs I think. When the hang happens mpv doesn't response to SIGTERM,
> > so SIGKILL is needed.
> > 
> 
> To clarify a bit more:
> 
> The hang (the mpv window doesn't respond anymore) >>when it happens<< always
> happens after a video ends so far.
> 
> I'm not able to provide a test-case that reproduces it consistently yet.
> 

Hi,

Is anyone using mpv also able to reproduce the hang issue?

I have tried to study the libpthread and rthread code on -current, but it is
not my area of expertise. I think the issue happened before the recent futex
code changes also.

Another issue (that might be related):

The CPU usage is extremely high on mpv compared to ffplay or mplayer.  With a
ktrace on a 10 second video it has 1.3million gettimeofday() calls.  The mpv
port could be updated to detect it can use the clock_gettime(CLOCK_MONOTONIC,
...).  mplayer and ffplay don't use threads for waiting, so my guess it is also
a threading issue.

The version is ports is also about 2 years old and could use some love by the
maintainer.

-- 
Kind regards,
Hiltjo

Reply via email to