From: Duy Nguyen <pclouds@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git Mailing List <git@vger.kernel.org>, Jeff King <peff@peff.net>
Subject: Re: [PATCH 3/5] write_file(): introduce an explicit WRITE_FILE_GENTLY request
Date: Tue, 25 Aug 2015 17:08:57 +0700 [thread overview]
Message-ID: <CACsJy8A2sUEcaY2JryTHj3hvES-VDJt_eMgogP5WjVA3FiXDsg@mail.gmail.com> (raw)
In-Reply-To: <xmqqh9no4jhk.fsf@gitster.dls.corp.google.com>
On Tue, Aug 25, 2015 at 1:41 AM, Junio C Hamano <gitster@pobox.com> wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> All callers except for two ask this function to die upon error by
>> passing fatal=1; turn the parameter to a more generic "unsigned flag"
>> bag of bits, introduce an explicit WRITE_FILE_GENTLY bit and change
>> these two callers to pass that bit.
>
> There is a huge iffyness around one of these two oddball callers.
>
>> diff --git a/setup.c b/setup.c
>> index 5f9f07d..718f4e1 100644
>> --- a/setup.c
>> +++ b/setup.c
>> @@ -404,7 +404,7 @@ static void update_linked_gitdir(const char *gitfile, const char *gitdir)
>>
>> strbuf_addf(&path, "%s/gitfile", gitdir);
>> if (stat(path.buf, &st) || st.st_mtime + 24 * 3600 < time(NULL))
>> - write_file(path.buf, 0, "%s\n", gitfile);
>> + write_file(path.buf, WRITE_FILE_GENTLY, "%s\n", gitfile);
>> strbuf_release(&path);
>> }
>
> This comes from 23af91d1 (prune: strategies for linked checkouts,
> 2014-11-30). I cannot tell what the justification is to treat a
> failure to write a gitfile as a non-error event. Just a sloppy
> coding that lets the program go through to its finish, ignoring the
> harm done by possibly corrupting user repository silently?
Failing to write to this file is not a big deal _if_ the file is not
corrupted because of this write operation. But we should not be so
silent about this. If the file content is corrupted and it's old
enough, this checkout may be pruned. I think there's another bug
here... wrong name..
--
Duy
next prev parent reply other threads:[~2015-08-25 10:09 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-20 13:22 Minor builtin 'git am' side-effect SZEDER Gábor
2015-08-20 18:40 ` Junio C Hamano
2015-08-23 5:50 ` [PATCH] am: terminate state files with a newline Paul Tan
2015-08-23 12:30 ` SZEDER Gábor
2015-08-23 19:05 ` Junio C Hamano
2015-08-24 5:13 ` Jeff King
2015-08-24 6:48 ` Junio C Hamano
2015-08-24 6:50 ` Jeff King
2015-08-24 17:09 ` [PATCH 0/5] "am" state file fix with write_file() clean-up Junio C Hamano
2015-08-24 17:09 ` [PATCH 1/5] builtin/am: introduce write_state_*() helper functions Junio C Hamano
2015-08-24 17:09 ` [PATCH 2/5] builtin/am: make sure state files are text Junio C Hamano
2015-08-24 17:09 ` [PATCH 3/5] write_file(): introduce an explicit WRITE_FILE_GENTLY request Junio C Hamano
2015-08-24 18:41 ` Junio C Hamano
2015-08-25 10:08 ` Duy Nguyen [this message]
2015-08-25 10:30 ` [PATCH] setup: update the right file in multiple checkouts Nguyễn Thái Ngọc Duy
2015-08-25 16:38 ` Junio C Hamano
2015-08-31 10:29 ` Duy Nguyen
2015-08-24 17:09 ` [PATCH 4/5] write_file(): do not leave incomplete line at the end Junio C Hamano
2015-08-24 17:09 ` [PATCH 5/5] write_file(): clean up transitional mess of flag words and terminating LF Junio C Hamano
2015-08-24 17:41 ` [PATCH 0/5] "am" state file fix with write_file() clean-up Jeff King
2015-08-24 18:15 ` Junio C Hamano
2015-08-24 18:35 ` Jeff King
2015-08-24 19:57 ` Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 0/6] " Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 1/6] builtin/am: introduce write_state_*() helper functions Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 2/6] builtin/am: make sure state files are text Junio C Hamano
2015-08-24 23:55 ` Jeff King
2015-08-25 16:19 ` Junio C Hamano
2015-08-25 16:47 ` Jeff King
2015-08-25 18:41 ` Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 3/6] write_file(): drop "fatal" parameter Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 4/6] write_file_v(): do not leave incomplete line at the end Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 5/6] write_file(): drop caller-supplied LF from calls to create a one-liner file Junio C Hamano
2015-08-24 20:58 ` [PATCH v2 6/6] write_file(): drop caller-supplied LF from multi-line file Junio C Hamano
2015-08-25 0:02 ` [PATCH v2 0/6] "am" state file fix with write_file() clean-up Jeff King
2015-08-24 23:36 ` [PATCH] am: terminate state files with a newline brian m. carlson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CACsJy8A2sUEcaY2JryTHj3hvES-VDJt_eMgogP5WjVA3FiXDsg@mail.gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).