On Wed, 2012-04-25 at 15:26 +0200, Krzesimir Nowak wrote:
I got a sort of hickup, because suddenly tests stopped working -
running syncevolution via process subprocess module caused it to hang,
so tests were ending with errors after timeout. After googling a bit
about it I thought that using pipes to gather output from
syncevolution is the culprit - a deadlock may happen when output is so
large that it fills the pipe completely, so subprocess is blocked
during writing, because it waits for the pipe to be empty. Pipes are
emptied by reading from them, but that happen only after subprocess
finishes.
Using "communicate()" explicitly avoids that problem.
But apparently that was not that - I changed runCmdline to
use just files, but hanging still happened. I tried running tests
after setting minimal environment needed for running the tests (PATH
and SYNCEVOLUTION_TEMPLATE_DIR) and the tests worked. It turned out
that G_SLICE env var set to "always-malloc" was messing something up.
What? I do not know and I was not investigating it - I have lost too
much time on it already.
Okay, thanks for your time. I'll have a look at your branch as soon as I
can. Right now I am running full-scale tests of the "master" branch and
chase memory leaks in the GIO GDBus bindings + stack. Yes, debugging
takes time ;-}
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.