Subject: bug#24041: 25.1.50; xwidget + -nw mode gives segfault

From: Shane Hansen <[email-masked]>
Date: Wed, 20 Jul 2016 10:04:27 -0600

Segfault when attempting to open xwidget from terminal emacs (-nw). I
expect this not to work, but I also don't expect a segfault.

Steps to reproduce:

1. Build emacs
2. run emacs via emacs -nw
3. Type M-x xwidget-webkit-browse-url
4. http://www.google.com

Expected behaviour:
error message due to lack of x windowing system

Actual behaviour:
segfault

begin bt:
#0 0x00007ffff6df3349 in gtk_style_context_get_background_color ()
from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#1 0x00007ffff6e27746 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#2 0x00007ffff6e2bc00 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#3 0x00007ffff6e2bdc8 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#4 0x00007ffff6e352f3 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#5 0x00007ffff5bf2789 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff5bf410d in g_object_newv () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff5bf48bc in g_object_new () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007ffff22a3aa1 in ?? () from
/usr/lib/x86_64-linux-gnu/libwebkitgtk-3.0.so.0
#9 0x00007ffff218e272 in ?? () from
/usr/lib/x86_64-linux-gnu/libwebkitgtk-3.0.so.0
#10 0x00007ffff21bb073 in ?? () from
/usr/lib/x86_64-linux-gnu/libwebkitgtk-3.0.so.0
#11 0x00007ffff5c0de3b in g_type_create_instance () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff5bf2355 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff5bf410d in g_object_newv () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff5bf48bc in g_object_new () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff21b72c2 in webkit_web_view_new () from
/usr/lib/x86_64-linux-gnu/libwebkitgtk-3.0.so.0
#16 0x0000000000678951 in Fmake_xwidget (type=50400, title=34209780,
width=4002, height=4002, arguments=0, buffer=0) at xwidget.c:139
#17 0x00000000005ffe63 in Ffuncall (nargs=6, args=0x7fffffffacc8) at eval.c:2722
#18 0x000000000064542e in exec_byte_code (bytestr=37473540,
vector=38110277, maxdepth=58, args_template=6166, nargs=5,
args=0x7fffffffb280) at bytecode.c:802
#19 0x00000000006005af in funcall_lambda (fun=38110325, nargs=5,
arg_vector=0x7fffffffb258) at eval.c:2863
#20 0x00000000005fff9f in Ffuncall (nargs=6, args=0x7fffffffb250) at eval.c:2750
#21 0x000000000064542e in exec_byte_code (bytestr=34209940,
vector=38102717, maxdepth=38, args_template=1030, nargs=1,
args=0x7fffffffb7c0) at bytecode.c:802
#22 0x00000000006005af in funcall_lambda (fun=38102861, nargs=1,
arg_vector=0x7fffffffb7b8) at eval.c:2863
#23 0x00000000005fff9f in Ffuncall (nargs=2, args=0x7fffffffb7b0) at eval.c:2750
#24 0x000000000064542e in exec_byte_code (bytestr=34195700,
vector=38102909, maxdepth=18, args_template=1030, nargs=1,
args=0x7fffffffbd18) at bytecode.c:802
#25 0x00000000006005af in funcall_lambda (fun=38102941, nargs=1,
arg_vector=0x7fffffffbd10) at eval.c:2863
#26 0x00000000005fff9f in Ffuncall (nargs=2, args=0x7fffffffbd08) at eval.c:2750
#27 0x000000000064542e in exec_byte_code (bytestr=35946404,
vector=38099989, maxdepth=18, args_template=2054, nargs=2,
args=0x7fffffffc350) at bytecode.c:802
#28 0x00000000006005af in funcall_lambda (fun=38100085, nargs=2,
arg_vector=0x7fffffffc340) at eval.c:2863
#29 0x00000000005fff9f in Ffuncall (nargs=3, args=0x7fffffffc338) at eval.c:2750
#30 0x00000000005f7c58 in Ffuncall_interactively (nargs=3,
args=0x7fffffffc338) at callint.c:252
#31 0x00000000005ffbdc in Ffuncall (nargs=4, args=0x7fffffffc330) at eval.c:2681
#32 0x00000000005ff142 in Fapply (nargs=3, args=0x7fffffffc560) at eval.c:2329
#33 0x00000000005f80d3 in Fcall_interactively (function=4303704,
record_flag=4857400, keys=13531957) at callint.c:389
#34 0x00000000005ffd67 in Ffuncall (nargs=4, args=0x7fffffffc6b8) at eval.c:2708
#35 0x000000000064542e in exec_byte_code (bytestr=10581756,
vector=10581789, maxdepth=54, args_template=4102, nargs=2,
args=0x7fffffffcc58) at bytecode.c:802
#36 0x00000000006005af in funcall_lambda (fun=10581709, nargs=2,
arg_vector=0x7fffffffcc48) at eval.c:2863
#37 0x00000000005fff9f in Ffuncall (nargs=3, args=0x7fffffffcc40) at eval.c:2750
#38 0x000000000064542e in exec_byte_code (bytestr=10580948,
vector=10580981, maxdepth=62, args_template=3078, nargs=3,
args=0x7fffffffd2c8) at bytecode.c:802
#39 0x00000000006005af in funcall_lambda (fun=10580893, nargs=3,
arg_vector=0x7fffffffd2b0) at eval.c:2863
#40 0x00000000005fff9f in Ffuncall (nargs=4, args=0x7fffffffd2a8) at eval.c:2750
#41 0x00000000005f7c58 in Ffuncall_interactively (nargs=4,
args=0x7fffffffd2a8) at callint.c:252
#42 0x00000000005ffbdc in Ffuncall (nargs=5, args=0x7fffffffd2a0) at eval.c:2681
#43 0x00000000005ff142 in Fapply (nargs=3, args=0x7fffffffd4e0) at eval.c:2329
#44 0x00000000005f80d3 in Fcall_interactively (function=590280,
record_flag=0, keys=13531957) at callint.c:389
#45 0x00000000005ffd67 in Ffuncall (nargs=4, args=0x7fffffffd638) at eval.c:2708
#46 0x000000000064542e in exec_byte_code (bytestr=10581756,
vector=10581789, maxdepth=54, args_template=4102, nargs=1,
args=0x7fffffffdbb0) at bytecode.c:802
#47 0x00000000006005af in funcall_lambda (fun=10581709, nargs=1,
arg_vector=0x7fffffffdba8) at eval.c:2863
#48 0x00000000005fff9f in Ffuncall (nargs=2, args=0x7fffffffdba0) at eval.c:2750
#49 0x00000000005ff6e0 in call1 (fn=15168, arg1=590280) at eval.c:2560
#50 0x000000000055f10c in command_loop_1 () at keyboard.c:1484
#51 0x00000000005fc874 in internal_condition_case (bfun=0x55e91d
<command_loop_1>, handlers=19488, hfun=0x55e0e1 <cmd_error>) at
eval.c:1310
#52 0x000000000055e625 in command_loop_2 (ignore=0) at keyboard.c:1112
#53 0x00000000005fc1bb in internal_catch (tag=46368, func=0x55e5fc
<command_loop_2>, arg=0) at eval.c:1075
#54 0x000000000055e5c5 in command_loop () at keyboard.c:1091
#55 0x000000000055dcb6 in recursive_edit_1 () at keyboard.c:697
#56 0x000000000055de43 in Frecursive_edit () at keyboard.c:768
#57 0x000000000055bba7 in main (argc=2, argv=0x7fffffffe058) at emacs.c:1658

