Bug 279006 - multimedia/handbrake 1.7.2_1 core dump, crash, with x11/gtk-app-menu installed
Summary: multimedia/handbrake 1.7.2_1 core dump, crash, with x11/gtk-app-menu installed
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords: crash
Depends on:
Blocks:
 
Reported: 2024-05-15 12:24 UTC by Graham Perrin
Modified: 2024-05-29 06:26 UTC (History)
2 users (show)

See Also:
trueos: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Graham Perrin 2024-05-15 12:24:45 UTC
% time HandBrake
Segmentation fault (core dumped)
1.464u 0.911s 0:02.17 109.2%    49580+29654k 0+1797io 0pf+0w
% pkg iinfo handbrake ; uname -aKU
handbrake-1.7.2_1
FreeBSD mowa219-gjp4-zbook-freebsd 15.0-CURRENT FreeBSD 15.0-CURRENT main-n270157-c7f5f140bfdd GENERIC amd64 1500018 1500018
%
Comment 1 Graham Perrin 2024-05-15 12:28:53 UTC
% file /usr/local/bin/ghb
/usr/local/bin/ghb: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 15.0 (1500018), FreeBSD-style, stripped
% gdb /usr/local/bin/ghb ./ghb.core 
GNU gdb (GDB) 14.1 [GDB v14.1 for FreeBSD]
Copyright (C) 2023 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 "x86_64-portbld-freebsd15.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/ghb...
(No debugging symbols found in /usr/local/bin/ghb)
[New LWP 101209]
[New LWP 121365]
[New LWP 121366]
[New LWP 121367]
[New LWP 121368]
[New LWP 121378]
[New LWP 121390]
[New LWP 121391]
[New LWP 121392]
Core was generated by `HandBrake'.
Program terminated with signal SIGSEGV, Segmentation fault.
Address not mapped to object.
#0  0x00000008287d275a in ?? () from /usr/local/lib/libgio-2.0.so.0
[Current thread is 1 (LWP 101209)]
(gdb) bt
#0  0x00000008287d275a in ??? () at /usr/local/lib/libgio-2.0.so.0
#1  0x00000008287d1e02 in ??? () at /usr/local/lib/libgio-2.0.so.0
#2  0x00000008287f068d in g_dbus_connection_register_object () at /usr/local/lib/libgio-2.0.so.0
#3  0x00000008287d15ed in g_dbus_connection_export_menu_model () at /usr/local/lib/libgio-2.0.so.0
#4  0x000000086ac21b65 in ??? () at /usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so
#5  0x00000008279b7a63 in g_closure_invoke () at /usr/local/lib/libgobject-2.0.so.0
#6  0x00000008279d22ee in ??? () at /usr/local/lib/libgobject-2.0.so.0
#7  0x00000008279d1148 in ??? () at /usr/local/lib/libgobject-2.0.so.0
#8  0x00000008279d189c in g_signal_emit () at /usr/local/lib/libgobject-2.0.so.0
#9  0x00000008354e7faa in gtk_widget_realize () at /usr/local/lib/libgtk-3.so.0
#10 0x000000083550bb9a in ??? () at /usr/local/lib/libgtk-3.so.0
#11 0x00000008279b7a63 in g_closure_invoke () at /usr/local/lib/libgobject-2.0.so.0
#12 0x00000008279d22ee in ??? () at /usr/local/lib/libgobject-2.0.so.0
#13 0x00000008279d1148 in ??? () at /usr/local/lib/libgobject-2.0.so.0
#14 0x00000008279d189c in g_signal_emit () at /usr/local/lib/libgobject-2.0.so.0
#15 0x00000008354e7704 in gtk_widget_show () at /usr/local/lib/libgtk-3.so.0
#16 0x0000000000a51785 in ghb_activate_cb ()
#17 0x00000008279b7a63 in g_closure_invoke () at /usr/local/lib/libgobject-2.0.so.0
#18 0x00000008279d24ec in ??? () at /usr/local/lib/libgobject-2.0.so.0
#19 0x00000008279d1148 in ??? () at /usr/local/lib/libgobject-2.0.so.0
#20 0x00000008279d189c in g_signal_emit () at /usr/local/lib/libgobject-2.0.so.0
#21 0x00000008287c4bf1 in ??? () at /usr/local/lib/libgio-2.0.so.0
#22 0x00000008287c2b77 in g_application_run () at /usr/local/lib/libgio-2.0.so.0
#23 0x0000000000a51b1c in main ()
(gdb) q
% pkg provides /usr/local/lib/libgio-2.0.so.0
Name    : glib-2.80.2,2
Comment : Some useful routines of C programming (current stable version)
Repo    : FreeBSD-ports
Filename: usr/local/lib/libgio-2.0.so.0.8000.0
          usr/local/lib/libgio-2.0.so.0
Name    : glib-2.80.0,2
Comment : Some useful routines of C programming (current stable version)
Repo    : poudriere
Filename: usr/local/lib/libgio-2.0.so.0.8000.0
          usr/local/lib/libgio-2.0.so.0
% pkg info glib
glib-2.80.2,2
Name           : glib
Version        : 2.80.2,2
Installed on   : Tue May 14 17:48:51 2024 BST
Origin         : devel/glib20
Architecture   : FreeBSD:15:amd64
Prefix         : /usr/local
Categories     : devel
Licenses       : LGPL20
Maintainer     : desktop@FreeBSD.org
WWW            : https://www.gtk.org/
Comment        : Some useful routines of C programming (current stable version)
Options        :
        DEBUG          : off
        FAM_ALTBACKEND : off
        GTKDOC         : off
        MANPAGES       : on
        NLS            : on
        TEST           : off
Shared Libs required:
        libpcre2-8.so.0
        libintl.so.8
        libiconv.so.2
        libffi.so.8
Shared Libs provided:
        libgthread-2.0.so.0
        libgobject-2.0.so.0
        libgmodule-2.0.so.0
        libglib-2.0.so.0
        libgirepository-2.0.so.0
        libgio-2.0.so.0
Annotations    :
        FreeBSD_version: 1500018
        build_timestamp: 2024-05-11T01:36:14+0000
        built_by       : poudriere-git-3.4.1-30-g79e3edcd
        cpe            : cpe:2.3:a:gnome:glib:2.80.2:::::freebsd15:x64
        port_checkout_unclean: no
        port_git_hash  : f305c835e1b
        ports_top_checkout_unclean: no
        ports_top_git_hash: fbd796535d8
        repo_type      : binary
        repository     : FreeBSD-ports
Flat size      : 25.6MiB
Description    :
GLib provides a simple, abstract, and highly portable set of C support
routines such as lists, trees, hashes, memory allocation, and much, much
more.  It is a foundation for writing portable applications.
%
Comment 2 Yuichiro NAITO 2024-05-17 01:05:10 UTC
I can't reproduce this issue. My handbrake 1.7.2 starts normally.
My software versions are listed below.

% uname -aKU
FreeBSD vega.yuisoft.com 15.0-CURRENT FreeBSD 15.0-CURRENT #11 n270157-c7f5f140bfdd: Fri May 17 09:15:26 JST 2024     yuichiro@vega.yuisoft.com:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG amd64 1500018 1500018
% pkg info handbrake
handbrake-1.7.2_1
Name           : handbrake
Version        : 1.7.2_1
Installed on   : Thu May 16 10:02:07 2024 JST
Origin         : multimedia/handbrake
Architecture   : FreeBSD:15:amd64
Prefix         : /usr/local
Categories     : multimedia
Licenses       : GPLv2
Maintainer     : naito.yuichiro@gmail.com
WWW            : https://handbrake.fr/
Comment        : Versatile DVD ripper and video transcoder
Options        :
	FDK_AAC        : off
	VPL            : on
	X11            : on
Shared Libs required:
	libxml2.so.2
	libx264.so.164
	libvpx.so.9
	libvpl.so.2
	libvorbisenc.so.2
	libvorbis.so.0
	libva.so.2
	libva-drm.so.2
	libturbojpeg.so.0
	libtheoraenc.so.1
	libtheoradec.so.1
	libspeex.so.1
	libpango-1.0.so.0
	libopus.so.0
	libogg.so.0
	libmp3lame.so.0
	libjansson.so.4
	libintl.so.8
	libharfbuzz.so.0
	libgtk-3.so.0
	libgstvideo-1.0.so.0
	libgstreamer-1.0.so.0
	libgstpbutils-1.0.so.0
	libgobject-2.0.so.0
	libgmodule-2.0.so.0
	libglib-2.0.so.0
	libgio-2.0.so.0
	libgdk_pixbuf-2.0.so.0
	libgdk-3.so.0
	libfribidi.so.0
	libfreetype.so.6
	libfontconfig.so.1
	libcairo.so.2
	libass.so.9
Annotations    :
	FreeBSD_version: 1500018
	build_timestamp: 2024-05-13T01:07:53+0000
	built_by       : poudriere-git-3.4.1-30-g79e3edcd
	port_checkout_unclean: no
	port_git_hash  : 589aaaeb09b
	ports_top_checkout_unclean: no
	ports_top_git_hash: fbd796535d8
	repo_type      : binary
	repository     : FreeBSD
Flat size      : 93.1MiB
Description    :
HandBrake is an open-source, GPL-licensed, multiplatform, multithreaded video
transcoder with rich selection of features.  Both GUI and command-line only
versions are available.

Supported sources:

  * Most common multimedia files that libavformat and libavcodec support
  * Any DVD or Bluray-like source which is NOT copy-protected (removal of
    copy protection is not supported)

Outputs:

  * File (container) format: MP4 (M4V) and MKV
  * Video: H.264 (x264), H.265 (x265), MPEG-2/MPEG-4 (ffmpeg),
           VP8, VP9 (libvpx) or Theora (libtheora)
  * Audio: AAC, CoreAudio AAC/HE-AAC (OS X only), MP3, FLAC, AC3, or Vorbis;
    AC-3, DTS, DTS-HD, AAC, and MP3 pass-through

HandBrake also includes support for chapters, subtitles, advanced video
filters, and more.  It is also useful for making videos compatible with
portable video devices such as the Apple iPod/iPhone.
% pkg info glib
glib-2.80.2,2
Name           : glib
Version        : 2.80.2,2
Installed on   : Thu May 16 10:04:11 2024 JST
Origin         : devel/glib20
Architecture   : FreeBSD:15:amd64
Prefix         : /usr/local
Categories     : devel
Licenses       : LGPL20
Maintainer     : desktop@FreeBSD.org
WWW            : https://www.gtk.org/
Comment        : Some useful routines of C programming (current stable version)
Options        :
	DEBUG          : off
	FAM_ALTBACKEND : off
	GTKDOC         : off
	MANPAGES       : on
	NLS            : on
	TEST           : off
Shared Libs required:
	libpcre2-8.so.0
	libintl.so.8
	libiconv.so.2
	libffi.so.8
Shared Libs provided:
	libgthread-2.0.so.0
	libgobject-2.0.so.0
	libgmodule-2.0.so.0
	libglib-2.0.so.0
	libgirepository-2.0.so.0
	libgio-2.0.so.0
Annotations    :
	FreeBSD_version: 1500018
	build_timestamp: 2024-05-11T01:36:14+0000
	built_by       : poudriere-git-3.4.1-30-g79e3edcd
	cpe            : cpe:2.3:a:gnome:glib:2.80.2:::::freebsd15:x64
	port_checkout_unclean: no
	port_git_hash  : f305c835e1b
	ports_top_checkout_unclean: no
	ports_top_git_hash: fbd796535d8
	repo_type      : binary
	repository     : FreeBSD
Flat size      : 25.6MiB
Description    :
GLib provides a simple, abstract, and highly portable set of C support
routines such as lists, trees, hashes, memory allocation, and much, much
more.  It is a foundation for writing portable applications.
% pkg info gtk3
gtk3-3.24.41
Name           : gtk3
Version        : 3.24.41
Installed on   : Thu Feb  8 15:29:15 2024 JST
Origin         : x11-toolkits/gtk30
Architecture   : FreeBSD:15:amd64
Prefix         : /usr/local
Categories     : x11-toolkits
Licenses       : LGPL20
Maintainer     : desktop@FreeBSD.org
WWW            : https://www.gtk.org/
Comment        : Gimp Toolkit for X11 GUI (current stable version)
Options        :
	ATK_BRIDGE     : on
	BROADWAY       : on
	COLORD         : on
	CUPS           : on
	DEBUG          : off
	DOCS           : on
	WAYLAND        : on
	X11            : on
Shared Libs required:
	libxkbcommon.so.0
	libwayland-egl.so.1
	libwayland-cursor.so.0
	libwayland-client.so.0
	libpangoft2-1.0.so.0
	libpangocairo-1.0.so.0
	libpango-1.0.so.0
	libintl.so.8
	libharfbuzz.so.0
	libgobject-2.0.so.0
	libgmodule-2.0.so.0
	libglib-2.0.so.0
	libgio-2.0.so.0
	libgdk_pixbuf-2.0.so.0
	libfribidi.so.0
	libfontconfig.so.1
	libepoxy.so.0
	libcups.so.2
	libcolord.so.2
	libcairo.so.2
	libcairo-gobject.so.2
	libatk-bridge-2.0.so.0
	libatk-1.0.so.0
	libXrandr.so.2
	libXinerama.so.1
	libXi.so.6
	libXfixes.so.3
	libXext.so.6
	libXdamage.so.1
	libXcursor.so.1
	libXcomposite.so.1
	libX11.so.6
Shared Libs provided:
	libgtk-3.so.0
	libgdk-3.so.0
	libgailutil-3.so.0
Annotations    :
	FreeBSD_version: 1500012
	build_timestamp: 2024-01-30T05:40:34+0000
	built_by       : poudriere-git-3.4.1
	cpe            : cpe:2.3:a:gnome:gtk:3.24.41:::::freebsd15:x64
	port_checkout_unclean: no
	port_git_hash  : fcb16740e03
	ports_top_checkout_unclean: no
	ports_top_git_hash: a45a9e175af
	repo_type      : binary
	repository     : FreeBSD
Flat size      : 78.8MiB
Description    :
The GIMP ToolKit (GTK+) is a collection of GUI widgets.  GTK+
essentially provides the building blocks from which GUIs can be
built.  It is highly themable, and its functionality is highly
extensible.

GTK+-3 is a very stable release, similar only in design to GTK+-2.
GTK+-3 can coexist happily alongside GTK+-2, but applications are
written for one version or the other.
% pkg info gobject-introspection
gobject-introspection-1.78.1_2,1
Name           : gobject-introspection
Version        : 1.78.1_2,1
Installed on   : Tue Jan 16 18:12:37 2024 JST
Origin         : devel/gobject-introspection
Architecture   : FreeBSD:15:amd64
Prefix         : /usr/local
Categories     : devel
Licenses       : LGPL20+ and GPLv2+
Maintainer     : desktop@FreeBSD.org
WWW            : https://gi.readthedocs.io/en/latest/
Comment        : Generate interface introspection data for GObject libraries
Options        :
	TEST           : off
Shared Libs required:
	libgobject-2.0.so.0
	libgmodule-2.0.so.0
	libglib-2.0.so.0
	libgio-2.0.so.0
	libffi.so.8
Shared Libs provided:
	libgirepository-1.0.so.1
Annotations    :
	FreeBSD_version: 1500008
	build_timestamp: 2024-01-13T01:26:53+0000
	built_by       : poudriere-git-3.4.0
	port_checkout_unclean: no
	port_git_hash  : 9f8f710b3ec
	ports_top_checkout_unclean: no
	ports_top_git_hash: 812492188ac
	repo_type      : binary
	repository     : FreeBSD
Flat size      : 14.0MiB
Description    :
GObject Introspection is a project for providing machine readable introspection
data of the API of C libraries. This introspection data can be used in several
different use cases, for example automatic code generation for bindings, API
verification and documentation generation.

GObject Introspection contains tools to generate and handle the introspection
data.
Comment 3 Graham Perrin 2024-05-18 03:11:31 UTC
Status: Open

(In reply to Yuichiro NAITO from comment #2)

Thanks. The same versions here, still crashing with a slightly updated OS. 

Do you have any port built with a non-standard option?

Will it help if I build something with DEBUG on?

----

% pkg iinfo ^handbrake$ ^glib$ ^gtk3$ ^gobject-introspection$
handbrake-1.7.2_1
glib-2.80.2,2
gtk3-3.24.41
gobject-introspection-1.78.1_2,1
% uname -aKU
FreeBSD mowa219-gjp4-zbook-freebsd 15.0-CURRENT FreeBSD 15.0-CURRENT main-n270192-a7b222db122e GENERIC-NODEBUG amd64 1500018 1500018
% HandBrake
Segmentation fault (core dumped)
%
Comment 4 Yuichiro NAITO 2024-05-20 02:39:07 UTC
> Do you have any port built with a non-standard option?

No, I don't set port build options.
I ran the following script on my PC. It shows the packages from Ports.

```
#!/bin/sh

