ace-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bram de Kruijff (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACE-371) DeploymentRepository corrupt after bulk update through REST client
Date Fri, 12 Jul 2013 10:31:48 GMT

    [ https://issues.apache.org/jira/browse/ACE-371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13706840#comment-13706840
] 

Bram de Kruijff commented on ACE-371:
-------------------------------------

Seems to be a race condition. It does not happen every time, but when it happens there is
an exception throws while parsing the repository in RepositoryBasedProvider#getVersions()
{code}
java.net.MalformedURLException: no protocol: itembank.urlhandler.rest-0.0.0.CDS000.jar
{code}

Wrt to the "high" dp version; It seems a new deployment version is create for every change.
It is easy to replay this in the webui. Remove an a2f association, recreate it and store.
The version will have been incremented by 2 while, effectively there is no change. In the
context of bulk operations this leads to very large increments and big repositories. 

{code}
DeploymentVersionRepositoryImpl.createDeploymentArtifact(String, Map<String,String>)
line: 117	
StatefulTargetRepositoryImpl.getNecessaryDeploymentArtifacts(String, String) line: 558	
StatefulTargetRepositoryImpl.generateDeploymentVersion(String) line: 662	
StatefulTargetRepositoryImpl.approve(String) line: 469	
StatefulTargetObjectImpl.approve() line: 79	
StatefulTargetObjectImpl.handleStatechangeAutomation() line: 386	
StatefulTargetObjectImpl.setStatus(String, String) line: 377	
StatefulTargetObjectImpl.setStoreState(StatefulTargetObject$StoreState) line: 367	
StatefulTargetObjectImpl.determineStoreState(DeploymentVersionObject) line: 282	
StatefulTargetObjectImpl.determineStatus() line: 223	
StatefulTargetRepositoryImpl.handleEvent(Event) line: 745	
{code}

Wrt to changed events in general I am unclear on how these are synchronized with a commit,
or if they are at all? It seems all changed events are delivered asynchronous and a commit
can happen at any minute. Again, in the context of bulk changes, I think this may be an issue.
                
> DeploymentRepository corrupt after bulk update through REST client
> ------------------------------------------------------------------
>
>                 Key: ACE-371
>                 URL: https://issues.apache.org/jira/browse/ACE-371
>             Project: ACE
>          Issue Type: Bug
>          Components: Repository
>    Affects Versions: 1.0.0
>            Reporter: Bram de Kruijff
>            Priority: Critical
>
> After doing a bulk update on a REST client workspace. The deployment repository seems
to be corrupted. There are a few strange things;
> 1) The initial run succeeds and my target gets a dp with version 1.0.0
> 2) After a second run, that deletes and recreated the artifacts, I get;
>  -> the target reports remote version "undefined", caused by the deployment api reporting
no versions. The server logs reports the stacks below;  
>  -> the webui does report an available that is very high. In my case it increases
by about 150 per run
> It seems that the underlying cause to getVersions being null is in 
> {code}
> 2013.07.11 21:15:57 WARNING - Bundle: org.apache.ace.deployment.servlet - 500:Error getting
available versions. - org.apache.felix.log.LogException: org.apache.ace.deployment.servlet.AceRestException:
500:Error getting available versions.
> 	at org.apache.ace.deployment.servlet.DeploymentServlet.getVersions(DeploymentServlet.java:234)
> 	at org.apache.ace.deployment.servlet.DeploymentServlet.doGet(DeploymentServlet.java:92)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> 	at org.apache.ace.deployment.servlet.DeploymentServlet.service(DeploymentServlet.java:132)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
> 	at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> 	at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> 	at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> 	at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> 2013.07.11 21:15:57 WARNING - Bundle: org.apache.ace.deployment.servlet - Error getting
available versions. - java.io.EOFException
> 	at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:264)
> 	at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:254)
> 	at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:163)
> 	at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78)
> 	at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:90)
> 	at org.apache.ace.deployment.provider.repositorybased.RepositoryBasedProvider.getRepositoryStream(RepositoryBasedProvider.java:419)
> 	at org.apache.ace.deployment.provider.repositorybased.RepositoryBasedProvider.getVersions(RepositoryBasedProvider.java:211)
> 	at org.apache.ace.deployment.servlet.DeploymentServlet.getVersions(DeploymentServlet.java:227)
> 	at org.apache.ace.deployment.servlet.DeploymentServlet.doGet(DeploymentServlet.java:92)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> 	at org.apache.ace.deployment.servlet.DeploymentServlet.service(DeploymentServlet.java:132)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
> 	at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> 	at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> 	at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> 	at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message