After hitting a situation when, after setting the text message of the commit 'fossil' looked hanged at 100% of cpu, procmon showed that it was trying to open files with a name that looked like all files in the manifest in a row. gdb luckily helped us distinguish the point of trouble.
I'll attach a patch that solves the situation but I don't know if the patch has undesired side effects, because I have not tried to understand deeply the code around.
It is about a blob that should be always 'trimmed' before appending. And the 'trimming' is inside an if() branch that our commit looks like not traversing. But I don't know why not, if it should, or whatever. The case is that it does not go through the branch. So, I put the append out.
<hr /><i>anonymous added on 2011-01-04 15:51:52 UTC:</i><br />
I meant "I put the resize (trim) out of the if clause" in the last part of the ticket text.
<hr /><i>anonymous claiming to be viric added on 2011-01-04 16:12:52 UTC:</i><br />
Just to mention... I think this only happens with delta commits; we just switched them today, and this is why we did not see this before.
So, delta commits + exe permissions should be broken unless this patch is applied, in any unix-like system.
|