[jbosstools-issues] [JBoss JIRA] (JBIDE-12150) Git repository is sometimes corrupted after application creation

Andre Dietisheim (JIRA) jira-events at lists.jboss.org
Fri Jun 8 14:09:17 EDT 2012


     [ https://issues.jboss.org/browse/JBIDE-12150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andre Dietisheim updated JBIDE-12150:
-------------------------------------

    Description: 
Steps to reproduce:

create myapp in tools with openshift in ~/git/myapp
take the git url and clone the app into a separate directory (to simulate other changes)
mkdir temp
cd temp
git clone ssh:<specifichost>/myapp.git/ 
cd myapp
edit README or some other existing file
git commit -m "external change" README
git push
<ton of output>

cd ~/git/myapp
git push will now fail with something like:

$ git push ~/git/appmy
To ssh://b8ab8a46a2984d16b1666f3b172c4199@appmy-man.rhcloud.com/~/git/appmy.git/
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://b8ab8a46a2984d16b1666f3b172c4199@appmy-man.rhcloud.com/~/git/appmy.git/'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.

Thus when trying to publish from tools it should not let you push and it should ask you before pushing with force.

After [https://issues.jboss.org/browse/JBIDE-12138] has been fixed, user is prompted with a dialog that proposes to perform a "push force".
While the operation seems to execute correctly, the following error is reported in the Error Log:

{code}
org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of push command
	at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:156)
	at org.eclipse.egit.core.op.PushOperation.run(PushOperation.java:194)
	at org.jboss.tools.openshift.egit.core.EGitUtils.push(EGitUtils.java:429)
	at org.jboss.tools.openshift.egit.core.EGitUtils.pushForce(EGitUtils.java:418)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressPublishMethod.commitAndPushProject(ExpressPublishMethod.java:237)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressPublishMethod.publishFinish(ExpressPublishMethod.java:80)
	at org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior.publishFinish(DeployableServerBehavior.java:94)
	at org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior.publishFinish(DelegatingServerBehavior.java:147)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:974)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressBehaviour.publish(ExpressBehaviour.java:27)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressBehaviour.publish(ExpressBehaviour.java:34)
	at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3087)
	at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.jgit.errors.TransportException: ssh://7ddb1e3809e54c969a568dd03889e90f@as-minipaas.example.com/~/git/as.git/: Missing tree ecdd261c53993ae777f379662b52ceec35c2f7ed
	at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:186)
	at org.eclipse.jgit.transport.BasePackPushConnection.push(BasePackPushConnection.java:126)
	at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:141)
	at org.eclipse.jgit.transport.Transport.push(Transport.java:1120)
	at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:152)
	... 14 more
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing tree ecdd261c53993ae777f379662b52ceec35c2f7ed
	at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:126)
	at org.eclipse.jgit.revwalk.ObjectWalk.newTreeVisit(ObjectWalk.java:726)
	at org.eclipse.jgit.revwalk.ObjectWalk.nextObject(ObjectWalk.java:378)
	at org.eclipse.jgit.storage.pack.PackWriter.findObjectsToPack(PackWriter.java:1706)
	at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:707)
	at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:670)
	at org.eclipse.jgit.transport.BasePackPushConnection.writePack(BasePackPushConnection.java:265)
	at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:168)
	... 18 more
{code}


Going back to cmdline, it seems that the git repository is corrupted:
{code}
$ git fsck
broken link from  commit 70b2d1cf4705c118e5cac62d0c754df69f09fa32
              to    tree b0e5eab13c7d5ca0d3e5b22418234bfb2b57e91e
missing blob 244cfe40684de36646d426ace17041cd25605cb2
missing tree b0e5eab13c7d5ca0d3e5b22418234bfb2b57e91e
{code}

In the UI you'll see the following:
The *.settings* folder is not tracked, while the *.jsdtscope* within it is added & committed:

!settings-untracked-jsdtscope-committed.png!

  was:
Steps to reproduce:

