GNOME Bugzilla – Bug 332011
Vino-server takes 90% of cpu on wrong login
Last modified: 2006-10-05 13:07:40 UTC
That bug has been opened on https://launchpad.net/distros/ubuntu/+source/vino/+bug/31037 "The load of Vino-server becomes about 90 % of the cpu. It goes as far as 99% of total cpu usage. A simple "killall vino-server" reduces cpu load to 5-10 %. I have know idea why vino-server takes that much of cpu. I didn't make any connection to it. It just happens after a while. ... > Thanks for your bug. What version of Ubuntu do you use? Could you get a backtrace when that happens again: > - gdb $(pidof vino-server) > (gdb) thread apply all bt > > Does it happen often? ... I now know it happend after one tried to make conact with my pc, but she provided (on purpose) the wrong password. This gave the problem. i read some manpages and info on the web, and i got output of gdb. It's located here: http://mifa.myftp.org/gdb-vino-output.txt."
The issue is easy to get, try to login with xvncviewer 2 times in a row and using a wrong password (using 2.13.5), backtrace: (gdb) bt
+ Trace 66376
Created attachment 62472 [details] [review] patch by Gary Coady <gary@lyranthe.org> to remedy the problem If a client is "on hold", then no processing will be performed in vino_server_update_client_timeout. However, the socket will therefore continue to be ready, and the GTK main loop will continually call this callback function. Proposed fix: remove the client from the main loop when "on hold". Ways to put a client on hold (for testing): 1. enable client authentication 2. turn off remote display altogether, and run vino-server manually
Patch looks good, with one nitpick - please fix the indentation i.e. if (on_hold) { if (client->io_watch) { Please go ahead and commit once you've fixed that Thanks
Commited. Thanks.