Ticket #223 (reopened defect)

Opened 2 years ago

Last modified 2 months ago

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

Changed 2 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!

Changed 2 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.

Changed 2 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?

Changed 18 months ago by dustin

  • status changed from new to closed
  • resolution set to invalid

Changed 15 months 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.

Changed 15 months 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?

Changed 14 months 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?

Changed 13 months ago by dustin

  • milestone changed from 0.7.11 to 0.7.12

Changed 7 months ago by dustin

  • milestone changed from 0.7.12 to 0.8.+

zooko?

Changed 7 months 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!

Changed 2 months ago by dustin

  • keywords darcs added

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

Note: See TracTickets for help on using tickets.