[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: History file clobbered by multiple simultaneous exits
From: |
Linda Walsh |
Subject: |
Re: History file clobbered by multiple simultaneous exits |
Date: |
Fri, 19 Jul 2013 02:03:23 -0700 |
User-agent: |
Thunderbird |
Geoff Kuenning wrote:
> But right now, if all three of those shells exit simultaneously--for
> whatever reason--there is a significant probability that the history
> file will end up zero-length. That's not theoretical; I've experienced
> it multiple times. And that's a bug, plain and simple. And I suspect
> that it can be fixed on 99+% of all deployed systems by just adding
> O_EXCL to the open.
----
>
> This would be where I am glaringly guilty of bad writing, because if I
> had written clearly you wouldn't have said that. I am most definitely
> NOT asking for "no overwrite" behavior. I'm just asking for "no
> simultaneous opens for write"--i.e., O_EXCL.
----
A zero length file!?? How might it do that.
Presumably, you are writing your histories in append mode, and from the
bash man page:
If the histappend shell option is enabled (see
the description of shopt under SHELL BUILTIN COMMANDS below), the lines
are appended to the history file, otherwise the history file is over‐
written.
---
If you have histappend set and are still ending up with a zero length
file, I'd say there's a definitely bug there somewhere. It may not be in
bash, but you might try some testing and seeing what happens if you set
the file attribute "append-only" on the file (need to be root to set it)
but that might quickly point at the culprit, as append-only on a file won't let
you open for writing, except in append mode (you can still read it though):
> sudo chattr +a log
> echo "ttt" >log
-bash: log: Operation not permitted
> echo "ttt" >>log
> cat log
ttt
Because of the root-requirement, it's not a solution for this problem.
Bash opening the file in O_APPEND *should* be sufficient. If not, I'd
be more inclined to think it a fault in libc...though bash might be specifying
buffering, perhaps, when maybe it shouldn't?
- History file clobbered by multiple simultaneous exits, geoff, 2013/07/10
- Re: History file clobbered by multiple simultaneous exits, Linda Walsh, 2013/07/11
- Re: History file clobbered by multiple simultaneous exits, Geoff Kuenning, 2013/07/17
- Re: History file clobbered by multiple simultaneous exits, Linda Walsh, 2013/07/18
- Re: History file clobbered by multiple simultaneous exits, Geoff Kuenning, 2013/07/19
- Re: History file clobbered by multiple simultaneous exits,
Linda Walsh <=
- Re: History file clobbered by multiple simultaneous exits, Chet Ramey, 2013/07/19
- Re: History file clobbered by multiple simultaneous exits, Geoff Kuenning, 2013/07/24
- Re: History file clobbered by multiple simultaneous exits, Linda Walsh, 2013/07/24
- Re: History file clobbered by multiple simultaneous exits, Geoff Kuenning, 2013/07/25
- Re: History file clobbered by multiple simultaneous exits, Linda Walsh, 2013/07/25
- Re: History file clobbered by multiple simultaneous exits, Geoff Kuenning, 2013/07/26
- Re: History file clobbered by multiple simultaneous exits, Linda Walsh, 2013/07/26
- Re: History file clobbered by multiple simultaneous exits, Chet Ramey, 2013/07/26
- Re: History file clobbered by multiple simultaneous exits, Geoff Kuenning, 2013/07/27
- Re: History file clobbered by multiple simultaneous exits, Chet Ramey, 2013/07/29