bugGnash - The GNU Flash player - Bugs: bug #46308, `gtk-gnash --once` freezes when...

 
 

bug #46308: `gtk-gnash --once` freezes when used on single-frame SWF

Submitter:  Nutchanon Wetchasit <nachanon>
Submitted:  Wed 28 Oct 2015 11:47:53 AM UTC
   
 
Category:  gui Severity:  3 - Normal
Release:  master Status:  Fixed
Privacy:  Public Assigned to:  strk
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Fri 22 Jan 2016 07:55:20 AM UTC, comment #8: 

For the framebuffer UI issue mentioned in comment 7, it is now separately reported as bug #46949.

Nutchanon Wetchasit <nachanon>
Mon 18 Jan 2016 09:11:29 AM UTC, comment #7: 

Current git version of Gnash is now playing and terminating properly with single-frame test SWF in oneshot mode. (Checked with GTK, Qt4, SDL, and Dump UI)

So, this bug could now be marked as fixed.

GTK GUI:

$ gtk-gnash -v --once singleframe.swf
29940:1] 104 SECURITY: Checking security of URL 'file:///mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf'
29940:1] 104 SECURITY: Load of file /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf granted (under local sandbox /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/)
29940:1] 120 SECURITY: Extensions disabled
$ echo $?
0
$


Qt4 GUI:

$ qt4-gnash -v --once singleframe.swf
29944:1] 678 SECURITY: Checking security of URL 'file:///mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf'
29944:1] 678 SECURITY: Load of file /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf granted (under local sandbox /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/)
29944:1] 880 ERROR: Can't update stage matrix till VM is initialized
29944:1] 882 SECURITY: Extensions disabled
$ echo $?
0
$


SDL GUI:

$ sdl-gnash -v --once singleframe.swf
29952:1] 65 SECURITY: Checking security of URL 'file:///mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf'
29952:1] 65 SECURITY: Load of file /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf granted (under local sandbox /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/)
29952:1] 77 SECURITY: Extensions disabled
$ echo $?
0
$


Dump GUI:

$ dump-gnash -v --once singleframe.swf
No video dump requested.
29961:1] 2 SECURITY: Checking security of URL 'file:///mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf'
29961:1] 2 SECURITY: Load of file /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/singleframe.swf granted (under local sandbox /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframeonce/)
WIDTH=320
HEIGHT=240
29961:1] 3 SECURITY: Extensions disabled
INTERVAL=10
TIME=10
FPS_ACTUAL=100
FRAMECOUNT=0
$ echo $?
0
$


Note: Gnash's framebuffer UI is not tested as there is an unrelated issue which caused it to leave the console screen unusable after it exited.

Gnash: 0.8.11 (git 62cfdfe 16-Jan-2016)
System: Debian GNU/Linux 7.0 Wheezy i386

Nutchanon Wetchasit <nachanon>
Sat 16 Jan 2016 11:13:01 AM UTC, comment #6: 

Fixed by patch #8858. I tested with gtk,qt4 and sdl guis.

Sandro Santilli <strk>
Group Member
Fri 15 Jan 2016 10:03:38 AM UTC, comment #5: 

After applied the first patch of patch #8858, you'd see that running
`gtk-gnash --once singleframe.swf` now terminates gracefully by itself:


