Project

General

Profile

Actions

Bug #3129

closed

Migrating a Directive to a new Technique version can lead to EventLog generation error

Added by Vincent MEMBRÉ over 11 years ago. Updated about 9 years ago.

Status:
Released
Priority:
2
Category:
Packaging
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:

Description

It happens when computing the diff produced by the migration process.

- Migrate a Directive to a new Version (upgrade or downgrade)
- The Directive is really migrated in the LDAP and the promises are generated with success
- Compute a diff to produce an event log > Error
No Event log and no commit to configuration repository (as it depends on the event log)

To produce the diff, we use the new Directive spec to determine what had changed and look for their value in the old directive parameters.

If there is new spec parameters, it launches an error (it could not find the value for the directive)
if a spec parameters was removed, the diff is not tracked

That leads to other problem, like changing Technique version of a Directive not going into the configuration repository:

I have a directive based on "Check Generic File Content" Technique that I want to migrate to version 3.1.
When the migration is complete, the new version is correctly set to 3.1 in the LDAP. and promises generated corresponds to version 3.1.
But in the configuration repository, the directive version is set to 3.1.
So when making a restoration based on the git repository, we will always get the old version of the Directive

Related issues 1 (0 open1 closed)

Has duplicate Rudder - Bug #3130: Changes on directives are not tracked by configuration repositoryRejectedVincent MEMBRÉ2013-01-02Actions
Actions #1

Updated by Nicolas PERRON over 11 years ago

  • Target version changed from 2.5.0~beta1 to 2.5.0~rc1
Actions #2

Updated by Vincent MEMBRÉ over 11 years ago

IN fact the bug appeared when the migration to a new version does not work.

The ldap migration worked, but the git commit is not made due to an error