create myapp in tools with openshift in ~/git/myapp
take the git url and clone the app into a separate directory (to simulate other changes)
mkdir temp
cd temp
git clone ssh:<specifichost>/myapp.git/ 
cd myapp
edit README or some other existing file
git commit -m "external change" README
git push
<ton of output>

cd ~/git/myapp
git push will now fail with something like:

$ git push ~/git/appmy
To ssh://b8ab8a46a2984d16b1666f3b172c4199@appmy-man.rhcloud.com/~/git/appmy.git/
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://b8ab8a46a2984d16b1666f3b172c4199@appmy-man.rhcloud.com/~/git/appmy.git/'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.

Thus when trying to publish from tools it should not let you push and it should ask you before pushing with force.

After [https://issues.jboss.org/browse/JBIDE-12138] has been fixed, user is prompted with a dialog that proposes to perform a "push force".
While the operation seems to execute correctly, the following error is reported in the Error Log:

{code}
org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of push command
	at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:156)
	at org.eclipse.egit.core.op.PushOperation.run(PushOperation.java:194)
	at org.jboss.tools.openshift.egit.core.EGitUtils.push(EGitUtils.java:429)
	at org.jboss.tools.openshift.egit.core.EGitUtils.pushForce(EGitUtils.java:418)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressPublishMethod.commitAndPushProject(ExpressPublishMethod.java:237)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressPublishMethod.publishFinish(ExpressPublishMethod.java:80)
	at org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior.publishFinish(DeployableServerBehavior.java:94)
	at org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior.publishFinish(DelegatingServerBehavior.java:147)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:974)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressBehaviour.publish(ExpressBehaviour.java:27)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressBehaviour.publish(ExpressBehaviour.java:34)
	at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3087)
	at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.jgit.errors.TransportException: ssh://7ddb1e3809e54c969a568dd03889e90f@as-minipaas.example.com/~/git/as.git/: Missing tree ecdd261c53993ae777f379662b52ceec35c2f7ed
	at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:186)
	at org.eclipse.jgit.transport.BasePackPushConnection.push(BasePackPushConnection.java:126)
	at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:141)
	at org.eclipse.jgit.transport.Transport.push(Transport.java:1120)
	at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:152)
	... 14 more
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing tree ecdd261c53993ae777f379662b52ceec35c2f7ed
	at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:126)
	at org.eclipse.jgit.revwalk.ObjectWalk.newTreeVisit(ObjectWalk.java:726)
	at org.eclipse.jgit.revwalk.ObjectWalk.nextObject(ObjectWalk.java:378)
	at org.eclipse.jgit.storage.pack.PackWriter.findObjectsToPack(PackWriter.java:1706)
	at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:707)
	at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:670)
	at org.eclipse.jgit.transport.BasePackPushConnection.writePack(BasePackPushConnection.java:265)
	at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:168)
	... 18 more
{code}


Going back to cmdline, it seems that the git repository is corrupted:
{code}
$ git fsck
broken link from  commit 70b2d1cf4705c118e5cac62d0c754df69f09fa32
              to    tree b0e5eab13c7d5ca0d3e5b22418234bfb2b57e91e
