[darcs-devel] [issue570] darcs: bug in darcs! ... attempt to write an invalid pending!

Tim Barbour bugs at darcs.net
Sun Dec 16 19:01:53 UTC 2007


New submission from Tim Barbour <trb at phasechangeit.com>:

Hi,

darcs just got upset when I re-recorded a patch. I had recorded it without specifying a
dependency on another patch. amend-record does not support --ask-deps, so I used unrecord,
followed by record --ask-deps. It does not seem to have corrupted the repository.

Sometimes it would be nice to be able to record a replace on a whole directory, rather than on
individual files. It would also be nice if amend-record had an --ask-deps option.

The darcs session is below, followed by the contents of _darcs/patches/pending_buggy, and the
output from darcs --exact-version. pending_buggy shows many replaces that were not actually
pending (I checked a snapshot of the repo just before the record, and there was only replace
pending). I can supply the repository if needed.

Tim

trb at elysium /wks/trb/pub/hack/klunk/klunkxx/src OK darcs unrec

Sat Dec 15 14:10:09 PST 2007  trb at phasechangeit.com
  * rename_NiceBase_to_ReferenceCounterBase_to_support_use_by_other_classes
Shall I unrecord this patch? (1/321)  [ynWvpxqadjk], or ? for help: n

Sat Dec 15 14:09:25 PST 2007  trb at phasechangeit.com
  * trivial_removed_superfluous_default_ctor
Shall I unrecord this patch? (2/321)  [ynWvpxqadjk], or ? for help: n

Sat Dec 15 14:08:37 PST 2007  trb at phasechangeit.com
  * pageFaultHandlerTest_now_uses_cxx_interface_instead_of_c
Shall I unrecord this patch? (3/321)  [ynWvpxqadjk], or ? for help: n

Sat Dec 15 14:01:21 PST 2007  trb at phasechangeit.com
  * bugfix_Array_did_not_always_destroy_its_elements_due_to_reliance_on_the_array_form_of_delete
Shall I unrecord this patch? (4/321)  [ynWvpxqadjk], or ? for help: y

Fri Dec 14 14:53:34 PST 2007  trb at phasechangeit.com
  * doc_add_note_about_page_tagging
Shall I unrecord this patch? (5/321)  [ynWvpxqadjk], or ? for help: d
Finished unrecording.
trb at elysium /wks/trb/pub/hack/klunk/klunkxx/src OK darcs rec -a --ask-deps `cat ~/tmp/list` 
Non existent files or directories: "klunkxx/src/klunkxx/doc/modules/Nice/Nice" "klunkxx/src/klunkxx/src/Array.h" "klunkxx/src/klunkxx/src/Array.htt"

darcs failed:  None of the files you specified exist!
trb at elysium /wks/trb/pub/hack/klunk/klunkxx/src ERR popd
trb at elysium /wks/trb/pub/hack/klunk OK darcs rec -a --ask-deps `cat ~/tmp/list`
Recording changes in "klunkxx/doc/modules/Nice/Nice" "klunkxx/src/Array.h" "klunkxx/src/Array.htt":

Sat Dec 15 14:10:09 PST 2007  trb at phasechangeit.com
  * rename_NiceBase_to_ReferenceCounterBase_to_support_use_by_other_classes
Shall I depend on this patch? (1/?)  [ynWvpxqadjkc], or ? for help: y

Sat Dec 15 14:09:25 PST 2007  trb at phasechangeit.com
  * trivial_removed_superfluous_default_ctor
Shall I depend on this patch? (2/?)  [ynWvpxqadjkc], or ? for help: d
What is the patch name? bugfix_Array_did_not_always_destroy_its_elements_due_to_reliance_on_the_array_form_of_delete
Do you want to add a long comment? [yn]n
darcs: bug in darcs!
There was an attempt to write an invalid pending!
If possible, please send the contents of _darcs/patches/pending_buggy
along with a bug report.
Please report this to bugs at darcs.net
If possible include the output of 'darcs --exact-version'.
trb at elysium /wks/trb/pub/hack/klunk ERR darcs check
Applying patch 379 of 379... done.
The repository is consistent!

=== contents of _darcs/patches/pending_buggy

