any1 / neatvnc

A liberally licensed VNC server library with a clean interface
ISC License
118 stars 29 forks source link

Occasional abort during connection #37

Closed Xyene closed 3 years ago

Xyene commented 4 years ago

I encountered this abort while trying to connect to a wayvnc session with xtightvncviewer. It's reproducible if several sequential connections are attempted. Looking at the logs it seems this happens in neatvnc's stream__on_writable, but I'm filing here just in case.

wayvnc logs ``` DEBUG: OpenGL ES 3.2 Mesa 18.3.6 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:659: Client 0x55ebb7ea8770 (2) hung up ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 ../subprojects/neatvnc/src/server.c:750: New client connection: 0x55ebb7ea8770 (ref 1) ../subprojects/neatvnc/src/server.c:677: Client connection error: 0x55ebb7ea8770 (ref 2) ../subprojects/neatvnc/src/server.c:76: client_close(0x55ebb7ea8770): ref 0 Aborted (core dumped) ```
GDB backtrace ``` #0 0x00007fc388756761 in raise () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. any1/wayvnc#1 0x00007fc38874055b in abort () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. any1/wayvnc#2 0x00007fc388b6f1fd in stream__on_writable (self=0x55ebb7ed15d0) at ../subprojects/neatvnc/src/stream.c:260 No locals. any1/wayvnc#3 0x00007fc388b6f256 in stream__on_event (obj=0x55ebb7f1e0e0) at ../subprojects/neatvnc/src/stream.c:274 self = 0x55ebb7ed15d0 events = 29 any1/wayvnc#4 0x00007fc388b7b6fb in aml__handle_event (self=0x55ebb7e56dd0, obj=0x55ebb7f1e0e0) at ../subprojects/aml/src/aml.c:711 No locals. any1/wayvnc#5 0x00007fc388b7b883 in aml_dispatch (self=0x55ebb7e56dd0) at ../subprojects/aml/src/aml.c:754 sig_old = {__val = {2, 0, 0, 18446744073709551615, 140726745193472, 140477789091191, 94470890942272, 7380233680, 140726745193472, 140477789086884, 18446744072491352352, 94470890941904, 140726745193520, 140477789091721, 18446744069414584320, 94470890941904}} sig_new = {__val = {18446744067267100671, 18446744073709551615 }} obj = 0x55ebb7f1e0e0 any1/wayvnc#6 0x000055ebb626eb91 in main (argc=2, argv=0x7ffd7fa86118) at ../src/main.c:885 self = {do_exit = false, display = 0x55ebb763c120, registry = 0x55ebb76402c0, outputs = {prev = 0x55ebb7641650, next = 0x55ebb7641650}, seats = {prev = 0x55ebb7642318, next = 0x55ebb7642318}, cfg = {enable_auth = false, private_key_file = 0x0, certificate_file = 0x0, username = 0x0, password = 0x0, address = 0x0, port = 0}, xdg_output_manager = 0x55ebb76429a0, keyboard_manager = 0x55ebb76420b0, pointer_manager = 0x55ebb7642150, pointer_manager_version = 2, renderer = {display = 0x55ebb7677300, context = 0x55ebb7d59640, output = 0x55ebb7641640, read_format = 6408, read_type = 5121, frame_fbo = {{rbo = 0, fbo = 1, tex = 1}, {rbo = 0, fbo = 2, tex = 2}}, frame_index = 0, damage_fbo = {rbo = 1, fbo = 3, tex = 0}, frame_shader = {program = 3, u_tex0 = 1, u_proj = 0}, damage_shader = {program = 6, u_tex0 = 0, u_tex1 = 1}}, selected_output = 0x55ebb7641640, selected_seat = 0x55ebb7642310, dmabuf_backend = {fc = {status = CAPTURE_STOPPED, overlay_cursor = false, wl_output = 0x55ebb7642440, userdata = 0x7ffd7fa85c50, on_done = 0x55ebb626e1a7 , frame_info = {fourcc_format = 0, width = 0, height = 0, stride = 0}, damage_hint = {x = 0, y = 0, width = 0, height = 0}, backend = {render = 0x55ebb6270cf9 , start = 0x55ebb6270bac , stop = 0x55ebb6270854 }}, manager = 0x55ebb7641500, zwlr_frame = 0x0, frame = {width = 0, height = 0, format = 0, n_planes = 0, plane = {{fd = 0, offset = 0, size = 0, pitch = 0, modifier = 0}, {fd = 0, offset = 0, size = 0, pitch = 0, modifier = 0}, {fd = 0, offset = 0, size = 0, pitch = 0, modifier = 0}, { fd = 0, offset = 0, size = 0, pitch = 0, modifier = 0}}}, render_finish_time = 0, start_time = 0, timer = 0x55ebb7e5cdc0}, screencopy_backend = {frame_capture = { status = CAPTURE_IN_PROGRESS, overlay_cursor = false, wl_output = 0x55ebb7642440, userdata = 0x7ffd7fa85c50, on_done = 0x55ebb626e1a7 , frame_info = { fourcc_format = 875709016, width = 3000, height = 2000, stride = 12000}, damage_hint = {x = 18, y = 0, width = 168, height = 54}, backend = { render = 0x55ebb627183b , start = 0x55ebb627170d , stop = 0x55ebb627132d }}, wl_shm = 0x55ebb7642910, buffer = 0x55ebb7e5cf50, pixels = 0x7fc2ec10f000, bufsize = 24000000, manager = 0x55ebb76415a0, frame = 0x55ebb7e5ce50, last_time = 974102622265, start_time = 974102631574, timer = 0x55ebb7e5cd30, delay_smoother = {time_constant = 0.5, last_time = 974102622266, last_result = 0.9963658608247814}, delay = 0.9963658608247814, is_immediate_copy = false}, capture_backend = 0x7ffd7fa85e40, pointer_backend = {vnc = 0x0, pointer = 0x55ebb76539b0, current_mask = (unknown: 0), current_x = 0, current_y = 0, output = 0x55ebb7641640}, keyboard_backend = {virtual_keyboard = 0x55ebb7642a90, context = 0x55ebb7642d60, keymap = 0x55ebb7643a00, state = 0x55ebb765ba60, lookup_table_size = 512, lookup_table_length = 357, lookup_table = 0x55ebb766f8e0, key_state = {cap = 256, len = 0, storage = 0x55ebb76435f0}}, wayland_handler = 0x0, signal_handler = 0x0, nvnc = 0x55ebb7e5ca20, nvnc_display = 0x55ebb7e5cd00, buffer = 0x55ebb7e5d180, current_damage = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, data = 0x7fc3889e9b10}, kb_layout = 0x0} cfg_file = 0x0 address = 0x7ffd7fa865a9 "0.0.0.0" port = 5900 output_name = 0x0 fcbackend = FRAME_CAPTURE_BACKEND_NONE seat_name = 0x0 overlay_cursor = false shortopts = 0x55ebb62758fa "C:c:o:k:s:rh" ```
any1 commented 3 years ago

This may have been solved by #44. Is this still an issue?

any1 commented 3 years ago

I think it's likely that this has been solved, so I'm closing the issue. Please re-open if the problem persists.