Playing video on PPC Mac hangs with an apparent locking problem

Bug #583514 reported by Spiky Caterpillar on 2010-05-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ren'Py
Medium
Tom Rothamel

Bug Description

On a PPC Macintosh (unicore 1.25GHz G4, OS X 10.4.11), trying to play a Theora video (the same one in BuggyMovie) will play a tiny bit of the audio with no video output at all before locking up.

The offending playback code is:

label start:
    "Before the movie."
    image movie = Movie(size=(800,600),xanchor=0,yanchor=0,xpos=0,ypos=0)
    show movie
    play movie 'op-uncompressed-2nd.ogv'
    pause 90
    "After the movie."
And the game window is 1024x768.
gdb backtrace when it's locked up is
#0 0x9002c0b8 in semaphore_wait_trap ()
#1 0x9000181c in pthread_mutex_lock ()
#2 0x0127e2b4 in SDL_mutexP ()
#3 0x04e3616c in PSS_playing_name ()
#4 0x04e3dd88 in initsound ()
#5 0x004b4048 in PyEval_EvalFrameEx ()
#6 0x004b443c in PyEval_EvalFrameEx ()
#7 0x004b65d0 in PyEval_EvalCodeEx ()
#8 0x004b44d8 in PyEval_EvalFrameEx ()
#9 0x004b443c in PyEval_EvalFrameEx ()
#10 0x004b65d0 in PyEval_EvalCodeEx ()
#11 0x004383b8 in PyFunction_SetClosure ()
#12 0x0040e3b4 in PyObject_Call ()
#13 0x004b4ba0 in PyEval_EvalFrameEx ()
#14 0x004b65d0 in PyEval_EvalCodeEx ()
#15 0x004b44d8 in PyEval_EvalFrameEx ()
#16 0x004b65d0 in PyEval_EvalCodeEx ()
#17 0x004b44d8 in PyEval_EvalFrameEx ()
#18 0x004b65d0 in PyEval_EvalCodeEx ()
#19 0x004b44d8 in PyEval_EvalFrameEx ()
#20 0x004b65d0 in PyEval_EvalCodeEx ()
#21 0x004383b8 in PyFunction_SetClosure ()
#22 0x0040e3b4 in PyObject_Call ()
#23 0x004b4ba0 in PyEval_EvalFrameEx ()
#24 0x004b65d0 in PyEval_EvalCodeEx ()
#25 0x004383b8 in PyFunction_SetClosure ()
#26 0x0040e3b4 in PyObject_Call ()
#27 0x004b4ba0 in PyEval_EvalFrameEx ()
#28 0x004b65d0 in PyEval_EvalCodeEx ()
#29 0x004b44d8 in PyEval_EvalFrameEx ()
#30 0x004b443c in PyEval_EvalFrameEx ()
#31 0x004b65d0 in PyEval_EvalCodeEx ()
#32 0x004b44d8 in PyEval_EvalFrameEx ()
#33 0x004b443c in PyEval_EvalFrameEx ()
#34 0x004b443c in PyEval_EvalFrameEx ()
#35 0x004b443c in PyEval_EvalFrameEx ()
#36 0x004b65d0 in PyEval_EvalCodeEx ()
#37 0x004b6770 in PyEval_EvalCode ()
#38 0x004dc43c in PyRun_FileExFlags ()
#39 0x004a8b74 in PyAST_FromNode ()
#40 0x004b42a4 in PyEval_EvalFrameEx ()
#41 0x004b443c in PyEval_EvalFrameEx ()
#42 0x004b65d0 in PyEval_EvalCodeEx ()
#43 0x004b6770 in PyEval_EvalCode ()
#44 0x004dc43c in PyRun_FileExFlags ()
#45 0x004a8b74 in PyAST_FromNode ()
#46 0x004b42a4 in PyEval_EvalFrameEx ()
#47 0x004b65d0 in PyEval_EvalCodeEx ()
#48 0x004b44d8 in PyEval_EvalFrameEx ()
#49 0x004b65d0 in PyEval_EvalCodeEx ()
#50 0x004b6770 in PyEval_EvalCode ()
#51 0x004dc43c in PyRun_FileExFlags ()
#52 0x004dc680 in PyRun_SimpleFileExFlags ()
#53 0x0000a4b8 in __darwin_gcc3_preregister_frame_info ()
#54 0x0000abc4 in main ()

