* Git update delay
@ 2009-04-20 21:37 Todd Charron
0 siblings, 0 replies; only message in thread
From: Todd Charron @ 2009-04-20 21:37 UTC (permalink / raw)
To: git
Hi all,
I'm trying to track down a potential git problem we've been having at my
office. Recently, we deployed a branch of code using git. We deployed this
code to a virtual machine running openvz with simfs as the filesystem (the
underlying filesystem on the host machine is ext3 with the noatime option
on). Kernel is 2.6.18-028stab053-vzserver-hammer. git version 1.6.0.5.
A git checkout of the branch was done and completed. Upon returning to the
bash prompt an rsync was done to sync the files out to other servers.
However, what went out, was not the version of code that was deployed, but
only some of the changesets that should have been there.
The machines also rsync via a cron every night and the evening sync sent out
the correct code with no human intervention or rechecking out of code, so it
appears as if once the git pull was completed (returned to the prompt) the
changes had not been fully applied to the filesystem. The sync then sync'd
out an incomplete version of the code, which would have later finished
updating and corrected itself on the nightly sync.
Unfortunately, due to the second sync I can no longer prove this as all the
code is no up to date. However, we have recently seen other instances that
indicate a similar delay in the updates taking place on the file system.
Example 1:
user@dev:~/fol3$ git add modules/fol/local/MgntAuth.pm
user@dev:~/fol3$ git commit -m "fix auth closure bug"
Created commit 55ba2c9: fix auth closure bug
1 files changed, 32 insertions(+), 29 deletions(-)
user@dev:~/fol3$ git push
Password:
Password:
Counting objects: 11, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 859 bytes, done.
Total 6 (delta 5), reused 0 (delta 0)
To ssh://cvs00t/clients/fol.git/central_git_repo/
ba2e848..55ba2c9 ticket_128766 -> ticket_128766
user@dev:~/fol3$ git checkout qa_mar2009_1
M modules/fol/local/FOL3_catalog_indices.pm
M modules/fol/local/FOL3_indices.pm
M www/fol/mgnt/Mgnt_indices_custom.html
Switched to branch "qa_mar2009_1"
user@dev:~/fol3$ git pull origin ticket_128766
Password:
From ssh://cvs00t/clients/fol.git/central_git_repo
* branch ticket_128766 -> FETCH_HEAD
error: Entry 'modules/fol/local/MgntAuth.pm' not uptodate. Cannot merge.
fatal: merging of trees e2b6fe42a504049333ef73b887554cf6afc8aedc and
7c06608c2a7351522f0f357eacd982168b2179da failed
Merge with strategy recursive failed.
user@dev:~/fol3$ git status
# On branch qa_mar2009_1
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: modules/fol/local/FOL3_catalog_indices.pm
# modified: modules/fol/local/FOL3_indices.pm
# modified: www/fol/mgnt/Mgnt_indices_custom.html
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bin/fol/#test.txt#
# modules/fol/local/#FOL3_indices.pm#
# update-cache-scripts
# www/fol/mgnt/Mgnt_index_custom.html.new
no changes added to commit (use "git add" and/or "git commit -a")
user@dev:~/fol3$ git pull origin ticket_128766
Password:
From ssh://cvs00t/clients/fol.git/central_git_repo
* branch ticket_128766 -> FETCH_HEAD
Merge made by recursive.
modules/fol/local/MgntAuth.pm | 61 +++++++++++++++++++++-------------------
1 files changed, 32 insertions(+), 29 deletions(-)
user@dev:~/fol3$ git push
Password:
Counting objects: 13, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 524 bytes, done.
Total 5 (delta 4), reused 0 (delta 0)
To ssh://cvs00t/clients/fol.git/central_git_repo/
94cd7dc..08f276d qa_mar2009_1 -> qa_mar2009_1
Here, the only thing that changes between the first pull which fails and the
second which succeeds is time. No other user is pushing or pulling changes
at this time. The developer just walked away, came back and tried it again
and it worked...
Example 2:
user@dev:~/fol3$ git commit -m "remove warning"
Created commit b1dd989: remove warning
1 files changed, 0 insertions(+), 1 deletions(-)
user@dev:~/fol3$ git push
Password:
Password:
Counting objects: 11, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 484 bytes, done.
Total 6 (delta 5), reused 0 (delta 0)
To ssh://cvs00t/clients/fol.git/central_git_repo/
55ba2c9..b1dd989 ticket_128766 -> ticket_128766
user@dev:~/fol3$ git checkout qa_mar2009_1
git pull origin modules/fol/local/Order_system.pm
Switched to branch "qa_mar2009_1"
user@dev:~/fol3$ git pull origin ticket_128766
Password:
From ssh://cvs00t/clients/fol.git/central_git_repo
* branch ticket_128766 -> FETCH_HEAD
fatal: unable to create '.git/index.lock': File exists
Merge with strategy recursive failed.
Here we see an index.lock file still existing when it should not. Again,
waiting a minute or two and trying again resolved the issue. These were all
done on a local filesystem (no-NFS) with one user in isolation.
These instances seem to happen at random and we have been unable to
consistently reproduce them. In all cases, just waiting a minute or two
before running the commands again seems to resolve the issue.
I can't seem to determine whether this is a git issue or a filesystem issue
and if so, what is the cause. Can anyone think of any reason why this would
happen?
Thanks!
Todd
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-04-20 22:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-20 21:37 Git update delay Todd Charron
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).