Ticket #223 (reopened defect)
RuntimeError: unable to find our most recent change in the last 80 changes
| Reported by: | zooko | Owned by: | zooko |
|---|---|---|---|
| Priority: | major | Milestone: | 0.8.+ |
| Version: | 0.7.6 | Keywords: | darcs |
| Cc: |
Description
I just pushed several hundred patches at once to this buildbot:
http://allmydata.org/buildbot-pycryptopp/waterfall?show_events=False
and I got this error:
Fri Oct 4 10:31:41 PDT 2002 anonymous
- New repository initialized by cvs2svn.
Push successful. Traceback (most recent call last):
File "/home/darcs/bin/darcs_buildbot.py", line 122, in ?
changes = findNewChanges()
File "/home/darcs/bin/darcs_buildbot.py", line 117, in findNewChanges
raise RuntimeError?("unable to find our most recent change "
RuntimeError?: unable to find our most recent change (20080328191356-92b7f-9d836589b1182ab0725a4dc927219346170c4c0d.gz) in the last 80 changes Finished applying... Posthook failed! Apply failed!
Change History
comment:2 Changed 4 years ago by zooko
I've figured out that this is because I've used "darcs obliterate" on the patch in question in the darcs repo that buildbot tracks.
I hadn't previously realized that buildbot was remembering facts about the state of my repository, and assuming append-only revision control.
comment:3 Changed 4 years ago by warner
- Owner set to zooko
yeah, the darcs_buildbot.py script stashes the patchid of the most recent thing it remembers sending to the buildmaster, in a file named .darcs_buildbot-lastchange . There's no other good way to determine what needs to be send to the buildmaster: I believe that 'darcs apply' doesn't give the posthook script any clues about what was just applied.
Can we close this as not-a-bug? Or do you think there is some improvement that we could make?
comment:5 Changed 3 years ago by zooko
- Status changed from closed to reopened
- Resolution invalid deleted
So I earlier reported that this error occurred because I had obliterated a patch, but just now it is happening again for the simple reason that there are more than 80 changes in the commit.
I remember that we worked on the darcs change notification a bit at PyCon?. Do those changes effect the way this is done?
I guess my first question is: "There's no other good way to determine what needs to be send to the buildmaster" -- didn't we change the darcs change-notification code so that it sends the full context file to the buildmaster? That sounds like the Right thing to do, to me.
comment:6 Changed 3 years ago by dustin
Yes -- that was in #453, and they have some effect. Right now, darcs_buildbot.py looks for up to the latest 80 changes (as you note), then sends the context for the most recent change.
In principle, I don't see a reason not to raise the maximum number of changes to something larger than 80. Also, too many changes should probably be handled by just taking the most recent N changes, rather than failing completely.
Do you want to work on that?
comment:7 Changed 3 years ago by dustin
- Milestone changed from undecided to 0.7.11
..do you want to work on that for the (upcoming) 0.7.11 release?
comment:10 Changed 2 years ago by zooko
Hi there! :-) I do not want to work on this right now. I predict that I will want to work on it again in the future though. Merry Xmas!
comment:11 Changed 21 months ago by dustin
- Keywords darcs added
zooko, you're effectively the darcs maintainer for Buildbot. Do you have an ETA for this?
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)
Oh, now this same problem happens whenever I add one more patch:
HACL wonwin-mcbrootles-computer:~/playground/pycryptopp/pycryptopp$ time darcs push Pushing to "zooko@dev.allmydata.com:/home/darcs/pycryptopp"... Thu Apr 3 17:26:56 MDT 2008 zooko@zooko.com * setup: add a .darcs-boringfile to enumerate files that we want "darcs whatsnew" to ignore Shall I push this patch? (1/1) [ynWsfvpxdaqjk], or ? for help: y Pulling from "/home/darcs/pycryptopp"... Finished pulling and applying. Submit 20080403232656-92b7f-099475f703dc03386e4bb5c1653e5d37bf57cf8f.gz - done. Finished applying... We have the following patches to push: Thu Apr 3 16:26:56 PDT 2008 zooko@zooko.com * setup: add a .darcs-boringfile to enumerate files that we want "darcs whatsnew" to ignore Push successful. Traceback (most recent call last): File "/home/darcs/bin/darcs_buildbot.py", line 122, in ? changes = findNewChanges() File "/home/darcs/bin/darcs_buildbot.py", line 117, in findNewChanges raise RuntimeError("unable to find our most recent change " RuntimeError: unable to find our most recent change (20080328191356-92b7f-9d836589b1182ab0725a4dc927219346170c4c0d.gz) in the last 80 changes Finished applying... Posthook failed! Apply failed!