Closed aidanharris closed 5 years ago
Can you try https://github.com/swaywm/wlroots/pull/1396?
@emersion That helped but seems to have revealed another issue
Continuing.
Thread 1 "sway" received signal SIGSEGV, Segmentation fault.
subsurface_get_root_coords (child=<optimized out>, root_sx=0x7fff78033e80, root_sy=0x7fff78033e84) at ../sway-9999/sway/tree/view.c:686
686 *root_sx += subsurface->current.x;
Thread 2 (Thread 0x7ff7b02df700 (LWP 27073)):
#0 0x00007ff7b37ba11c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x00007ff7b08948fa in ?? () from /usr/lib64/dri/i965_dri.so
No symbol table info available.
#2 0x00007ff7b0894435 in ?? () from /usr/lib64/dri/i965_dri.so
No symbol table info available.
#3 0x00007ff7b37b3433 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4 0x00007ff7b38d520f in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7ff7b1141ec0 (LWP 27072)):
#0 subsurface_get_root_coords (child=<optimized out>, root_sx=0x7fff78033e80, root_sy=0x7fff78033e84) at ../sway-9999/sway/tree/view.c:686
subsurface = 0x0
surface = 0x562681a34a20
#1 0x00005626811c7c9f in view_child_damage (child=0x562681a3cc70, whole=whole@entry=false) at ../sway-9999/sway/tree/view.c:708
sx = 0
sy = 0
#2 0x00005626811c7d31 in view_child_handle_surface_commit (listener=<optimized out>, data=<optimized out>) at ../sway-9999/sway/tree/view.c:718
child = <optimized out>
#3 0x00007ff7b3a78b3e in wlr_signal_emit_safe (signal=signal@entry=0x562681a34cc0, data=data@entry=0x562681a34a20) at ../wlroots-9999/util/signal.c:29
pos = 0x562681a3cc88
l = 0x562681a3cc88
cursor = {link = {prev = 0x562681a3cc88, next = 0x7fff78033ee0}, notify = 0x7ff7b3a78aca <handle_noop>}
end = {link = {prev = 0x7fff78033ec0, next = 0x562681a34cc0}, notify = 0x7ff7b3a78aca <handle_noop>}
#4 0x00007ff7b3a73955 in surface_commit_pending (surface=surface@entry=0x562681a34a20) at ../wlroots-9999/types/wlr_surface.c:375
invalid_buffer = <optimized out>
subsurface = 0x562681a34c08
#5 0x00007ff7b3a73ad3 in surface_commit (client=<optimized out>, resource=<optimized out>) at ../wlroots-9999/types/wlr_surface.c:444
surface = 0x562681a34a20
subsurface = <optimized out>
#6 0x00007ff7b2a029dd in ffi_call_unix64 () at /var/tmp/portage/dev-libs/libffi-3.3_rc0/work/libffi-3.3-rc0/src/x86/unix64.S:101
No locals.
#7 0x00007ff7b2a0223c in ffi_call_int (cif=cif@entry=0x7fff78034090, fn=0x7ff7b3a73a97 <surface_commit>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff78034160, closure=closure@entry=0x0)
at /var/tmp/portage/dev-libs/libffi-3.3_rc0/work/libffi-3.3-rc0/src/x86/ffi64.c:667
classes = {X86_64_INTEGER_CLASS, X86_64_NO_CLASS, 2996823539, 32759}
stack = 0x7fff78033eb0 "@K\243\201&V"
argp = 0x7fff78033f70 ""
arg_types = 0x7fff780340b0
gprcount = 2
ssecount = 0
ngpr = 1
nsse = 0
i = 2
avn = 2
flags = 0
reg_args = 0x7fff78033eb0
#8 0x00007ff7b2a02613 in ffi_call (cif=cif@entry=0x7fff78034090, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff78034160)
at /var/tmp/portage/dev-libs/libffi-3.3_rc0/work/libffi-3.3-rc0/src/x86/ffi64.c:683
No locals.
#9 0x00007ff7b3ab7eb4 in wl_closure_invoke (closure=0x562681af0110, flags=2, target=<optimized out>, opcode=6, data=<optimized out>)
at /usr/src/debug/dev-libs/wayland-9999/wayland-9999/src/connection.c:1006
count = <optimized out>
cif = {abi = FFI_UNIX64, nargs = 2, arg_types = 0x7fff780340b0, rtype = 0x7ff7b2a04220 <ffi_type_void>, bytes = 0, flags = 0}
ffi_types = {0x7ff7b2a04100 <ffi_type_pointer>, 0x7ff7b2a04100 <ffi_type_pointer>, 0x7ff7b2a04100 <ffi_type_pointer>, 0x7ff7b2a04160 <ffi_type_sint32>, 0x7ff7b2a04160 <ffi_type_sint32>, 0x7ff7b2a04160 <ffi_type_sint32>, 0x40888bf7cee3e998, 0xb4, 0x7fff78034150, 0x4000004081d49d00, 0x0, 0xff1ba1f454455100, 0xb4, 0x562681ca2700, 0xb4, 0x7fff780345b0, 0x7ff7b3ab701a <wl_connection_pending_input+5>, 0x7ff7b3ab70ed <wl_connection_read+210>, 0x0, 0x200000000, 0x0, 0x0}
ffi_args = {0x7fff78034080, 0x7fff78034088, 0x562681cfd908, 0xff1ba1f454455100, 0x0, 0x562681af0110, 0x0, 0x7ff7b3ab75d1 <wl_closure_init+129>, 0x8, 0x7ff7b3ab69a9 <wl_buffer_copy+47>, 0x7ff7b3ac0310 <wl_surface_requests+144>, 0x7ff7b3ab6e57 <wl_connection_copy+9>, 0x562681c7e3d0, 0x7ff7b3ab8a95 <wl_connection_demarshal+1125>, 0x562681ca2700, 0x562681af01e0, 0x7ff7b3abb49e, 0x562681c7e400, 0x7ff7b3ac0310 <wl_surface_requests+144>, 0x7ff7b3ab3841 <log_closure+66>, 0x562681c7e400, 0x7ff7b3ac0310 <wl_surface_requests+144>}
implementation = <optimized out>
#10 0x00007ff7b3ab532e in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x562681c7e3d0) at /usr/src/debug/dev-libs/wayland-9999/wayland-9999/src/wayland-server.c:420
client = 0x562681c7e3d0
connection = 0x562681ca2700
resource = 0x562681a39d50
object = 0x562681a39d50
closure = 0x562681af0110
message = 0x7ff7b3ac0310 <wl_surface_requests+144>
p = {23, 524294}
resource_flags = <optimized out>
opcode = 6
size = <optimized out>
since = <optimized out>
len = <optimized out>
#11 0x00007ff7b3ab604b in wl_event_source_fd_dispatch (source=<optimized out>, ep=<optimized out>) at /usr/src/debug/dev-libs/wayland-9999/wayland-9999/src/event-loop.c:95
fd_source = <optimized out>
mask = <optimized out>
#12 0x00007ff7b3ab67db in wl_event_loop_dispatch (loop=0x5626816d3ee0, timeout=timeout@entry=-1) at /usr/src/debug/dev-libs/wayland-9999/wayland-9999/src/event-loop.c:641
ep = {{events = 1, data = {ptr = 0x562681a1b2b0, fd = -2120109392, u32 = 2174857904, u64 = 94723383603888}}, {events = 32759, data = {ptr = 0x562681d06180, fd = -2117049984, u32 = 2177917312, u64 = 94723386663296}}, {events = 1413828864, data = {ptr = 0x78034330ff1ba1f4, fd = -14966284, u32 = 4280001012, u64 = 8647829587198976500}}, {events = 32767, data = {ptr = 0x14, fd = 20, u32 = 20, u64 = 20}}, {events = 2177509120, data = {ptr = 0x81ca571800005626, fd = 22054, u32 = 22054, u64 = 9352383336779109926}}, {events = 22054, data = {ptr = 0x28a4, fd = 10404, u32 = 10404, u64 = 10404}}, {events = 3014356674, data = {ptr = 0xa00007ff7, fd = 32759, u32 = 32759, u64 = 42949705719}}, {events = 118, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x7fff78034370, fd = 2013479792, u32 = 2013479792, u64 = 140735206867824}}, {events = 1, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x811b15a70000202d, fd = 8237, u32 = 8237, u64 = 9303053262267621421}}, {events = 22054, data = {ptr = 0x562681ca3fac, fd = -2117451860, u32 = 2177515436, u64 = 94723386261420}}, {events = 20, data = {ptr = 0x81ca370800000000, fd = 0, u32 = 0, u64 = 9352348083687522304}}, {events = 22054, data = {ptr = 0x38, fd = 56, u32 = 56, u64 = 56}}, {events = 20, data = {ptr = 0x100000000, fd = 0, u32 = 0, u64 = 4294967296}}, {events = 1, data = {ptr = 0x7fff00000051, fd = 81, u32 = 81, u64 = 140733193388113}}, {events = 3014096451, data = {ptr = 0x2800007ff7, fd = 32759, u32 = 32759, u64 = 171798724599}}, {events = 48, data = {ptr = 0x7fff78034490, fd = 2013480080, u32 = 2013480080, u64 = 140735206868112}}, {events = 2013479888, data = {ptr = 0x5445510000007fff, fd = 32767, u32 = 32767, u64 = 6072348733020864511}}, {events = 4280001012, data = {ptr = 0x3000000020, fd = 32, u32 = 32, u64 = 206158430240}}, {events = 2013480112, data = {ptr = 0x811d296300007fff, fd = 32767, u32 = 32767, u64 = 9303637910395846655}}, {events = 22054, data = {ptr = 0xbd, fd = 189, u32 = 189, u64 = 189}}, {events = 2174247657, data = {ptr = 0x78031bc500005626, fd = 22054, u32 = 22054, u64 = 8647786242404013606}}, {events = 32767, data = {ptr = 0x5626811d2098, fd = -2128797544, u32 = 2166169752, u64 = 94723374915736}}, {events = 392, data = {ptr = 0x100000000000000, fd = 0, u32 = 0, u64 = 72057594037927936}}, {events = 0, data = {ptr = 0xff1ba1f454455100, fd = 1413828864, u32 = 1413828864, u64 = 18382464374800732416}}, {events = 2174866816, data = {ptr = 0x816d692800005626, fd = 22054, u32 = 22054, u64 = 9326226023873795622}}, {events = 22054, data = {ptr = 0x14, fd = 20, u32 = 20, u64 = 20}}, {events = 2171431168, data = {ptr = 0x5626, fd = 22054, u32 = 22054, u64 = 22054}}, {events = 0, data = {ptr = 0x7ff7b3ab54ba <wl_display_flush_clients+68>, fd = -1280617286, u32 = 3014350010, u64 = 140701847999674}}}
source = <optimized out>
i = 0
count = 1
#13 0x00007ff7b3ab5516 in wl_display_run (display=0x5626816d6900) at /usr/src/debug/dev-libs/wayland-9999/wayland-9999/src/wayland-server.c:1260
No locals.
#14 0x00005626811a2c68 in server_run (server=0x5626811ea940 <server>) at ../sway-9999/sway/server.c:190
No locals.
#15 0x00005626811a2693 in main (argc=<optimized out>, argv=<optimized out>) at ../sway-9999/sway/main.c:410
verbose = 0
debug = 1
validate = 0
allow_unsupported_gpu = 0
long_options = {{name = 0x5626811d21fc "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x5626811d4aef "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x5626811d2201 "validate", has_arg = 0, flag = 0x0, val = 67}, {name = 0x5626811d220a "debug", has_arg = 0, flag = 0x0, val = 100}, {name = 0x5626811d2065 "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x5626811d12ba "verbose", has_arg = 0, flag = 0x0, val = 86}, {name = 0x5626811d2210 "get-socketpath", has_arg = 0, flag = 0x0, val = 112}, {name = 0x5626811d221f "unsupported-gpu", has_arg = 0, flag = 0x0, val = 117}, {name = 0x5626811d222f "my-next-gpu-wont-be-nvidia", has_arg = 0, flag = 0x0, val = 117}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
config_path = <optimized out>
usage = 0x5626811d2570 "Usage: sway [options] [command]\n\n -h, --help", ' ' <repeats 13 times>, "Show help message and quit.\n -c, --config <config> Specify a config file.\n -C, --validate Check the validity of the config file, th"...
c = <optimized out>
Detaching from program: /usr/bin/sway, process 27072
[Inferior 1 (process 27072) detached]
Adding another check for NULL seems to have fixed things although I don't know if this is the correct place for this:
--- a/sway/tree/view.c.orig 2018-11-27 00:21:29.253717136 +0000
+++ b/sway/tree/view.c 2018-11-27 00:22:58.728713467 +0000
@@ -683,6 +683,9 @@
while (surface && wlr_surface_is_subsurface(surface)) {
struct wlr_subsurface *subsurface =
wlr_subsurface_from_wlr_surface(surface);
+ if ( subsurface == NULL ) {
+ break;
+ }
*root_sx += subsurface->current.x;
*root_sy += subsurface->current.y;
surface = subsurface->parent;
Hmm, maybe https://github.com/swaywm/sway/pull/3199 also fixes this issue?
use_ozone=true use_intel_minigbm=true
See: Ozone Overview)sway.log
gdb.log
chromium.log
Opening Chromium with
/usr/lib64/chromium-browser/chrome --ozone-platform=wayland
reliably causes Sway to crash. Sometimes it doesn't show up immediately but it always results in Sway crashing in the end.I've tried to include as much logs as possible but if there's anything else you'd like me to try feel free to make any suggestions and I'll do my best to accomodate.