fin will successfully return from semaphore_wait_trap(); fin again in pthread_mutex_lock() does not return, and a subsequent break gives a backtrace starting with semaphore_wait_trap().

Playing the same video through renpy.movie_cutscene() on the PPC is somewhat jerky in places, but works.

Tom Rothamel (renpytom) wrote :

I've bumped up some library versions in 6.11, hopefully that will fix it. If you could try the test again with a 6.11 prerelease, I'd appreciate it.

Changed in renpy:
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → renpytom (renpytom)

Checked again on 6.11.1b, the problem still shows up (though it's not actually getting in the way of anything I'm currently working on.). The backtrace from the hung system is now
(gdb) bt
#0 0x9002c0b8 in semaphore_wait_trap ()
#1 0x9000181c in pthread_mutex_lock ()
#2 0x012512b4 in SDL_mutexP ()
#3 0x04cda31c in PSS_playing_name ()
#4 0x04ce1d98 in initsound ()
#5 0x004d5884 in PyEval_EvalFrameEx ()
#6 0x004d5c4c in PyEval_EvalFrameEx ()
#7 0x004d8384 in PyEval_EvalCodeEx ()
#8 0x004d5ce8 in PyEval_EvalFrameEx ()
#9 0x004d5c4c in PyEval_EvalFrameEx ()
#10 0x004d5c4c in PyEval_EvalFrameEx ()
#11 0x004d8384 in PyEval_EvalCodeEx ()
#12 0x00446d58 in PyFunction_SetClosure ()
#13 0x0040ea78 in PyObject_Call ()
#14 0x004d67fc in PyEval_EvalFrameEx ()
#15 0x004d8384 in PyEval_EvalCodeEx ()
#16 0x004d5ce8 in PyEval_EvalFrameEx ()
#17 0x004d8384 in PyEval_EvalCodeEx ()
#18 0x004d5ce8 in PyEval_EvalFrameEx ()
#19 0x004d8384 in PyEval_EvalCodeEx ()
#20 0x004d5ce8 in PyEval_EvalFrameEx ()
#21 0x004d8384 in PyEval_EvalCodeEx ()
#22 0x00446d58 in PyFunction_SetClosure ()
#23 0x0040ea78 in PyObject_Call ()
#24 0x004d67fc in PyEval_EvalFrameEx ()
#25 0x004d8384 in PyEval_EvalCodeEx ()
#26 0x00446d58 in PyFunction_SetClosure ()
#27 0x0040ea78 in PyObject_Call ()
#28 0x004d67fc in PyEval_EvalFrameEx ()
#29 0x004d8384 in PyEval_EvalCodeEx ()
#30 0x004d5ce8 in PyEval_EvalFrameEx ()
#31 0x004d5c4c in PyEval_EvalFrameEx ()
#32 0x004d8384 in PyEval_EvalCodeEx ()
#33 0x004d5ce8 in PyEval_EvalFrameEx ()
#34 0x004d5c4c in PyEval_EvalFrameEx ()
#35 0x004d5c4c in PyEval_EvalFrameEx ()
#36 0x004d5c4c in PyEval_EvalFrameEx ()
#37 0x004d8384 in PyEval_EvalCodeEx ()
#38 0x004d84a0 in PyEval_EvalCode ()
#39 0x004ff14c in PyRun_FileExFlags ()
#40 0x004c9aa4 in PyAST_FromNode ()
#41 0x004d5ac0 in PyEval_EvalFrameEx ()
#42 0x004d5c4c in PyEval_EvalFrameEx ()
#43 0x004d8384 in PyEval_EvalCodeEx ()
#44 0x004d84a0 in PyEval_EvalCode ()
#45 0x004ff14c in PyRun_FileExFlags ()
#46 0x004c9aa4 in PyAST_FromNode ()
#47 0x004d5ac0 in PyEval_EvalFrameEx ()
#48 0x004d8384 in PyEval_EvalCodeEx ()
#49 0x004d5ce8 in PyEval_EvalFrameEx ()
#50 0x004d8384 in PyEval_EvalCodeEx ()
#51 0x004d84a0 in PyEval_EvalCode ()
#52 0x004ff14c in PyRun_FileExFlags ()
#53 0x00500010 in PyRun_SimpleFileExFlags ()
#54 0x0000a4b8 in __darwin_gcc3_preregister_frame_info ()
#55 0x0000abc4 in main ()

And the opengl.txt from the offending machine is attached.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers