Opened 10 years ago

Last modified 3 years ago

#223 reopened defect

darcs_buildbot.py: RuntimeError: unable to find our most recent change in the last 80 changes

Reported by: zooko Owned by: zooko
Priority: patches-accepted Milestone: 0.9.+
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 (15)

comment:1 Changed 10 years ago by zooko

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!

comment:2 Changed 10 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 10 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:4 Changed 9 years ago by dustin

  • Resolution set to invalid
  • Status changed from new to closed

comment:5 Changed 9 years ago by zooko

  • Resolution invalid deleted
  • Status changed from closed to reopened

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 9 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 9 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:8 Changed 8 years ago by dustin

  • Milestone changed from 0.7.11 to 0.7.12

comment:9 Changed 8 years ago by dustin

  • Milestone changed from 0.7.12 to 0.8.+

zooko?

comment:10 Changed 8 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 8 years ago by dustin

  • Keywords darcs added

zooko, you're effectively the darcs maintainer for Buildbot. Do you have an ETA for this?

comment:12 Changed 6 years ago by tom.prince

  • Summary changed from RuntimeError: unable to find our most recent change in the last 80 changes to darcs_buildbot.py: RuntimeError: unable to find our most recent change in the last 80 changes

comment:13 Changed 6 years ago by tom.prince

  • Priority changed from major to minor

comment:14 Changed 5 years ago by dustin

  • Priority changed from minor to patches-accepted

comment:15 Changed 3 years ago by dustin

  • Milestone changed from 0.8.+ to 0.9.+

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.