On 03/07/2017 02:04 PM, René J.V. Bertin wrote:
> I have a bit of an intriguing issue I hope someone here could help me 
> understand. If not, sorry for the noise.
> 
> I'm seeing occasional QProcess failures where QProcess:waitForStarted() fails 
> and gives rise to errors like
> 
> kdevplatform.vcs: "DVCSJob::start: git ls-files -- kclock.cpp failed to 
> start: Resource error (fork failure): Cannot allocate memory"
> 
> Those come and go in episodes; restarting the affected application always 
> helped too (for a while).
> 
> Last time this happened htop reported I had 6955Mb used of 7899Mb, and not 
> even 10% swap used (1151Mb of 16Gb) but despite that the issue went away when 
> I turned overcommit back on (I usually run with overcommit_memory=2 and 
> overcommit_ratio=80).
> 
> This only happened to me with KDevelop5 until now, i.e. a Qt5/KF5 based 
> application, running on a KDE4 (= Qt4-based) desktop.
> If memory contention were really the cause here I would expect to see traces 
> of similar failures elsewhere too because KDevelop isn't exactly the only KDE 
> application that makes generous use of QProcess.
> 
> Is there anything in QProces (Qt5) vs. the Qt4 version that could explain 
> fork() failing, or else can it be the way QProcess is being used which causes 
> this in KDevelop but not other applications?

This kind of stuff seems to happen when the parent process has allocated
a lot of memory. I haven't debugged into it, but one idea might be that
the page tables themselves get to a non-trivial size and thus copying
them causes allocation problems.
Note also that starting a QProcess becomes enormously slow in such
applications; for instance, on my machine here, I can only start about
20 processes per second from an application that has 1 GB of memory
allocated.


Christian
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to