linuxmint / mint20-beta

BETA Bug Squah Rush
20 stars 8 forks source link

SNI: teamviewer hangs for 25s #100

Closed cedricpineau closed 4 years ago

cedricpineau commented 4 years ago

Seen on both this VM (screenshot) and a physical machine (with intel CPU and GPU) A small (empty ?) window is displayed during about 25s before it resizes to display the whole GUI

image

cedricpineau commented 4 years ago

Strace give exactly a 25s wait : futex(0x3bc7f20, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 <25.021092>

Partial traces around are : poll([{fd=27, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=27, revents=POLLOUT}]) <0.000006> writev(27, [{iov_base="b\0\4\0\6\0\0\0", iov_len=8}, {iov_base="XFIXES", iov_len=6}, {iov_base="\0\0", iov_len=2}], 3) = 16 <0.000059> poll([{fd=27, events=POLLIN}], 1, -1) = 1 ([{fd=27, revents=POLLIN}]) <0.000014> recvmsg(27, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\26\0\0\0\0\0\1\212W\214\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 <0.000008> poll([{fd=27, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=27, revents=POLLOUT}]) <0.000004> writev(27, [{iov_base="\212\0\3\0\5\0\0\0\0\0\0\0", iov_len=12}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 12 <0.000091> poll([{fd=27, events=POLLIN}], 1, -1) = 1 ([{fd=27, revents=POLLIN}]) <0.000005> recvmsg(27, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\27\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 <0.000006> getpid() = 2673 <0.000022> fstat(22, {st_mode=S_IFREG|0664, st_size=100697, ...}) = 0 <0.000005> lseek(22, 100697, SEEK_SET) = 100697 <0.000004> write(22, "2020/06/17 18:17:09.605 2673 13"..., 101) = 101 <0.000011> lseek(22, 0, SEEK_CUR) = 100798 <0.000004> poll([{fd=27, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=27, revents=POLLOUT}]) <0.000004> writev(27, [{iov_base="\212\2\4\0\255\3\0\0a\1\0\0\7\0\0\0\1\0\n\0\1\0\200\5\255\3\0\0\0\0\0\0"..., iov_len=100}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 100 <0.000213> recvmsg(27, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0\33\0\1\0\200\5\374\1\0\0K\217\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 <0.000006> recvmsg(27, {msg_namelen=0}, 0) = -1 EAGAIN (Ressource temporairement non disponible) <0.000004> clone(child_stack=0x7f3f5889b930, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[2724], tls=0x7f3f5889d700, child_tidptr=0x7f3f5889d9d0) = 2724 <0.000021> write(11, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000008> write(11, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000009> write(11, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000004> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.001340> getpid() = 2673 <0.000004> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000674> futex(0x7f3f787a2ea0, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000028> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000013> futex(0x7f3f787a2ea0, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000058> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000013> futex(0x7f3f787a2ea0, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000050> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000081> futex(0x7f3f787a2c88, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000018> getpid() = 2673 <0.000004> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000218> futex(0x7f3f787a2c88, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000025> getpid() = 2673 <0.000004> write(19, "\1\0\0\0\0\0\0\0", 8) = 8 <0.001026> futex(0x3bc7f20, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 <25.021092> futex(0x3bc7ed0, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000006> getpid() = 2673 <0.000007> fstat(22, {st_mode=S_IFREG|0664, st_size=100798, ...}) = 0 <0.000008> lseek(22, 100798, SEEK_SET) = 100798 <0.000007> write(22, "2020/06/17 18:17:34.633 2673 13"..., 116) = 116 <0.000020> lseek(22, 0, SEEK_CUR) = 100914 <0.000005> write(11, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000026> read(12, "\1\3\0\1\1\0\0\0", 8) = 8 <0.000009> read(12, "\1\0\0\0001097", 8) = 8 <0.000008> write(12, "\1\f\1\0\v\0\0\0\1\0\0\0\0\0\0\0\7\0\0\0Program\0\0\0\0\0"..., 96) = 96 <0.000097> geteuid() = 1000 <0.000006> openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 31 <0.000090> lseek(31, 0, SEEK_CUR) = 0 <0.000005> fstat(31, {st_mode=S_IFREG|0644, st_size=2729, ...}) = 0 <0.000006> read(31, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2729 <0.000009> close(31) = 0 <0.000008>

xenopeek commented 4 years ago

I can reproduce this with TeamViewer installed from https://download.teamviewer.com/download/linux/teamviewer_amd64.deb on Linux Mint 20 Cinnamon live.

I can't reproduce it with Linux Mint 20 MATE live or Ubuntu 20.04 LTS live.

clefebvre commented 4 years ago

It looks like it's related to Xapp SNI Watcher. @mtwebster can you have a look?

mtwebster commented 4 years ago

https://github.com/linuxmint/xapps/commit/624992e975e5048d95e11cd113b373a846212eb1