end bt

In GNU Emacs 25.1.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
of 2016-07-20 built on saidin
Repository revision: 30b3a842ec87d27cfe003b6d4323689d48b3fcd2
Windowing system distributor 'The X.Org Foundation', version 11.0.11501000
System Description: Linux Mint 17.2 Rafaela

Configured using:
'configure --with-xwidgets --with-x-toolkit=gtk3 'CFLAGS= -g''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XWIDGETS

Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
shell-dirtrack-mode: t
global-auto-complete-mode: t
show-paren-mode: t
save-place-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t

Features:
(shadow sort mail-extr emacsbug message puny dired dired-loaddefs rfc822
mml mml-sec epa derived epg gnus-util rmail rmail-loaddefs mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
warnings ox-md ox-confluence ox-latex ox-icalendar ox-html ox-ascii
ox-publish ox org-element avl-tree org-clock windmove ob-dot ob-sh shell
ob-go ob-python org org-macro org-footnote org-pcomplete pcomplete
org-list org-faces org-entities noutline outline easy-mmode org-version
ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs format-spec
cal-menu calendar cal-loaddefs go-oracle go-autocomplete s ucs-normalize
flycheck find-func rx subr-x dash auto-complete-config auto-complete
popup flymake-cursor flymake compile comint ansi-color go-mode url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap find-file ffap thingatpt etags xref project
ring cl async finder-inf async-autoloads better-defaults-autoloads paren
edmacro kmacro saveplace ido cider-autoloads clojure-mode-autoloads
docker-tramp-autoloads dockerfile-mode-autoloads flycheck-autoloads
flymake-cursor-autoloads advice gh-md-autoloads gntp-autoloads
go-autocomplete-autoloads auto-complete-autoloads go-mode-autoloads
graphviz-dot-mode-autoloads htmlize-autoloads log4e-autoloads
lua-mode-autoloads markdown-mode-autoloads ob-go-autoloads
ob-lua-autoloads org-jira-autoloads org-plus-contrib-autoloads
ox-reveal-autoloads org-autoloads popup-autoloads projectile-autoloads
pkg-info-autoloads epl-autoloads dash-autoloads queue-autoloads
s-autoloads salt-mode-autoloads mmm-jinja2-autoloads info
mmm-mode-autoloads seq-autoloads speck-autoloads spinner-autoloads
yaml-mode-autoloads package epg-config url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cl-extra
help-mode easymenu cconv cl-loaddefs pcase cl-lib time-date mule-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame
cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind inotify
dynamic-setting system-font-setting font-render-setting xwidget-internal
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 403830 9738)
(symbols 48 38346 0)
(miscs 40 140 158)
(strings 32 85566 14409)
(string-bytes 1 2582019)
(vectors 16 56565)
(vector-slots 8 927530 4481)
(floats 8 362 30)
(intervals 56 339 0)
(buffers 976 14)
(heap 1024 44445 4484))