darcs

Issue 1873 apply => failed to read patch (NewSet related?)

Title apply => failed to read patch (NewSet related?)
Priority bug Status resolved
Milestone 2.5.0 Resolved in 2.5.0
Superseder Nosy List dmitry.kurochkin, kowey, mornfall, tux_rocker
Assigned To kowey
Topics Regression

Created on 2010-06-10.09:19:52 by kowey, last changed 2010-08-07.19:01:04 by mornfall.

Files
File name Uploaded Type Edit Remove
bad-ctx kowey, 2010-08-03.21:58:31 application/octet-stream
better-message-when-skipping-already-decided-patches.dpatch galbolle, 2010-06-10.08:32:10 text/x-darcs-patch
good-ctx kowey, 2010-08-03.21:58:07 application/octet-stream
Messages
msg11351 (view) Author: kowey Date: 2010-06-10.09:19:51
This is a regression from darcs 2.4.
I suspect NewSet may be the culprit here.

I tried to apply patch275 to my copy of darcs (see bad-ctx)
and it told me this:

darcs: failed to read patch:
Tue Jun  8 02:09:02 BST 2010  builes.adolfo@googlemail.com
  * Add test for issue1210: global cache gets recorded in _darcs/prefs/sources
Patch not stored in patch bundle:
Tue Jun  8 02:09:02 BST 2010  builes.adolfo@googlemail.com
  * Add test for issue1210: global cache gets recorded in _darcs/prefs/sources

I then pulled 4 more patches and it was fine.

No problem either way with Darcs 2.4.4.

This appears to be release critical.
Dog food.  Om nom nom nom... (choke choke, wheeze...)

Petr: would you be the best person to investigate?  (sorry!)

-- 
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
msg11352 (view) Author: kowey Date: 2010-06-10.09:26:43
Hmm, actually maybe the best thing would be for me to try and boil this
down into a test case first (oh and I forgot the attachments, on their way)
Attachments
msg11460 (view) Author: mornfall Date: 2010-06-16.16:06:56
Eric Kow <kowey@darcs.net> writes:

