[Development] QProcess fork() failure and overcommit

René J.V. Bertin rjvbertin at gmail.com
Tue Mar 7 16:42:31 CET 2017


On Tuesday March 7 2017 14:20:18 Simon Hausmann wrote:
Hi

> But for example if KDevelop ends up using QtScript and you're on a 64-bit system, then we end up allocating 2GB of address space, which the kernel has to copy (in terms of page tables) when forking. It could be that you're short of that.

That could be, but if my understanding of overcommit_memory=2 is correct I should still have enough margin for even that. Unless there's an additional per-process limit that comes into play?

>We should probably mark these address spaces with MADV_DONTFORK.

I suppose I could test such a change, if that helps.

>But can you check first if KDevelop ends up using QtScript by chance?

The CMake project manager appears to use QScript for evaluating math expressions but even a session that doesn't load the corresponding plugin ends up loading the QtScript library according to its /proc/.../maps file. If Kevin picks up on this thread he may be able to say more about the paths through which KDevelop ends up using QtScript.

%> fgrep -i 5script /proc/24536/maps
7fd00cc9e000-7fd00cef5000 r-xp 00000000 00:27 37325                      /opt/local/libexec/qt5/lib/libQt5Script.so.5.8.0
7fd00cef5000-7fd00d0f5000 ---p 00257000 00:27 37325                      /opt/local/libexec/qt5/lib/libQt5Script.so.5.8.0
7fd00d0f5000-7fd00d107000 r--p 00257000 00:27 37325                      /opt/local/libexec/qt5/lib/libQt5Script.so.5.8.0
7fd00d107000-7fd00d109000 rw-p 00269000 00:27 37325                      /opt/local/libexec/qt5/lib/libQt5Script.so.5.8.0

R.



More information about the Development mailing list