elementary / dock

A quick app launcher and window switcher for Pantheon and elementary OS
https://elementary.io
GNU General Public License v3.0
88 stars 23 forks source link

Possible bug: clipboard plugin make artificial thread cycling and strange reaction to key press #112

Closed cuzrawr closed 2 years ago

cuzrawr commented 3 years ago

What Happened

Enabling clipboard manager in plank dock made a child process which re-spawning too frequently in background.

And seems this child process doesn't inherit nice level of parent, so software like Ananicy filling logs with renice messages.

Steps to Reproduce

  1. Add clipboard plugin to dock

  2. Close dock pkill plank

  3. Launch dock plank

  4. Open your favorite process manager ( htop e.g.) with threads highlight and set filter to "plank" process watch -n0.1 pstree -ps $(pgrep plank)

  5. You can see now plank launch child threads frequently Disabling clipboard manager resolve this instantly.

Logs

17:52:37.267003 futex(0x5610c5438600, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.267066 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
17:52:37.267103 clone(child_stack=0x7fa604f97d70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[653772], tls=0x7fa604f98640, child_tidptr=0x7fa604f98910) = 653772
17:52:37.267153 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
17:52:37.267179 futex(0x5610c54416e0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.267206 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.267282 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.267341 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:37.267390 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:37.267484 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:37.267520 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.267567 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.267603 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.267707 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.267735 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.267794 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 25000) = 1 ([{fd=3, revents=POLLIN}])
17:52:37.267946 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:37.268050 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:37.268098 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268122 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268144 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268198 futex(0x7fa617e79120, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.268223 futex(0x7fa617e79120, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:37.268243 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:37.268277 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268351 futex(0x7fa617e79108, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268413 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.268448 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.268479 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:37.268504 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:37.268585 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:37.268609 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268627 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268646 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268732 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:37.268759 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268793 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268835 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.268946 futex(0x5610c542e230, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269007 futex(0x5610c542e230, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:37.269045 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269085 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269112 futex(0x5610c543aae0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269136 futex(0x5610c543aae0, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:37.269153 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:37.269177 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:37.269270 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:37.269294 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.269312 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.269331 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:37.269373 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269415 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269449 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 0 (Timeout)
17:52:37.269486 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269515 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:37.269544 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 4993) = 0 (Timeout)
17:52:42.267001 futex(0x5610c5438600, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267070 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
17:52:42.267112 clone(child_stack=0x7fa607ffed70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[653918], tls=0x7fa607fff640, child_tidptr=0x7fa607fff910) = 653918
17:52:42.267197 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
17:52:42.267234 futex(0x5610c54416e0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267262 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.267291 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.267323 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:42.267365 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:42.267454 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.267477 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.267501 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267535 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267625 futex(0x7fa617e79120, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.267658 futex(0x7fa617cdfa00, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.267716 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.267746 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267769 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267793 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267858 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.267888 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.267913 futex(0x5610c543aae0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.267937 futex(0x5610c543aae0, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.268023 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.268080 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.268109 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:42.268159 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:42.268263 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.268287 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268305 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268324 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268390 futex(0x7fa617cdfa00, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.268433 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.268473 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268506 futex(0x7fa617e79108, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.268546 futex(0x7fa617e79120, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.268572 futex(0x7fa617e79120, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.268591 futex(0x7fa617e79108, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.268608 futex(0x7fa617e79108, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.268628 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.268652 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.268678 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:42.268702 read(3, "\2\0\0\0\0\0\0\0", 16) = 8
17:52:42.268785 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.268809 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268827 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268845 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268925 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.268951 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268969 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.268987 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.269016 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269040 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269087 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 25000) = 1 ([{fd=3, revents=POLLIN}])
17:52:42.269196 read(3, "\1\0\0\0\0\0\0\0", 16) = 8
17:52:42.269275 futex(0x5610c542e230, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269300 futex(0x5610c542e230, FUTEX_WAKE_PRIVATE, 1) = 0
17:52:42.269323 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269346 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269370 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
17:52:42.269394 read(3, "\1\0\0\0\0\0\0\0", 16) = 8
17:52:42.269464 write(6, "\1\0\0\0\0\0\0\0", 8) = 8
17:52:42.269488 futex(0x5610c5454310, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.269506 futex(0x5610c5453fb0, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.269524 futex(0x5610c5449058, FUTEX_WAKE_PRIVATE, 1) = 1
17:52:42.269551 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269574 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269599 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 0) = 0 (Timeout)
17:52:42.269626 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269647 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:52:42.269670 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 4992) = 0 (Timeout)

And also founded strange reaction on functional key presses (ALT\CTRL\SHIFT\ETC) - seems plank do scans for CTRL for RMB menu works ( Now question: are we realy need this? Mean you can spawn menu with --preferences or add plank prefrences to system settings menu )


18:15:48.646338 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.646374 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.646427 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.646479 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.646524 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 2616) = 1 ([{fd=7, revents=POLLIN}])
18:15:48.746387 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="U\2\304h\2704o\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\37@\3\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
18:15:48.746557 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.746642 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.746721 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.746744 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:48.746770 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 2515) = 1 ([{fd=7, revents=POLLIN}])
18:15:49.482376 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="U\2\304h\2307o\2\3\10\10\0\0\0\0\0\0\0\0\10\10\10\10\10\0\0\3\37@\2\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
18:15:49.482436 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.482462 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.482525 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.482558 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.482600 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 1780) = 1 ([{fd=7, revents=POLLIN}])
18:15:49.570176 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="U\2\304h\3607o\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\37@\3\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
18:15:49.570232 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.570262 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.570322 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.570356 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
18:15:49.570381 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, 1692) = 1 ([{fd=7, revents=POLLIN}])
18:15:50.634145 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="U\2\304h\30<o\2\3\4\4\0\0\0\0\0\0\0\0\4\4\4\4\4\0\0\3\37%\2\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32

Platform Information

PS Thank you for cool candy-eye dock! Using it for years.

danirabbit commented 2 years ago

Thanks for your report! We're doing a complete rewrite of the dock based on our recent UI study and this particular issue isn't able to be reproduced in the new version of the dock