|
Created on 2008-11-14.10:52:03 by ckeen, last changed 2009-08-27.14:20:22 by admin.
msg6673 (view) |
Author: ckeen |
Date: 2008-11-14.10:52:00 |
|
While working on the shell_harness mess, kowey noticed a strange error with the
repair.sh test. Failed test output follows:
Running repair.sh ... failed.
Probable reason :
rm -rf temp1
mkdir temp1
cd temp1
darcs initialize
echo ALL ignore-times >> _darcs/prefs/defaults
echo A1 > foo
mkdir d
echo A2 > d/bar
darcs add foo
darcs add d
darcs add d/bar
darcs record -a -m AA -A x
Finished recording patch 'AA'
echo B > foo
darcs record -a -m BB -A x
Finished recording patch 'BB'
echo C > foo
darcs record -a -m CC -A x
Finished recording patch 'CC'
for i in _darcs/pristine*; do
echo Empty the pristine directory: $i
rm -rf $i
mkdir $i
done
Empty the pristine directory: _darcs/pristine.hashed
darcs repair
darcs failed: Couldn't fetch
`0000000002-12f37a8a84034d3e623d726fe10e5031f4df997ac13f4d5571b5a90c41fb84fe'
in subdir pristine.hashed from sources:
thisrepo:/here/eykk10/darcsImpl/unstable/tests-darcs-2.dir/temp1
cache:/here/eykk10/darcsImpl/unstable/tests-darcs-2.dir/.darcs/cache
This tests passes when we clean the cache beforehand. So the question remaining
for us is, why does a cache that does not contain what we expect matter in this
context?
|
msg6867 (view) |
Author: mornfall |
Date: 2008-12-22.20:09:57 |
|
Sort of looks like a problem with the repo being lazy? Dunno. I don't suppose
you can check that?
|
msg7849 (view) |
Author: mornfall |
Date: 2009-05-27.18:49:39 |
|
The following patch updated the status of issue1229 to be resolved:
* Resolve issue1229: strictify checkPristineAgainstSlurpy.
Ignore-this: 8d35ecced399c9e556f92949065dd505
The code in replayRepository' in Darcs.Repository.Repair relies on being able
to catch exceptions that arise while running checkPristineAgainstSlurpy.
Unfortunately, due to unsafeInterleaveIO used in the SlurpDirectory code, the
exception does not get thrown until after the `catchall` is out of scope,
ie. when the "is_same" condition is evaluated (a supposed pure value, but
unsafeInterleaveIO has introduced latent exceptions into the equation). Making
the return from checkPristineAgainstSlurpy strict (using $!) forces execution
of the interleaved IO and trips the exception in the right context.
|
|
Date |
User |
Action |
Args |
2008-11-14 10:52:04 | ckeen | create | |
2008-12-22 20:09:59 | mornfall | set | status: unread -> unknown nosy:
kowey, dagit, simon, thorkilnaur, dmitry.kurochkin, mornfall, ckeen messages:
+ msg6867 |
2009-05-27 18:49:43 | mornfall | set | status: unknown -> resolved nosy:
kowey, dagit, simon, thorkilnaur, dmitry.kurochkin, mornfall, ckeen messages:
+ msg7849 |
2009-08-10 23:51:43 | admin | set | nosy:
- dagit |
2009-08-25 17:34:34 | admin | set | nosy:
+ darcs-devel, - simon |
2009-08-27 14:20:22 | admin | set | nosy:
kowey, darcs-devel, thorkilnaur, dmitry.kurochkin, mornfall, ckeen |
|