[2013-01-07 17:38:53] ERROR net.liftweb.http.LiftRules - Exception being returned to browser when processing /ajax_request/F939621436644BJYLAB/: Message: java.util.NoSuchElementException: key not found: GENERIC_FILE_CONTENT_CREATE_BOOLEAN
    scala.collection.MapLike$class.default(MapLike.scala:225)
    scala.collection.immutable.HashMap.default(HashMap.scala:38)
    scala.collection.MapLike$class.apply(MapLike.scala:135)
    scala.collection.immutable.HashMap.apply(HashMap.scala:38)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$2.apply(Directive.scala:158)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$2.apply(Directive.scala:157)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
    scala.collection.immutable.List.foreach(List.scala:76)
    scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    scala.collection.immutable.List.map(List.scala:76)
    com.normation.rudder.domain.policies.SectionVal$.buildMonoSectionWithMultivaluedParent$1(Directive.scala:157)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$9$$anonfun$apply$3.apply(Directive.scala:203)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$9$$anonfun$apply$3.apply(Directive.scala:202)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
    scala.collection.immutable.List.foreach(List.scala:76)
    scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    scala.collection.immutable.List.map(List.scala:76)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$9.apply(Directive.scala:202)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$9.apply(Directive.scala:200)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.immutable.Range.foreach(Range.scala:81)
    scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    scala.collection.immutable.Range.map(Range.scala:46)
    com.normation.rudder.domain.policies.SectionVal$.buildMultiSectionWithoutMultiParent$1(Directive.scala:200)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$12.apply(Directive.scala:225)
    com.normation.rudder.domain.policies.SectionVal$$anonfun$12.apply(Directive.scala:223)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
    scala.collection.immutable.List.foreach(List.scala:76)
    scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    scala.collection.immutable.List.map(List.scala:76)
    com.normation.rudder.domain.policies.SectionVal$.buildMonoSectionWithoutMultivaluedParent$1(Directive.scala:223)
    com.normation.rudder.domain.policies.SectionVal$.directiveValToSectionVal(Directive.scala:234)
    com.normation.rudder.repository.ldap.LDAPDiffMapper$$anonfun$modChangeRecords2DirectiveSaveDiff$2$$anonfun$apply$12.apply(LDAPDiffMapper.scala:208)
    com.normation.rudder.repository.ldap.LDAPDiffMapper$$anonfun$modChangeRecords2DirectiveSaveDiff$2$$anonfun$apply$12.apply(LDAPDiffMapper.scala:202)
    com.normation.utils.Control$$anonfun$pipeline$1.apply(Control.scala:109)
    com.normation.utils.Control$$anonfun$pipeline$1.apply(Control.scala:106)
    scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:52)
    scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:61)
    scala.collection.mutable.WrappedArray.foldLeft(WrappedArray.scala:33)
    scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:137)
    scala.collection.mutable.WrappedArray.$div$colon(WrappedArray.scala:33)
    com.normation.utils.Control$.pipeline(Control.scala:106)
    com.normation.rudder.repository.ldap.LDAPDiffMapper$$anonfun$modChangeRecords2DirectiveSaveDiff$2.apply(LDAPDiffMapper.scala:202)
    com.normation.rudder.repository.ldap.LDAPDiffMapper$$anonfun$modChangeRecords2DirectiveSaveDiff$2.apply(LDAPDiffMapper.scala:201)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDiffMapper.modChangeRecords2DirectiveSaveDiff(LDAPDiffMapper.scala:201)      com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20$$anonfun$apply$22$$anonfun$apply$24$$anonfun$apply$25.apply(LDAPDirectiveRepository.scala:202)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20$$anonfun$apply$22$$anonfun$apply$24$$anonfun$apply$25.apply(LDAPDirectiveRepository.scala:201)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20$$anonfun$apply$22$$anonfun$apply$24.apply(LDAPDirectiveRepository.scala:201)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20$$anonfun$apply$22$$anonfun$apply$24.apply(LDAPDirectiveRepository.scala:199)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20$$anonfun$apply$22.apply(LDAPDirectiveRepository.scala:199)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20$$anonfun$apply$22.apply(LDAPDirectiveRepository.scala:197)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20.apply(LDAPDirectiveRepository.scala:197)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$20.apply(LDAPDirectiveRepository.scala:193)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18.apply(LDAPDirectiveRepository.scala:193)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17$$anonfun$apply$18.apply(LDAPDirectiveRepository.scala:183)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17.apply(LDAPDirectiveRepository.scala:183)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1$$anonfun$apply$17.apply(LDAPDirectiveRepository.scala:182)
    net.liftweb.common.Full.flatMap(Box.scala:493)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1.apply(LDAPDirectiveRepository.scala:182)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository$$anonfun$saveDirective$1.apply(LDAPDirectiveRepository.scala:181)
    com.normation.ldap.sdk.LDAPConnectionProvider$$anonfun$flatMap$1.apply(LDAPConnectionProvider.scala:116)
    com.normation.ldap.sdk.LDAPConnectionProvider$$anonfun$flatMap$1.apply(LDAPConnectionProvider.scala:115)
    com.normation.ldap.sdk.LDAPConnectionProvider$class.withCon(LDAPConnectionProvider.scala:153)
    com.normation.ldap.sdk.PooledSimpleAuthConnectionProvider.withCon(LDAPConnectionProvider.scala:315)
    com.normation.ldap.sdk.LDAPConnectionProvider$class.flatMap(LDAPConnectionProvider.scala:115)
    com.normation.ldap.sdk.PooledSimpleAuthConnectionProvider.flatMap(LDAPConnectionProvider.scala:315)
    com.normation.rudder.repository.ldap.LDAPDirectiveRepository.saveDirective(LDAPDirectiveRepository.scala:181)
    com.normation.rudder.web.components.DirectiveEditForm.com$normation$rudder$web$components$DirectiveEditForm$$saveAndDeployDirective(DirectiveEditForm.scala:671)
    com.normation.rudder.web.components.DirectiveEditForm$$anonfun$displayDependenciesPopup$1.apply(DirectiveEditForm.scala:664)
    com.normation.rudder.web.components.DirectiveEditForm$$anonfun$displayDependenciesPopup$1.apply(DirectiveEditForm.scala:664)
    com.normation.rudder.web.components.DirectiveEditForm$$anonfun$showUpdatePopupForm$1.apply(DirectiveEditForm.scala:277)
    com.normation.rudder.web.components.DirectiveEditForm$$anonfun$showUpdatePopupForm$1.apply(DirectiveEditForm.scala:277)
    net.liftweb.http.S$NFuncHolder$$anonfun$apply$5.apply(S.scala:190)
    net.liftweb.http.S$NFuncHolder$$anonfun$apply$5.apply(S.scala:190)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
    scala.collection.immutable.List.foreach(List.scala:76)
    scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    scala.collection.immutable.List.map(List.scala:76)
    net.liftweb.http.S$NFuncHolder.apply(S.scala:190)
    net.liftweb.http.S$ProxyFuncHolder.apply(S.scala:115)
    net.liftweb.http.LiftSession$$anon$3.net$liftweb$http$LiftSession$$anon$$super$apply(LiftSession.scala:1456)
    net.liftweb.http.LiftSession$$anon$3$$anonfun$apply$67$$anonfun$apply$68$$anonfun$apply$69.apply(LiftSession.scala:1456)
    net.liftweb.util.AnyVarTrait$class.doWith(AnyVar.scala:233)
    net.liftweb.util.AnyVar.doWith(AnyVar.scala:89)
    net.liftweb.http.LiftSession$$anon$3$$anonfun$apply$67$$anonfun$apply$68.apply(LiftSession.scala:1455)
    net.liftweb.util.AnyVarTrait$class.doWith(AnyVar.scala:233)
    net.liftweb.util.AnyVar.doWith(AnyVar.scala:89)
    net.liftweb.http.LiftSession$$anon$3$$anonfun$apply$67.apply(LiftSession.scala:1454)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$generateSnapshotRestorer$1$$anonfun$apply$8$$anonfun$apply$9$$anonfun$apply$10$$anonfun$apply$11.apply(Vars.scala:554)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$generateSnapshotRestorer$1$$anonfun$apply$8$$anonfun$apply$9$$anonfun$apply$10.apply(Vars.scala:553)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$generateSnapshotRestorer$1$$anonfun$apply$8$$anonfun$apply$9.apply(Vars.scala:552)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$generateSnapshotRestorer$1$$anonfun$apply$8.apply(Vars.scala:551)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$generateSnapshotRestorer$1.apply(Vars.scala:550)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$generateSnapshotRestorer$1.apply(Vars.scala:550)
    net.liftweb.http.LiftSession$$anon$3.apply(LiftSession.scala:1453)
    net.liftweb.http.S$ProxyFuncHolder.apply(S.scala:115)
    net.liftweb.http.LiftSession$$anonfun$buildFunc$1$2.apply(LiftSession.scala:651)
    net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$39.apply(LiftSession.scala:667)
    net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$39.apply(LiftSession.scala:667)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
    scala.collection.immutable.List.foreach(List.scala:76)
    scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    scala.collection.immutable.List.map(List.scala:76)
    net.liftweb.http.LiftSession$$anonfun$16.apply(LiftSession.scala:667)
    net.liftweb.http.LiftSession$$anonfun$16.apply(LiftSession.scala:656)
    scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:239)
    scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:239)
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
    scala.collection.immutable.List.foreach(List.scala:76)
    scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:239)
    scala.collection.immutable.List.flatMap(List.scala:76)
    net.liftweb.http.LiftSession.runParams(LiftSession.scala:655)
    net.liftweb.http.LiftServlet.liftedTree2$1(LiftServlet.scala:445)
    net.liftweb.http.LiftServlet.handleAjax(LiftServlet.scala:444)
    net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:412)
    net.liftweb.http.LiftServlet$$anonfun$doSession$1$1.apply(LiftServlet.scala:279)
    net.liftweb.http.LiftServlet$$anonfun$doSession$1$1.apply(LiftServlet.scala:279)
    net.liftweb.http.S$class.net$liftweb$http$S$$wrapQuery(S.scala:1376)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$34.apply(S.scala:1524)
    net.liftweb.http.S$class.net$liftweb$http$S$$doAround(S.scala:1305)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.scala:1522)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.net$liftweb$http$S$$_nest2InnerInit(S.scala:1521)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$38$$anonfun$apply$39$$anonfun$apply$40$$anonfun$apply$41.apply(S.scala:1561)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$withReq$1.apply(S.scala:1571)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.withReq(S.scala:1570)
    net.liftweb.http.S$.withReq(S.scala:48)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$38$$anonfun$apply$39$$anonfun$apply$40.apply(S.scala:1560)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$38$$anonfun$apply$39.apply(S.scala:1559)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$38.apply(S.scala:1558)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala:1557)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.net$liftweb$http$S$$_innerInit(S.scala:1556)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$44$$anonfun$apply$45$$anonfun$apply$46$$anonfun$apply$47$$anonfun$apply$48.apply(S.scala:1594)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$44$$anonfun$apply$45$$anonfun$apply$46$$anonfun$apply$47.apply(S.scala:1592)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:613)
    net.liftweb.http.RequestVarHandler$.apply(Vars.scala:515)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$44$$anonfun$apply$45$$anonfun$apply$46.apply(S.scala:1591)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:613)
    net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:528)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$44$$anonfun$apply$45.apply(S.scala:1590)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$44.apply(S.scala:1589)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1.apply(S.scala:1588)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.net$liftweb$http$S$$_init(S.scala:1587)
    net.liftweb.http.S$class.init(S.scala:1190)
    net.liftweb.http.LiftServlet.doSession$1(LiftServlet.scala:278)
    net.liftweb.http.LiftServlet.doService(LiftServlet.scala:288)
    net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:132)
    net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:131)
    net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:344)
    net.liftweb.util.Helpers$.calcTime(Helpers.scala:34)
    net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:363)
    net.liftweb.util.Helpers$.logTime(Helpers.scala:34)
    net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:131)
    net.liftweb.http.LiftServlet.service(LiftServlet.scala:142)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(HTTPProvider.scala:72)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(HTTPProvider.scala:71)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(HTTPProvider.scala:71)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.URLRewriter$.doWith(Req.scala:1253)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply$mcV$sp(HTTPProvider.scala:70)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply(HTTPProvider.scala:70)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply(HTTPProvider.scala:70)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply$mcV$sp(HTTPProvider.scala:66)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply(HTTPProvider.scala:60)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply(HTTPProvider.scala:60)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.provider.HTTPProvider$class.service(HTTPProvider.scala:60)
    net.liftweb.http.LiftFilter.service(LiftServlet.scala:757)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ServletFilterProvider.scala:67)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply(ServletFilterProvider.scala:62)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply(ServletFilterProvider.scala:62)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19.apply(Vars.scala:619)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18.apply(Vars.scala:618)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17.apply(Vars.scala:617)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16.apply(Vars.scala:616)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:615)
    net.liftweb.http.RequestVarHandler$.apply(Vars.scala:515)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:61)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:61)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19.apply(Vars.scala:619)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18.apply(Vars.scala:618)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17.apply(Vars.scala:617)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16.apply(Vars.scala:616)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:615)
    net.liftweb.http.provider.servlet.ServletFilterProvider$class.doFilter(ServletFilterProvider.scala:60)
    net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:757)
    org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
    org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
    org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    org.mortbay.jetty.handler.ContextHandler.__handle(ContextHandler.java:766)
    org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java)
    org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
    org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    org.mortbay.jetty.Server.handle(Server.java:326)
    org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
    org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
    org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
    org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Actions #3

Updated by Vincent MEMBRÉ over 11 years ago

  • Status changed from New to In progress

We found out the origin of that bug :

It happens when computing the diff produced by the migration process.

- Migrate a Directive to a new Version (upgrade or downgrade)
- The Directive is really migrated in the LDAP and the promises are generated with success
- Compute a diff to produce an event log > Error
No Event log and no commit to configuration repository (as it depends on the event log)

To produce the diff, we use the new Directive spec to determine what had changed and look for their value in the old directive parameters.

If there is new spec parameters, it launches an error (it could not find the value for the directive)
if a spec parameters was removed, the diff is not tracked

Actions #4

Updated by François ARMAND over 11 years ago

  • Subject changed from Migrating a Directive to a new Technique version is not tracked by git repository to Migrating a Directive to a new Technique version can lead to EventLog generation error
  • Description updated (diff)
Actions #5

Updated by Vincent MEMBRÉ over 11 years ago

  • Target version changed from 2.5.0~rc1 to 2.4.3

In fact this bug happens also in 2.4, so i fixed it there instead.

Actions #6

Updated by Vincent MEMBRÉ over 11 years ago

  • Status changed from In progress to Pending technical review
Actions #7

Updated by Vincent MEMBRÉ over 11 years ago

  • Assignee changed from Vincent MEMBRÉ to François ARMAND
Actions #8

Updated by Vincent MEMBRÉ over 11 years ago

  • Status changed from Pending technical review to Pending release
  • % Done changed from 0 to 100
Actions #9

Updated by Anonymous over 11 years ago

Actions #12

Updated by Nicolas PERRON about 11 years ago

  • Status changed from Pending release to Released
Actions #13

Updated by Nicolas PERRON about 11 years ago

  • Project changed from Rudder to 34
  • Category deleted (11)
Actions #14

Updated by Benoît PECCATTE about 9 years ago

  • Project changed from 34 to Rudder
  • Category set to Packaging
Actions

Also available in: Atom PDF