rupa / j2

python version of z, for experimentation
240 stars 23 forks source link

fix race conditions reading/writing datafile #3

Open meonkeys opened 11 years ago

meonkeys commented 11 years ago

Description and repro:

If several processes simultaneously try to read and write the datafile, you may wind up with an empty datafile.

I noticed this when opening up many shells at once with screen -c dev, where dev contains:

source /etc/screenrc
screen -t home
chdir /tmp
screen -t tmp1
screen -t tmp2
screen -t tmp3
screen -t tmp4
screen -t tmp5

In one or more of the screen windows I see

mv: cannot stat `/home/adamm/.j.tmp': No such file or directory

and I notice my datafile has been truncated.

kevinlsw commented 11 years ago

I tried to use this on OSX, but apparently flock isn't available there. Any alternatives?

meonkeys commented 11 years ago

I don't know, sorry. :(

sengaya commented 10 years ago

I tried to use this on OSX, but apparently flock isn't available there. Any alternatives?

Not sure if you really want to use this, but: http://stackoverflow.com/a/13343904/1306877

rupa commented 10 years ago

I'm not really trying to maintain this project. https://github.com/rupa/z/ is actively maintained, has better features, and doesn't suffer from this particular bug (anymore) :)

(Sad that flock isn't available on OSX tho)