missing blob 244cfe40684de36646d426ace17041cd25605cb2
missing tree b0e5eab13c7d5ca0d3e5b22418234bfb2b57e91e
{code}




    
> Git repository is sometimes corrupted after application creation
> ----------------------------------------------------------------
>
>                 Key: JBIDE-12150
>                 URL: https://issues.jboss.org/browse/JBIDE-12150
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: openshift
>    Affects Versions: 3.3.0.Beta3
>            Reporter: Xavier Coulon
>            Assignee: Xavier Coulon
>            Priority: Blocker
>             Fix For: 3.3.0.CR1
>
>         Attachments: JBIDE-12150.patch, settings-untracked-jsdtscope-committed.png
>
>
> Steps to reproduce:
> create myapp in tools with openshift in ~/git/myapp
> take the git url and clone the app into a separate directory (to simulate other changes)
> mkdir temp
> cd temp
> git clone ssh:<specifichost>/myapp.git/ 
> cd myapp
> edit README or some other existing file
> git commit -m "external change" README
> git push
> <ton of output>
> cd ~/git/myapp
> git push will now fail with something like:
> $ git push ~/git/appmy
> To ssh://b8ab8a46a2984d16b1666f3b172c4199@appmy-man.rhcloud.com/~/git/appmy.git/
> ! [rejected] master -> master (non-fast-forward)
> error: failed to push some refs to 'ssh://b8ab8a46a2984d16b1666f3b172c4199@appmy-man.rhcloud.com/~/git/appmy.git/'
> To prevent you from losing history, non-fast-forward updates were rejected
> Merge the remote changes (e.g. 'git pull') before pushing again. See the
> 'Note about fast-forwards' section of 'git push --help' for details.
> Thus when trying to publish from tools it should not let you push and it should ask you before pushing with force.
> After [https://issues.jboss.org/browse/JBIDE-12138] has been fixed, user is prompted with a dialog that proposes to perform a "push force".
> While the operation seems to execute correctly, the following error is reported in the Error Log:
> {code}
> org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of push command
> 	at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:156)
> 	at org.eclipse.egit.core.op.PushOperation.run(PushOperation.java:194)
> 	at org.jboss.tools.openshift.egit.core.EGitUtils.push(EGitUtils.java:429)
> 	at org.jboss.tools.openshift.egit.core.EGitUtils.pushForce(EGitUtils.java:418)
> 	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressPublishMethod.commitAndPushProject(ExpressPublishMethod.java:237)
> 	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressPublishMethod.publishFinish(ExpressPublishMethod.java:80)
> 	at org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior.publishFinish(DeployableServerBehavior.java:94)
> 	at org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior.publishFinish(DelegatingServerBehavior.java:147)
> 	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:974)
> 	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressBehaviour.publish(ExpressBehaviour.java:27)
> 	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
> 	at org.jboss.tools.openshift.express.internal.core.behaviour.ExpressBehaviour.publish(ExpressBehaviour.java:34)
> 	at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3087)
> 	at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> Caused by: org.eclipse.jgit.errors.TransportException: ssh://7ddb1e3809e54c969a568dd03889e90f@as-minipaas.example.com/~/git/as.git/: Missing tree ecdd261c53993ae777f379662b52ceec35c2f7ed
> 	at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:186)
> 	at org.eclipse.jgit.transport.BasePackPushConnection.push(BasePackPushConnection.java:126)
> 	at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:141)
> 	at org.eclipse.jgit.transport.Transport.push(Transport.java:1120)
> 	at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:152)
> 	... 14 more
> Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing tree ecdd261c53993ae777f379662b52ceec35c2f7ed
> 	at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:126)
> 	at org.eclipse.jgit.revwalk.ObjectWalk.newTreeVisit(ObjectWalk.java:726)
> 	at org.eclipse.jgit.revwalk.ObjectWalk.nextObject(ObjectWalk.java:378)
> 	at org.eclipse.jgit.storage.pack.PackWriter.findObjectsToPack(PackWriter.java:1706)
> 	at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:707)
> 	at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:670)
> 	at org.eclipse.jgit.transport.BasePackPushConnection.writePack(BasePackPushConnection.java:265)
> 	at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:168)
> 	... 18 more
> {code}
> Going back to cmdline, it seems that the git repository is corrupted:
> {code}
> $ git fsck
> broken link from  commit 70b2d1cf4705c118e5cac62d0c754df69f09fa32
>               to    tree b0e5eab13c7d5ca0d3e5b22418234bfb2b57e91e
> missing blob 244cfe40684de36646d426ace17041cd25605cb2
> missing tree b0e5eab13c7d5ca0d3e5b22418234bfb2b57e91e
> {code}
> In the UI you'll see the following:
> The *.settings* folder is not tracked, while the *.jsdtscope* within it is added & committed:
> !settings-untracked-jsdtscope-committed.png!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list