{"thread":{"id":"50456","subject":"[Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","startedAt":"2019-02-10T19:08:39Z","lastAt":"2019-02-15T17:51:29Z","messageCount":13,"participants":["Randall S. Becker","Duy Nguyen","Junio C Hamano","Jeff King","Martin Ågren"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"368982","messageId":"000801d4c174$05b76860$11263920$@nexbridge.com","threadId":"50456","inReplyTo":null,"subject":"[Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2019-02-10T19:08:30Z","receivedAt":"2019-02-10T19:08:39Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"Hi All,\n\nI tracked down a breakage in t1404 subtest 52. The line\n\ntest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err\n\nis correctly working, but is reporting a completion 1.\n\nThe verbose output, with diagnostics, is:\n\nerror: 'grep Unable to create '.*packed-refs.lock': File exists err' didn't\nfind a match in:\nerror: Unable to create '/home/git/git/t/trash\ndirectory.t1404-update-ref-errors/.git/packed-refs.lock': File already\nexists.\n\nAnother git process seems to be running in this repository, e.g.\nan editor opened by 'git commit'. Please make sure all processes\nare terminated then try again. If it still fails, a git process\nmay have crashed in this repository earlier:\nremove the file manually to continue.\n\nReported 1 from test_i18ngrep\n\nerr contains (without the double quotes):\n\"error: Unable to create '/home/git/git/t/trash\ndirectory.t1404-update-ref-errors/.git/packed-refs.lock': File already\nexists.\n\nAnother git process seems to be running in this repository, e.g.\nan editor opened by 'git commit'. Please make sure all processes\nare terminated then try again. If it still fails, a git process\nmay have crashed in this repository earlier:\nremove the file manually to continue.\"\n\nWhich means that \n\n! test_have_prereq C_LOCALE_OUTPUT || test_cmp \"$@\"\n\nis completing with a 1. Is that the intent? Any clues?\n\nThanks,\nRandall\n\n"},{"id":"369009","messageId":"CACsJy8Bn+2zY6y_QqCjbB3qWM-F=3d0H5vgWj4az=md2FZ8RhA@mail.gmail.com","threadId":"50456","inReplyTo":"000801d4c174$05b76860$11263920$@nexbridge.com","subject":"Re: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Duy Nguyen","fromEmail":"pclouds@gmail.com","sentAt":"2019-02-11T09:56:33Z","receivedAt":"2019-02-11T09:57:02Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Mon, Feb 11, 2019 at 2:09 AM Randall S. Becker\n<rsbecker@nexbridge.com> wrote:\n>\n> Hi All,\n>\n> I tracked down a breakage in t1404 subtest 52. The line\n>\n> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err\n\nThe message does not match, does it? Here we grep for \"File exists\"\nbut the message you showed says \"File already exists\".\n\n> is correctly working, but is reporting a completion 1.\n>\n> The verbose output, with diagnostics, is:\n>\n> error: 'grep Unable to create '.*packed-refs.lock': File exists err' didn't\n> find a match in:\n> error: Unable to create '/home/git/git/t/trash\n> directory.t1404-update-ref-errors/.git/packed-refs.lock': File already\n> exists.\n>\n> Another git process seems to be running in this repository, e.g.\n> an editor opened by 'git commit'. Please make sure all processes\n> are terminated then try again. If it still fails, a git process\n> may have crashed in this repository earlier:\n> remove the file manually to continue.\n>\n> Reported 1 from test_i18ngrep\n>\n> err contains (without the double quotes):\n> \"error: Unable to create '/home/git/git/t/trash\n> directory.t1404-update-ref-errors/.git/packed-refs.lock': File already\n> exists.\n>\n> Another git process seems to be running in this repository, e.g.\n> an editor opened by 'git commit'. Please make sure all processes\n> are terminated then try again. If it still fails, a git process\n> may have crashed in this repository earlier:\n> remove the file manually to continue.\"\n>\n> Which means that\n>\n> ! test_have_prereq C_LOCALE_OUTPUT || test_cmp \"$@\"\n>\n> is completing with a 1. Is that the intent? Any clues?\n>\n> Thanks,\n> Randall\n>\n\n\n-- \nDuy\n"},{"id":"369012","messageId":"000601d4c213$6c7ee650$457cb2f0$@nexbridge.com","threadId":"50456","inReplyTo":"CACsJy8Bn+2zY6y_QqCjbB3qWM-F=3d0H5vgWj4az=md2FZ8RhA@mail.gmail.com","subject":"RE: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2019-02-11T14:09:32Z","receivedAt":"2019-02-11T14:09:43Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On February 11, 2019 4:57, Duy Nguyen <pclouds@gmail.com> wrote:\n> On Mon, Feb 11, 2019 at 2:09 AM Randall S. Becker\n> <rsbecker@nexbridge.com> wrote:\n> >\n> > Hi All,\n> >\n> > I tracked down a breakage in t1404 subtest 52. The line\n> >\n> > test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\"\n> > err\n> \n> The message does not match, does it? Here we grep for \"File exists\"\n> but the message you showed says \"File already exists\"\n\nSo if I understand this correctly, it means that NonStop is reporting a different textual error that other platforms, but is still sane. Would a fix as follows be appropriate?\n\n@@ -614,7 +614,12 @@ test_expect_success 'delete fails cleanly if packed-refs file is locked' '\n        test_when_finished \"rm -f .git/packed-refs.lock\" &&\n        test_must_fail git update-ref -d $prefix/foo >out 2>err &&\n        git for-each-ref $prefix >actual &&\n-       test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err &&\n+       # Handle a difference in error reporting text on NonStop\n+       if [ `uname` != \"NONSTOP_KERNEL\" ]; then \\\n+               test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err ; \\\n+       else \\\n+               test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File already exists\" err ; \\\n+       fi &&\n        test_cmp unchanged actual\n\nI'm not at all confident that the committers will like a hack like this but it does work.\n\nRegards,\nRandall\n\n"},{"id":"369037","messageId":"xmqqftsughks.fsf@gitster-ct.c.googlers.com","threadId":"50456","inReplyTo":"CACsJy8Bn+2zY6y_QqCjbB3qWM-F=3d0H5vgWj4az=md2FZ8RhA@mail.gmail.com","subject":"Re: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-02-11T21:07:15Z","receivedAt":"2019-02-11T21:07:23Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Duy Nguyen <pclouds@gmail.com> writes:\n\n> On Mon, Feb 11, 2019 at 2:09 AM Randall S. Becker\n> <rsbecker@nexbridge.com> wrote:\n>>\n>> Hi All,\n>>\n>> I tracked down a breakage in t1404 subtest 52. The line\n>>\n>> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err\n>\n> The message does not match, does it? Here we grep for \"File exists\"\n> but the message you showed says \"File already exists\".\n\nHmph, this is from strerror(), right?\n\nThe question is if we should be using grep to match on strerror()\nresult in the C locale.  Do we really care that the reason of the\nfailure is due to EEXIST for this particular test?\n\n>> The verbose output, with diagnostics, is:\n>>\n>> error: 'grep Unable to create '.*packed-refs.lock': File exists err' didn't\n>> find a match in:\n>> error: Unable to create '/home/git/git/t/trash\n>> directory.t1404-update-ref-errors/.git/packed-refs.lock': File already\n>> exists.\n\nOtherwise, perhaps we should loosen the grep pattern, not as a part\nof \"NonStop fix\" topic, but as \"tests should not depend on having a\ncanonical spelling of strerror() result even in C locale\" topic.\n"},{"id":"369043","messageId":"003601d4c253$8208dcc0$861a9640$@nexbridge.com","threadId":"50456","inReplyTo":"xmqqftsughks.fsf@gitster-ct.c.googlers.com","subject":"RE: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2019-02-11T21:48:16Z","receivedAt":"2019-02-11T21:48:27Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On February 11, 2019 16:07, Junio C Hamano wrote:\n> Duy Nguyen <pclouds@gmail.com> writes:\n> \n> > On Mon, Feb 11, 2019 at 2:09 AM Randall S. Becker\n> > <rsbecker@nexbridge.com> wrote:\n> >>\n> >> Hi All,\n> >>\n> >> I tracked down a breakage in t1404 subtest 52. The line\n> >>\n> >> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\"\n> >> err\n> >\n> > The message does not match, does it? Here we grep for \"File exists\"\n> > but the message you showed says \"File already exists\".\n> \n> Hmph, this is from strerror(), right?\n\nYou can reasonably expect that NonStop error messages deviate occasionally.\nScaping from strerror() is not a good plan. A worse plan is to use errno\nvalues, which I can guarantee do not match, but that's just an FYI.\n\n> The question is if we should be using grep to match on strerror() result\nin the\n> C locale.  Do we really care that the reason of the failure is due to\nEEXIST for\n> this particular test?\n> \n> >> The verbose output, with diagnostics, is:\n> >>\n> >> error: 'grep Unable to create '.*packed-refs.lock': File exists err'\n> >> didn't find a match in:\n> >> error: Unable to create '/home/git/git/t/trash\n> >> directory.t1404-update-ref-errors/.git/packed-refs.lock': File\n> >> already exists.\n> \n> Otherwise, perhaps we should loosen the grep pattern, not as a part of\n> \"NonStop fix\" topic, but as \"tests should not depend on having a canonical\n> spelling of strerror() result even in C locale\" topic.\n\nI'm happy not to have the fix I supplied used if there's a better way.\n\n\n"},{"id":"369065","messageId":"20190212002705.GD13301@sigill.intra.peff.net","threadId":"50456","inReplyTo":"xmqqftsughks.fsf@gitster-ct.c.googlers.com","subject":"Re: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2019-02-12T00:27:05Z","receivedAt":"2019-02-12T00:27:09Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Feb 11, 2019 at 01:07:15PM -0800, Junio C Hamano wrote:\n\n> >> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err\n> >\n> > The message does not match, does it? Here we grep for \"File exists\"\n> > but the message you showed says \"File already exists\".\n> \n> Hmph, this is from strerror(), right?\n> \n> The question is if we should be using grep to match on strerror()\n> result in the C locale.\n\nYeah, I agree that's questionable. And I'm mildly surprised it hasn't\nbeen a problem before now.\n\n> Do we really care that the reason of the\n> failure is due to EEXIST for this particular test?\n\nHmm. We care to _some_ degree, since that's the condition we set up for\nmaking sure that update-ref cannot take the lock. But it would probably\nbe fine to just confirm that we failed to take the lock. And there,\nchecking for just \"Unable to create $Q.*packed-refs.lock\" would be\nsufficient.\n\n-Peff\n"},{"id":"369071","messageId":"xmqqpnrxg823.fsf@gitster-ct.c.googlers.com","threadId":"50456","inReplyTo":"20190212002705.GD13301@sigill.intra.peff.net","subject":"Re: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-02-12T00:32:52Z","receivedAt":"2019-02-12T00:32:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> Hmm. We care to _some_ degree, since that's the condition we set up for\n> making sure that update-ref cannot take the lock. But it would probably\n> be fine to just confirm that we failed to take the lock. And there,\n> checking for just \"Unable to create $Q.*packed-refs.lock\" would be\n> sufficient.\n\nYeah, that was what I was getting at.  On top, we could also see\n\"test -e\" after noticing the failure but that probably does not help\nus prove anything.\n"},{"id":"369073","messageId":"20190212003540.GG13301@sigill.intra.peff.net","threadId":"50456","inReplyTo":"xmqqpnrxg823.fsf@gitster-ct.c.googlers.com","subject":"Re: [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2019-02-12T00:35:40Z","receivedAt":"2019-02-12T00:35:44Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Feb 11, 2019 at 04:32:52PM -0800, Junio C Hamano wrote:\n\n> Jeff King <peff@peff.net> writes:\n> \n> > Hmm. We care to _some_ degree, since that's the condition we set up for\n> > making sure that update-ref cannot take the lock. But it would probably\n> > be fine to just confirm that we failed to take the lock. And there,\n> > checking for just \"Unable to create $Q.*packed-refs.lock\" would be\n> > sufficient.\n> \n> Yeah, that was what I was getting at.  On top, we could also see\n> \"test -e\" after noticing the failure but that probably does not help\n> us prove anything.\n\nYeah, I don't think there is any point in \"test -e\". We were the ones\nwho created the file in the first place, so it would be very surprising\nif it weren't there. ;)\n\n-Peff\n"},{"id":"369335","messageId":"xmqqef8a86sr.fsf_-_@gitster-ct.c.googlers.com","threadId":"50456","inReplyTo":"20190212002705.GD13301@sigill.intra.peff.net","subject":"Re* [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-02-14T20:16:20Z","receivedAt":"2019-02-14T20:16:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Mon, Feb 11, 2019 at 01:07:15PM -0800, Junio C Hamano wrote:\n>\n>> >> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err\n>> >\n>> > The message does not match, does it? Here we grep for \"File exists\"\n>> > but the message you showed says \"File already exists\".\n>> \n>> Hmph, this is from strerror(), right?\n>> \n>> The question is if we should be using grep to match on strerror()\n>> result in the C locale.\n>\n> Yeah, I agree that's questionable. And I'm mildly surprised it hasn't\n> been a problem before now.\n>\n>> Do we really care that the reason of the\n>> failure is due to EEXIST for this particular test?\n>\n> Hmm. We care to _some_ degree, since that's the condition we set up for\n> making sure that update-ref cannot take the lock. But it would probably\n> be fine to just confirm that we failed to take the lock. And there,\n> checking for just \"Unable to create $Q.*packed-refs.lock\" would be\n> sufficient.\n\nYup.\n\nAs this came from 6a2a7736 (\"t1404: demonstrate two problems with\nreference transactions\", 2017-09-08), that is as old as Git 2.15,\nI'd throw it into \"not so urgent\" pile.\n\n-- >8 --\nSubject: [PATCH] t1404: do not rely on the exact phrasing of strerror()\n\nNot even in C locale, it is wrong to expect that the exact phrasing\n\"File exists\" is used to show EEXIST.\n\nReported-by: Randall S. Becker <rsbecker@nexbridge.com>\nHelped-by: Duy Nguyen <pclouds@gmail.com>\nHelped-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n\n    I've grepped in t/ directory for the exact phrases of all errno on a\n    recent Debian box, and this was the only hit it found.  There\n    are two other hits but both in the comments.\n\n t/t1404-update-ref-errors.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t1404-update-ref-errors.sh b/t/t1404-update-ref-errors.sh\nindex 51a4f4c0ac..f95a64c911 100755\n--- a/t/t1404-update-ref-errors.sh\n+++ b/t/t1404-update-ref-errors.sh\n@@ -614,7 +614,7 @@ test_expect_success 'delete fails cleanly if packed-refs file is locked' '\n \ttest_when_finished \"rm -f .git/packed-refs.lock\" &&\n \ttest_must_fail git update-ref -d $prefix/foo >out 2>err &&\n \tgit for-each-ref $prefix >actual &&\n-\ttest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\" err &&\n+\ttest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q:\" err &&\n \ttest_cmp unchanged actual\n '\n \n"},{"id":"369338","messageId":"005001d4c4a4$6af097a0$40d1c6e0$@nexbridge.com","threadId":"50456","inReplyTo":"xmqqef8a86sr.fsf_-_@gitster-ct.c.googlers.com","subject":"RE: Re* [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2019-02-14T20:32:29Z","receivedAt":"2019-02-14T20:32:48Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On February 14, 2019 15:16, Junio C Hamano wrote:\n> Jeff King <peff@peff.net> writes:\n> \n> > On Mon, Feb 11, 2019 at 01:07:15PM -0800, Junio C Hamano wrote:\n> >\n> >> >> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File\n> >> >> exists\" err\n> >> >\n> >> > The message does not match, does it? Here we grep for \"File exists\"\n> >> > but the message you showed says \"File already exists\".\n> >>\n> >> Hmph, this is from strerror(), right?\n> >>\n> >> The question is if we should be using grep to match on strerror()\n> >> result in the C locale.\n> >\n> > Yeah, I agree that's questionable. And I'm mildly surprised it hasn't\n> > been a problem before now.\n> >\n> >> Do we really care that the reason of the failure is due to EEXIST for\n> >> this particular test?\n> >\n> > Hmm. We care to _some_ degree, since that's the condition we set up\n> > for making sure that update-ref cannot take the lock. But it would\n> > probably be fine to just confirm that we failed to take the lock. And\n> > there, checking for just \"Unable to create $Q.*packed-refs.lock\" would\n> > be sufficient.\n> \n> Yup.\n> \n> As this came from 6a2a7736 (\"t1404: demonstrate two problems with\n> reference transactions\", 2017-09-08), that is as old as Git 2.15, I'd\nthrow it\n> into \"not so urgent\" pile.\n> \n> -- >8 --\n> Subject: [PATCH] t1404: do not rely on the exact phrasing of strerror()\n> \n> Not even in C locale, it is wrong to expect that the exact phrasing \"File\n> exists\" is used to show EEXIST.\n> \n> Reported-by: Randall S. Becker <rsbecker@nexbridge.com>\n> Helped-by: Duy Nguyen <pclouds@gmail.com>\n> Helped-by: Jeff King <peff@peff.net>\n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> ---\n> \n>     I've grepped in t/ directory for the exact phrases of all errno on a\n>     recent Debian box, and this was the only hit it found.  There\n>     are two other hits but both in the comments.\n> \n>  t/t1404-update-ref-errors.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/t/t1404-update-ref-errors.sh b/t/t1404-update-ref-errors.sh\nindex\n> 51a4f4c0ac..f95a64c911 100755\n> --- a/t/t1404-update-ref-errors.sh\n> +++ b/t/t1404-update-ref-errors.sh\n> @@ -614,7 +614,7 @@ test_expect_success 'delete fails cleanly if packed-\n> refs file is locked' '\n>  \ttest_when_finished \"rm -f .git/packed-refs.lock\" &&\n>  \ttest_must_fail git update-ref -d $prefix/foo >out 2>err &&\n>  \tgit for-each-ref $prefix >actual &&\n> -\ttest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\"\n> err &&\n> +\ttest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q:\" err &&\n>  \ttest_cmp unchanged actual\n>  '\n\nThis passes on NonStop. Thanks.\n\nRandall\n\n"},{"id":"369343","messageId":"xmqqva1m6ph4.fsf@gitster-ct.c.googlers.com","threadId":"50456","inReplyTo":"005001d4c4a4$6af097a0$40d1c6e0$@nexbridge.com","subject":"Re: Re* [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-02-14T21:15:51Z","receivedAt":"2019-02-14T21:15:58Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Randall S. Becker\" <rsbecker@nexbridge.com> writes:\n\n> On February 14, 2019 15:16, Junio C Hamano wrote:\n>> Jeff King <peff@peff.net> writes:\n>> \n>> > On Mon, Feb 11, 2019 at 01:07:15PM -0800, Junio C Hamano wrote:\n>> >\n>> >> >> test_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File\n>> >> >> exists\" err\n>> >> >\n>> >> > The message does not match, does it? Here we grep for \"File exists\"\n>> >> > but the message you showed says \"File already exists\".\n>> >>\n>> >> Hmph, this is from strerror(), right?\n>> >>\n>> >> The question is if we should be using grep to match on strerror()\n>> >> result in the C locale.\n>> >\n>> > Yeah, I agree that's questionable. And I'm mildly surprised it hasn't\n>> > been a problem before now.\n>> >\n>> >> Do we really care that the reason of the failure is due to EEXIST for\n>> >> this particular test?\n>> >\n>> > Hmm. We care to _some_ degree, since that's the condition we set up\n>> > for making sure that update-ref cannot take the lock. But it would\n>> > probably be fine to just confirm that we failed to take the lock. And\n>> > there, checking for just \"Unable to create $Q.*packed-refs.lock\" would\n>> > be sufficient.\n>> \n>> Yup.\n>> \n>> As this came from 6a2a7736 (\"t1404: demonstrate two problems with\n>> reference transactions\", 2017-09-08), that is as old as Git 2.15, I'd\n> throw it\n>> into \"not so urgent\" pile.\n>> \n>> -- >8 --\n>> Subject: [PATCH] t1404: do not rely on the exact phrasing of strerror()\n>> \n>> Not even in C locale, it is wrong to expect that the exact phrasing \"File\n>> exists\" is used to show EEXIST.\n>> \n>> Reported-by: Randall S. Becker <rsbecker@nexbridge.com>\n>> Helped-by: Duy Nguyen <pclouds@gmail.com>\n>> Helped-by: Jeff King <peff@peff.net>\n>> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n>> ---\n>> \n>>     I've grepped in t/ directory for the exact phrases of all errno on a\n>>     recent Debian box, and this was the only hit it found.  There\n>>     are two other hits but both in the comments.\n>> \n>>  t/t1404-update-ref-errors.sh | 2 +-\n>>  1 file changed, 1 insertion(+), 1 deletion(-)\n>> \n>> diff --git a/t/t1404-update-ref-errors.sh b/t/t1404-update-ref-errors.sh\n> index\n>> 51a4f4c0ac..f95a64c911 100755\n>> --- a/t/t1404-update-ref-errors.sh\n>> +++ b/t/t1404-update-ref-errors.sh\n>> @@ -614,7 +614,7 @@ test_expect_success 'delete fails cleanly if packed-\n>> refs file is locked' '\n>>  \ttest_when_finished \"rm -f .git/packed-refs.lock\" &&\n>>  \ttest_must_fail git update-ref -d $prefix/foo >out 2>err &&\n>>  \tgit for-each-ref $prefix >actual &&\n>> -\ttest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q: File exists\"\n>> err &&\n>> +\ttest_i18ngrep \"Unable to create $Q.*packed-refs.lock$Q:\" err &&\n>>  \ttest_cmp unchanged actual\n>>  '\n>\n> This passes on NonStop. Thanks.\n>\n> Randall\n\nThanks.\n"},{"id":"369373","messageId":"CAN0heSooOiJkkfr=sKn+dkMmU9knabeTnY90EJyEu2fNT8XMzw@mail.gmail.com","threadId":"50456","inReplyTo":"xmqqef8a86sr.fsf_-_@gitster-ct.c.googlers.com","subject":"Re: Re* [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Martin Ågren","fromEmail":"martin.agren@gmail.com","sentAt":"2019-02-15T06:08:45Z","receivedAt":"2019-02-15T06:09:01Z","isPatch":false,"sender":{"key":"martin.agren@gmail.com","avatar":null},"body":"On Fri, 15 Feb 2019 at 03:13, Junio C Hamano <gitster@pobox.com> wrote:\n>\n> Subject: [PATCH] t1404: do not rely on the exact phrasing of strerror()\n>\n> Not even in C locale, it is wrong to expect that the exact phrasing\n> \"File exists\" is used to show EEXIST.\n\ns/Not even/Even/? Or s/wrong to expect that/portable to rely on/, or\nsomething?\n\n\nMartin\n"},{"id":"369398","messageId":"xmqqwom1549w.fsf@gitster-ct.c.googlers.com","threadId":"50456","inReplyTo":"CAN0heSooOiJkkfr=sKn+dkMmU9knabeTnY90EJyEu2fNT8XMzw@mail.gmail.com","subject":"Re: Re* [Breakage] 2.20.0-rc0 t1404: test_i18ngrep reports 1 instead of 0 on NonStop in one case","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-02-15T17:51:23Z","receivedAt":"2019-02-15T17:51:29Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Martin Ågren <martin.agren@gmail.com> writes:\n\n> On Fri, 15 Feb 2019 at 03:13, Junio C Hamano <gitster@pobox.com> wrote:\n>>\n>> Subject: [PATCH] t1404: do not rely on the exact phrasing of strerror()\n>>\n>> Not even in C locale, it is wrong to expect that the exact phrasing\n>> \"File exists\" is used to show EEXIST.\n>\n> s/Not even/Even/? Or s/wrong to expect that/portable to rely on/, or\n> something?\n\nThanks for catching. Negation is not my forté.\n\n"}]}