$ gtk-gnash -vv --once singleframe.swf
18204:1] 73 DEBUG: gnash::GtkAggGlue::GtkAggGlue() enter
18204:1] 73 DEBUG: gnash::GtkAggGlue::GtkAggGlue() returning
18204:1] 73 DEBUG: virtual bool gnash::GtkAggGlue::init(int, char***) enter
18204:1] 74 DEBUG: virtual bool gnash::GtkAggGlue::init(int, char***) returning
18204:1] 98 DEBUG: gnash_canvas_size_allocate 257 1
18204:1] 98 DEBUG: virtual void gnash::GtkAggGlue::prepDrawingArea(GtkWidget*) enter
18204:1] 98 DEBUG: virtual void gnash::GtkAggGlue::prepDrawingArea(GtkWidget*) returning
18204:1] 98 DEBUG: virtual gnash::Renderer* gnash::GtkAggGlue::createRenderHandler() enter
18204:1] 99 DEBUG: Framebuffer pixel format is BGRA32 (little-endian host)
18204:1] 99 DEBUG: virtual gnash::Renderer* gnash::GtkAggGlue::createRenderHandler() returning
18204:1] 99 DEBUG: virtual void gnash::GtkAggGlue::setRenderHandlerSize(int, int) enter
18204:1] 99 DEBUG: virtual void gnash::GtkAggGlue::setRenderHandlerSize(int, int) returning
18204:1] 99 DEBUG: /home/window/Desktop/singleframe/ appended to local sandboxes
18204:1] 99 DEBUG: /home/window/Desktop/singleframe/singleframe.swf appended to local sandboxes
18204:1] 99 SECURITY: Checking security of URL 'file:///home/window/Desktop/singleframe/singleframe.swf'
18204:1] 99 SECURITY: Load of file /home/window/Desktop/singleframe/singleframe.swf granted (under local sandbox /home/window/Desktop/singleframe/)
18204:1] 99 DEBUG: Movie file:///home/window/Desktop/singleframe/singleframe.swf (SWF7) added to library
18204:1] 120 SECURITY: Extensions disabled
18204:1] 120 DEBUG: Advance interval timer set to 10 ms (~ 100 FPS)
18204:1] 120 DEBUG: Loading native class MovieClip
18204:1] 120 DEBUG: void gnash::Gui::resize_view(int, int) enter
18204:1] 120 DEBUG: void gnash::Gui::resize_view(int, int) returning
18204:1] 123 DEBUG: Main loop ended, cleaning up
18204:1] 123 DEBUG: ~Player - _movieDef refcount: 2 (1 will be dropped now)
18204:1] 123 DEBUG: ~Gui - _movieDef refcount: 1
$ echo $?
0
$


Gnash: 0.8.11dev (patched against git e8b111c 13-Jan-2016)
System: Debian GNU/Linux 7.0 Wheezy i386

Nutchanon Wetchasit <nachanon>
Thu 14 Jan 2016 04:37:00 PM UTC, comment #4: 

See patch #8858, which also fix this issue.

Nutchanon Wetchasit <nachanon>
Thu 14 Jan 2016 02:54:21 PM UTC, comment #3: 

With diagnostic patch from bug #27981 (`show-gtk-main-loop-level.patch`
file #36027), debug output shows that the freeze of this bug is also caused
by gtk-gnash trying to exit main GTK loop before `gtk_main()` was run;
the same root cause as bug #27981 minus window-related assertion warnings.

`gtk-gnash -vv --once singleframe.swf`:

69 DEBUG: gnash::GtkAggGlue::GtkAggGlue() enter
69 DEBUG: gnash::GtkAggGlue::GtkAggGlue() returning
69 DEBUG: virtual bool gnash::GtkAggGlue::init(int, char***) enter
69 DEBUG: virtual bool gnash::GtkAggGlue::init(int, char***) returning
101 DEBUG: gnash_canvas_size_allocate 261 1
101 DEBUG: virtual void gnash::GtkAggGlue::prepDrawingArea(GtkWidget*) enter
101 DEBUG: virtual void gnash::GtkAggGlue::prepDrawingArea(GtkWidget*) returning
101 DEBUG: virtual gnash::Renderer* gnash::GtkAggGlue::createRenderHandler() enter
102 DEBUG: Framebuffer pixel format is BGRA32 (little-endian host)
102 DEBUG: virtual gnash::Renderer* gnash::GtkAggGlue::createRenderHandler() returning
102 DEBUG: virtual void gnash::GtkAggGlue::setRenderHandlerSize(int, int) enter
102 DEBUG: virtual void gnash::GtkAggGlue::setRenderHandlerSize(int, int) returning
102 DEBUG: /home/window/Desktop/singleframe/ appended to local sandboxes
102 DEBUG: /home/window/Desktop/singleframe/singleframe.swf appended to local sandboxes
103 SECURITY: Checking security of URL 'file:///home/window/Desktop/singleframe/singleframe.swf'
103 SECURITY: Load of file /home/window/Desktop/singleframe/singleframe.swf granted (under local sandbox /home/window/Desktop/singleframe/)
103 DEBUG: Movie file:///home/window/Desktop/singleframe/singleframe.swf (SWF7) added to library
112 SECURITY: Extensions disabled
112 DEBUG: Advance interval timer set to 10 ms (~ 100 FPS)
112 DEBUG: Loading native class MovieClip
112 DEBUG: void gnash::Gui::resize_view(int, int) enter
112 DEBUG: void gnash::Gui::resize_view(int, int) returning
115 DEBUG: GtkGui: terminating GTK main loop level 0