> This is a regression from darcs 2.4.
> I suspect NewSet may be the culprit here.
>
> I tried to apply patch275 to my copy of darcs (see bad-ctx)
> and it told me this:
>
> darcs: failed to read patch:
> Tue Jun  8 02:09:02 BST 2010  builes.adolfo@googlemail.com
>   * Add test for issue1210: global cache gets recorded in _darcs/prefs/sources
> Patch not stored in patch bundle:
> Tue Jun  8 02:09:02 BST 2010  builes.adolfo@googlemail.com
>   * Add test for issue1210: global cache gets recorded in _darcs/prefs/sources
>
> I then pulled 4 more patches and it was fine.
Was the above patch in the repository or it got pulled among those 4?
I.e. this could be either a bad error message (getting "failed to read
patch" instead of "can't apply since you are missing patches"), or it
could be a completely different bug somewhere else. But I'd rather first
confirm or rule out this. Thanks.

> No problem either way with Darcs 2.4.4.
Would that mean that the bundle applies OK on the repository without
these 4 patches using darcs 2.4?

> This appears to be release critical.
In which case, yes, this is RC. But probably not an alpha blocker...

Yours,
   Petr.
msg11461 (view) Author: kowey Date: 2010-06-16.16:20:24
On Wed, Jun 16, 2010 at 18:09:58 +0200, Petr Rockai wrote:
> > Tue Jun  8 02:09:02 BST 2010  builes.adolfo@googlemail.com
> >   * Add test for issue1210: global cache gets recorded in _darcs/prefs/sources
> >
> > I then pulled 4 more patches and it was fine.
> Was the above patch in the repository or it got pulled among those 4?

No, the 4 (actually, the only difference between {bad,good}-cxt were

[Fix typo in the BSD version of date arithmetic (testsuite).
Petr Rockai <me@mornfall.net>**20100608062802
 Ignore-this: fdfb7aef46966a18edc2f7e93c0118f0
] 

[Let's try to work with BSD date as well.
Petr Rockai <me@mornfall.net>**20100608061631
 Ignore-this: 628e6f15e8f8d6801a3f1dd6c8605e17
] 

[Fix a race condition in the match-date test.
Petr Rockai <me@mornfall.net>**20100607223257
 Ignore-this: 4c6452bfdee6c03eb95abcd646add90f
] 

[Skip issue1763 test (non-ascii filenames) on win32.
Petr Rockai <me@mornfall.net>**20100607185116
 Ignore-this: f4d344f31111a9a1f3a5d3257d73eae
] 

(I think I *also* get this error message due to encoding shenanigans in
issue1803.  If I recall correctly, this particular instance was not an example
of it, but maybe a reproducer should check.  In darcs-2.4.4, naturally, you'd
instead get a bug in get_extra instead)

-- 
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
msg11704 (view) Author: mornfall Date: 2010-07-09.12:47:22
I have looked into this a bit and I suspect that these cases only happen 
when an expectedly-common patch is not actually common.

Anyway, what happens is that a patch in the context of the bundle, which 
is expected to be common, is actually not, since it is not present in 
the repository. Due to this, findCommonAndUncommon tries to commute it 
out into one of the uncommon branches, but this will of course fail, 
since commute needs the physical patch which is nowhere to be found.

The original gcau code had explicit handling of missing patches built 
into it so it could produce nicer error messages. I haven't figured a 
good way to restore those errors, though (yet).
msg11764 (view) Author: mornfall Date: 2010-07-16.10:57:11
I nominate this for a version bump. The only thing I can think of that 
could alleviate this in 2.5 is to catch the "missing patch" exeptions 
and when printing them, note that "Maybe you are missing some patches 
required by this bundle"? For 2.6, I'd probably refactor how scanBundle 
works, by explicitly splitting the return into a FL of patches and 
RL/PatchSet of the context, which would make proper error reporting much 
easier (presumably).
msg11919 (view) Author: tux_rocker Date: 2010-08-02.19:39:57
I'll kick this down to the 2.5 milestone again. It's a common problem
and the error message that a branch-2.5 darcs gives you is horrible. The
patch darcs complains it can't find is not the patch causing the problem
and the message gives the user no clue as to what is really going on.
msg11938 (view) Author: kowey Date: 2010-08-03.21:58:07
I've managed to reproduce this.  There was some trouble because the
context files I uploaded both had patch212 in them (which is not in
HEAD).  Uploading better versions of good-ctx and bad-ctx to replace
them now.

darcs get --lazy --context good-ctx http://darcs.net G
darcs get --lazy --context bad-ctx http://darcs.net B
darcs apply --repo G
better-message-when-skipping-already-decided-patches.dpatch
darcs apply --repo B
better-message-when-skipping-already-decided-patches.dpatch

Boom.  I'll link the patch file from patch275 for your convenience.
Hopefully an attempt to minimise this later
Attachments
msg11939 (view) Author: kowey Date: 2010-08-03.22:10:44
Wait, actually, maybe I haven't reproduced this quite.  It does not
apply cleanly with Darcs 2.4

Also, Reinier why do we think this is a bug again?

It seems perfectly normal that Darcs does not know how to apply patches
with a context that exceeds ours (regardless of how related the patch is
to the one we want to apply).  I don't understand why Darcs-2.4 was
actually letting us apply this now...
msg12035 (view) Author: mornfall Date: 2010-08-07.18:57:02
The following patch updated issue issue1873 with status=resolved;resolvedin=2.8.0 HEAD

* Resolve issue1873: give nicer error when apply fails due to missing patches. 
Ignore-this: b3ddfddeaa7e089717256aa2344ba78c
msg12036 (view) Author: mornfall Date: 2010-08-07.19:01:03
The following patch updated issue issue1873 with status=resolved;resolvedin=2.5.0 CURRENT

* Resolve issue1873: give nicer error when apply fails due to missing patches. 
Ignore-this: b3ddfddeaa7e089717256aa2344ba78c
History
Date User Action Args
2010-06-10 09:19:52koweycreate
2010-06-10 09:20:57koweysetpriority: bug
status: unknown -> needs-reproduction
topic: + Regression, Target-2.5
assignedto: mornfall
2010-06-10 09:26:44koweysetfiles: + bad-ctx
assignedto: mornfall -> kowey
messages: + msg11352
2010-06-10 09:26:57koweysetfiles: + good-ctx
2010-06-15 20:52:21adminsetmilestone: 2.5.0
2010-06-15 21:00:17adminsettopic: - Target-2.5
2010-06-16 16:07:02mornfallsetmessages: + msg11460
2010-06-16 16:20:24koweysetmessages: + msg11461
2010-07-09 12:47:24mornfallsetmessages: + msg11704
2010-07-16 10:57:13mornfallsetmessages: + msg11764
2010-07-25 14:31:08tux_rockersetmilestone: 2.5.0 -> 2.8.0
2010-08-02 19:37:14tux_rockerlinkissue1901 superseder
2010-08-02 19:39:58tux_rockersetnosy: + tux_rocker
messages: + msg11919
milestone: 2.8.0 -> 2.5.0
2010-08-03 21:58:09koweysetfiles: + good-ctx
messages: + msg11938
2010-08-03 21:58:15koweysetfiles: - good-ctx
2010-08-03 21:58:21koweysetfiles: - bad-ctx
2010-08-03 21:58:32koweysetfiles: + bad-ctx
2010-08-03 22:00:28adminsetfiles: + better-message-when-skipping-already-decided-patches.dpatch
2010-08-03 22:10:45koweysetmessages: + msg11939
2010-08-07 18:57:03mornfallsetstatus: needs-reproduction -> resolved
messages: + msg12035
resolvedin: 2.8.0
2010-08-07 19:01:04mornfallsetmessages: + msg12036
resolvedin: 2.8.0 -> 2.5.0