for name in $(pkg query %n-%v); do
   if [ -z "$(pkg info -A $name | grep repo_type)" ]; then
      echo $name
   fi
done
```

% ./list_ports_packages 
bsddialog-1.0.1
drm-61-kmod-6.1.69_2
dtc-1.6.0
grub2-bhyve-0.40_11

I have patched grub2-bhyve but it has no relation to HandBrake.

Which desktop environment are you running?
I'm running Xfce.

Which locale do you set on your desktop environment?
I don't test all of the message catalogs.
Does setting `LANG=en_US.UTF-8` help you?
Comment 5 Jan Beich freebsd_committer freebsd_triage 2024-05-20 17:12:12 UTC
(In reply to Graham Perrin from comment #1)
> #4  0x000000086ac21b65 in ??? () at /usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so

Try removing x11/gtk-app-menu. Maybe it fails to find AppMenu implementation in your DE of choice.

gtk-app-menu can be pulled by xfce4-appmenu-plugin or mate-applet-appmenu but neither xfce nor mate meta-packages pull those, suggesting users have to install appmenu plugin/applet manually.
Comment 6 Graham Perrin 2024-05-24 20:14:16 UTC
(In reply to Jan Beich from comment #5)

> Try removing x11/gtk-app-menu. …

Success. Thanks. 

So, is this (279006) not a bug?


root@mowa219-gjp4-zbook-freebsd:~ # pkg delete x11/gtk-app-menu
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        appmenu-gtk-module: 0.7.6_4

Number of packages to be removed: 1

Proceed with deinstalling packages? [y/N]: y
[1/1] Deinstalling appmenu-gtk-module-0.7.6_4...
[1/1] Deleting files for appmenu-gtk-module-0.7.6_4: 100%
==> Running trigger: glib-schemas.ucl
Compiling glib schemas
root@mowa219-gjp4-zbook-freebsd:~ # exit
logout
% HandBrake
Gtk-Message: 21:08:32.252: Failed to load module "appmenu-gtk-module"
%
Comment 7 Trenton Schulz 2024-05-27 18:28:51 UTC
(In reply to Graham Perrin from comment #6)

Maintainer for appmenu-gtk-module.

I can reproduce this crash here with the latest quarterly. However, appmenu-gtk-module hasn't had any meaningful changes for years, and I was using Handbrake back in April with this setup just fine.

So, I suspect it might be an upstream bug in HandBrake.

The strange thing is that, even with appmenu-gtk-module removed, HandBrake still shows its menu in a unified menubar. This seems to indicate something has changed in Handbrake. Maybe it is using a new way of menu handling? But there still some call that triggers the module.

Regardless, this shouldn't be anything FreeBSD-specific.
Comment 8 Trenton Schulz 2024-05-27 18:30:46 UTC
(In reply to Trenton Schulz from comment #7)

... or something has changed recently in Plasma, which is what I'm using.
Comment 9 Yuichiro NAITO 2024-05-28 03:14:02 UTC
Thanks for clarifying the issue.

I could reproduce HandBrake crash with xfce4-appmenu-plugin and appmenu-gtk-module packages installed.
And configured as follows according to the pkg-messages.

```
# xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar -n -t bool -s true
# xfconf-query -c xsettings -p /Gtk/ShellShowsAppmenu -n -t bool -s true
# xfconf-query -c xsettings -p /Gtk/Modules -n -t string -s "appmenu-gtk-module"
```

Would upgrading Handbrake to 1.8.0 help you?
I proposed a patch in #277355.
I see HandBrake 1.8.0 runs with xfce4-appmenu-plugin and works with the unified menu.
Comment 10 Trenton Schulz 2024-05-29 06:26:09 UTC
(In reply to Yuichiro NAITO from comment #9)

Good to know. I won't have a chance to check out the Handbrake 1.8.0 patch until next weekend. I see that gtk-app-menu has had a couple of updates, but they are mostly meson related. 

Still, maybe that makes a difference. I can see about rolling an update to that port too.