Ccache hangs while compiling and cache size is exaggerated

Dima Panov fluffy at fluffy.khv.ru
Sun Jan 9 18:41:30 UTC 2011


Hello!

08.01.2011, 21:00, "Denny Lin" <dennylin93 at hs.ntnu.edu.tw>:
> On Tue, Jan 04, 2011 at 04:23:12AM +0200, Volodymyr Kostyrko wrote:
>
>>  02.01.2011 16:01, Anonymous wrote:
>>>> I'm using ccache 3.1.3, and it often hangs while compiling.
>>> What its waiting channel? Hit ^T when it hangs or run under ktrace(1).
>
> This is what appears when I hit ^T:
> load: 0.96  cmd: ccache 25893 [zio->io_cv)] 3.83r 0.00u 0.06s 1% 1604k
>
>>  Not just every compilation attempt triggers it. Chances are closer to 100/1.
>
> Correct, but it's always triggered at the same point.
>
>>>> Every time this happens, the cache size from $ ccache -s also becomes
>>>> ridiculously large (larger than the actual cache size).
>>>>
>>>> $ ccache -s
>>>> [...]
>>>> cache size    6.9 Gbytes
>>>> The filesystem says it's only 2.9 GB.
>>> How did you measure it? du(1) with `-A' option?
>>> For example, compression can make difference
>
> Compression is turned off.
>
>>  I'd clarify this one. ccache reports size of cache +4G per damaged
>>  subdir. If damaged subdir would be removed ccache reports normal size of
>>  cache again.
>>>> I can reproduce this, but I don't know what is causing this.
>>  This gives high IO. When ccache thinks cache is full it tries to purge
>>  it, yet purge does nothing. But this means walking all subdir per each
>>  compilation.
>
> This seems to be the exact reason ccache is hanging. Does anyone have a
> clue why subdirs are getting damaged and how this can be prevented?

I'm also affected by ccache stalling is some circumstances. 
In my case it's mostly for large ports with parallell build enabled (MAKE_JOBS_SAFE)


-- 
Dima Panov (fluffy at FreeBSD.org)
KDE at FreeBSD team

Facebook: http://www.facebook.com/?id=100000181104157


More information about the freebsd-ports mailing list