Bug289 Editing
Platform: Debian testing/unstable (x86) - Built and installed OK (with --enable-tracer). - Server runs ok on its own with various consoles and libartdrawingkit. - Running a client results in the server not responding and using up a lot of cpu. I've debugged this a bit, and one of the server threads (the drawing one, number 3) starts taking a long time to do draw_path calls, specifically when drawing Frame's (Bevels). Currently I have two main ideas as to why this is: - some of the allocation sizes are very large, ie. 1E6 to 1E9, vs the ~1E2 sizes which seem common: could this be causing a lot of extra drawing, or else triggering some problem in libart? maybe it might be possible to have a common function which ensures that allocations, etc. are within a reasonable range. - while the draw_path is taking its time doing something, the ping (reaper) thread is running: maybe the ping thread is actually interrupting the draw thread, or interfering with it in some way. I'm not convinced about this ;) I attach a trace/log of the server, with some extra code to illustrate that the slowdown is occurring inside draw_path (do a search for that). Any questions, please ask, and of course please let me know if you can replicate this problem! (or have any solutions!)
Attached: the diff from current cvs, to add the tracer code and extra debugging info.
fZdvCR <a href="http://smtmnrynwfqn.com/">smtmnrynwfqn</a>, [url=http://mhljfyzbqmwc.com/]mhljfyzbqmwc[/url], [link=http://hsnidxzldujv.com/]hsnidxzldujv[/link], http://yskmudjxevot.com/