{
move ./klunkxx/src/KernabsPageTableMap.cc ./klunkxx/src/KernabsPageTableDictionary.cc
move ./klunkxx/src/KernabsPageTableMap.h ./klunkxx/src/KernabsPageTableDictionary.h
replace ./klunkxx/src/AllocType.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/AllocType.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/AllocType.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Allocator.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Allocator.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Allocator.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Allocator.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Allocator.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Allocator.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/AllocatorFactory.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/AllocatorFactory.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/AllocatorFactory.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/AllocatorTracker.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/AllocatorTracker.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/AllocatorTracker.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Atomic.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Atomic.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Atomic.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/AtomicUnsigned.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/AtomicUnsigned.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/AtomicUnsigned.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/BiSkipList.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/BiSkipList.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/BiSkipList.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/BiSkipList.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/BiSkipList.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/BiSkipList.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/BiSkipList.htt [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/BiSkipList.htt [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/BiSkipList.htt [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/CString.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/CString.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/CString.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Constructed.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Constructed.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Constructed.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Factory.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Factory.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Factory.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Initialiser.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Initialiser.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Initialiser.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Initialiser.cc [A-Za-z_0-9] ReferenceCounterBase NiceBase
replace ./klunkxx/src/Initialiser.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Initialiser.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Initialiser.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Lien.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Lien.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Lien.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/MallocAllocatorFactory.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/MallocAllocatorFactory.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/MallocAllocatorFactory.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/MallocAllocatorFactory.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/MallocAllocatorFactory.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/MallocAllocatorFactory.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Marker.h [A-Za-z_0-9\-\.] becomes.h assignment.h
replace ./klunkxx/src/Mutex.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Mutex.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Mutex.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Nice.h [A-Za-z_0-9] ReferenceCounterBase NiceBase
replace ./klunkxx/src/Nice.h [A-Za-z_0-9\-\.] becomes.h assignment.h
replace ./klunkxx/src/Nice.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Nice.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Nice.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/NoLeaks.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/NoLeaks.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/NoLeaks.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/NoLeaks.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/NoLeaks.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/NoLeaks.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Pair.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Pair.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Pair.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/RWSemaphore.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/RWSemaphore.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/RWSemaphore.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/RWSemaphore.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/RWSemaphore.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/RWSemaphore.h [A-Za-z_0-9] MarkerConst ConstMarker
hunk ./klunkxx/src/ReferenceCounterBase.cc 1
-//              Copyright (c) 2007 Tim Barbour.
-
-#include "ReferenceCounterBase.h"
-#include "klunk_default_new.h"
-#include "NIL.h"
-
-namespace org { namespace elusion { namespace klunkxx {
-   ReferenceCount* ReferenceCounterBase::defaultReferenceCount_ = NIL(ReferenceCount);
-   Status ReferenceCounterBase::classInit() {
-      defaultReferenceCount_ = new(std::nothrow) ReferenceCount(0);
-      return (defaultReferenceCount_ == NIL(ReferenceCount) ? Status::OutOfMemory : Status::Okay);
-   }
-   void ReferenceCounterBase::classFini() {
-      delete defaultReferenceCount_;
-   }
-}}}
replace ./klunkxx/src/ReferenceCounterBase.cc [A-Za-z_0-9] ReferenceCounterBase NiceBase
rmfile ./klunkxx/src/ReferenceCounterBase.cc
hunk ./klunkxx/src/ReferenceCounterBase.h 1
-//              Copyright (c) 2007 Tim Barbour.
-
-#if !defined(NiceBase_H)
-#define NiceBase_H
-
-#include "NoLeaks.h"
-#include "ReferenceCount.h"
-
-// this class just provides a default reference count (and leak checking) for sub-classes that do reference-counting
-
-namespace org { namespace elusion { namespace klunkxx {
-   class ReferenceCounterBase: private NoLeaks {
-      friend class Initialiser;
-   protected:
-      static ReferenceCount* defaultReferenceCount() { return defaultReferenceCount_; }
-   private:
-      static ReferenceCount* defaultReferenceCount_;
-      static Status classInit();
-      static void classFini();
-   };
-}}}
-
-#endif // !defined(NiceBase_H)
replace ./klunkxx/src/ReferenceCounterBase.h [A-Za-z_0-9] ReferenceCounterBase NiceBase
rmfile ./klunkxx/src/ReferenceCounterBase.h
replace ./klunkxx/src/Semaphore.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Semaphore.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Semaphore.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Semaphore.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Semaphore.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Semaphore.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/SkipList.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/SkipList.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/SkipList.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/SkipList.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/SkipList.htt [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/SkipList.htt [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/SlabAllocatorFactory.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/SlabAllocatorFactory.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/SlabAllocatorFactory.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/SlabAllocatorFactory.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/SlabAllocatorFactory.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/SlabAllocatorFactory.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Status.cc [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Status.cc [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Status.cc [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Status.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Status.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Status.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Status_values.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Status_values.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Status_values.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/Wand.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/Wand.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/Wand.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/becomes.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/becomes.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/construction.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/construction.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/construction.h [A-Za-z_0-9] MarkerConst ConstMarker
replace ./klunkxx/src/extrema.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/extrema.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/klunk_default_new.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/klunk_default_new.h [A-Za-z_0-9] Map Dictionary
hunk ./klunkxx/src/klunk_new.cc 1
-//              Copyright (c) 2007 Tim Barbour.
-
-#include "klunk_new.h"
-
-namespace std {
-#if defined(__KERNEL__)
-   // need to define this in kernel-space, because the kernel does not have the C++ standard library
-   const nothrow_t nothrow = nothrow_t();
-#endif
-}
-
-void operator delete(void * p) throw() {
-   org::elusion::klunkxx::Allocator::freeWhatever(p);
-}
rmfile ./klunkxx/src/klunk_new.cc
replace ./klunkxx/src/klunk_new.h [A-Za-z_0-9] KernabsPageTableMap KernabsPageTableDictionary
replace ./klunkxx/src/klunk_new.h [A-Za-z_0-9] Map Dictionary
replace ./klunkxx/src/klunk_new.h [A-Za-z_0-9] MarkerConst ConstMarker
hunk ./klunkxx/src/klunk_pure_virtual.cc 1
-//              Copyright (c) 2007 Tim Barbour.
-
-#include <assertions.h>
-
-#if defined(__KERNEL__)
-   // need to define this in kernel-space, because the kernel does not have the C++ standard library
-extern "C" { void __cxa_pure_virtual(void) { die("pure virtual function called!\n"); } }
-#endif
rmfile ./klunkxx/src/klunk_pure_virtual.cc
}

=== output from darcs --exact-version

darcs compiled on Sep  9 2007, at 13:06:18
# configured Sun Jun  3 18:53:47 EDT 2007
./configure 

Context:

[TAG 1.0.9
Tommy Pettersson <ptp at lysator.liu.se>**20070603213706]

----------
messages: 2284
nosy: beschmi, droundy, kowey, tommy, trb
status: unread
title: darcs: bug in darcs! ... attempt to write an invalid pending!

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/issue570>
__________________________________


More information about the darcs-devel mailing list