(gtk-gnash:26451): Gtk-CRITICAL **: IA__gtk_main_quit: assertion `main_loops != NULL' failed
115 DEBUG: GtkGui: starting GTK main loop


Thus, when the real `gtk_main()` is run, nothing stops it.

Gnash: 0.8.11dev (patched against git e8b111c 13-Jan-2016)
System: Debian GNU/Linux 7.0 Wheezy i386

Nutchanon Wetchasit <nachanon>
Sun 13 Dec 2015 12:28:53 PM UTC, comment #2: 

See also bug #27981 (First-frame `fscommand("quit")` failure) which involves exiting on first frame in different way.

Nutchanon Wetchasit <nachanon>
Wed 28 Oct 2015 12:16:04 PM UTC, comment #1: 

The previously-attached `singleframe.zip` mistakenly omitted binary SWF files,
sorry. SWF files are now included in the new `singleframe-swf.zip`.

(file #35320)

Nutchanon Wetchasit <nachanon>
Wed 28 Oct 2015 11:47:53 AM UTC, original submission:  

I have created a simple one-frame Flash 7 file using SWFmill, and run it
on Gnash using oneshot mode:

gtk-gnash -vv --once singleframe.swf


Gnash supposed to render this one-frame SWF and exit. Window was briefly
displayed and quickly vanished as expected, but instead of exiting gracefully,
Gnash froze, and command-line interrupt (Ctrl+C or Ctrl+\) was needed to exit.

Following is a console output:

85 DEBUG: gnash::GtkAggGlue::GtkAggGlue() enter
85 DEBUG: gnash::GtkAggGlue::GtkAggGlue() returning
85 DEBUG: virtual bool gnash::GtkAggGlue::init(int, char***) enter
85 DEBUG: virtual bool gnash::GtkAggGlue::init(int, char***) returning
116 DEBUG: gnash_canvas_size_allocate 261 1
116 DEBUG: virtual void gnash::GtkAggGlue::prepDrawingArea(GtkWidget*) enter
116 DEBUG: virtual void gnash::GtkAggGlue::prepDrawingArea(GtkWidget*) returning
116 DEBUG: virtual gnash::Renderer* gnash::GtkAggGlue::createRenderHandler() enter
117 DEBUG: Framebuffer pixel format is BGRA32 (little-endian host)
117 DEBUG: virtual gnash::Renderer* gnash::GtkAggGlue::createRenderHandler() returning
117 DEBUG: virtual void gnash::GtkAggGlue::setRenderHandlerSize(int, int) enter
117 DEBUG: virtual void gnash::GtkAggGlue::setRenderHandlerSize(int, int) returning
117 DEBUG: /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/ appended to local sandboxes
117 DEBUG: /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframe.swf appended to local sandboxes
117 SECURITY: Checking security of URL 'file:///mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframe.swf'
117 SECURITY: Load of file /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframe.swf granted (under local sandbox /mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/)
117 DEBUG: Movie file:///mnt/flash/temp_file/gnash-debug.tmp/singleframeonce/singleframe.swf (SWF7) added to library
130 SECURITY: Extensions disabled
130 DEBUG: Advance interval timer set to 10 ms (~ 100 FPS)
130 DEBUG: Loading native class MovieClip
130 DEBUG: void gnash::Gui::resize_view(int, int) enter
130 DEBUG: void gnash::Gui::resize_view(int, int) returning

(gtk-gnash:20836): Gtk-CRITICAL **: IA__gtk_main_quit: assertion `main_loops != NULL' failed


Test SWF, source code, build script, Gnash log (verbosity 2) and GDB backtrace
(collected from SIGQUIT core dump) are attached.

Note #1: `qt4-gnash`, and `dump-gnash` don't seem to be affected by this issue.
Note #2: `gtk-gnash -vv --once` seems to work well with two-frame SWF.

Gnash: 0.8.11dev (git f0f66ce 23-Sep-2015)
System: Debian GNU/Linux 7.0 Wheezy i386

Nutchanon Wetchasit <nachanon>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #35320:  singleframe-swf.zip added by nachanon (11KiB - application/x-zip - Test SWF files, build script, log, and backtrace)
file #35319:  singleframe.zip added by nachanon (10KiB - application/x-zip - Test Flash file, build script, log, and backtrace)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by strk (Posted a comment)
  • -email is unavailable- added by nachanon (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-01-18 strk StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2016-01-16 strk StatusNone Ready For Test
        Assigned toNone strk
    2015-10-28 nachanon Attached File- Added singleframe-swf.zip, #35320
    2015-10-28 nachanon Attached File- Added singleframe.zip, #35319

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code