Ivy
  1. Ivy
  2. IVY-624

StackOverflowError in moduleSort

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-alpha-2
    • Fix Version/s: 2.0.0-beta-1
    • Component/s: Core
    • Labels:
      None

      Description

      We are having a stack overflow problem in our build, which we recently switched to alpha2.

      Here is the stack trace:
      java.lang.StackOverflowError
      at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1225)
      at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
      <deleted>
      at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
      Caused by: java.lang.StackOverflowError
      at java.io.FileOutputStream.write(FileOutputStream.java:260)
      <deleted>
      at java.io.PrintStream.println(PrintStream.java:739)
      at org.apache.tools.ant.sdsLogger.printMessage(sdsLogger.java:368)
      at org.apache.tools.ant.sdsLogger.messageLogged(sdsLogger.java:334)
      at org.apache.tools.ant.Project.fireMessageLoggedEvent(Project.java:2009)
      at org.apache.tools.ant.Project.fireMessageLogged(Project.java:2058)
      at org.apache.tools.ant.Project.log(Project.java:367)
      at org.apache.tools.ant.Task.log(Task.java:346)
      at org.apache.ivy.ant.AntMessageImpl.log(AntMessageImpl.java:81)
      at org.apache.ivy.util.Message.debug(Message.java:107)
      at org.apache.ivy.core.sort.ModuleInSort.isSorted(ModuleInSort.java:70)
      at org.apache.ivy.core.sort.ModuleInSort.addToSortList(ModuleInSort.java:138)
      at org.apache.ivy.core.sort.ModuleInSort.addToSortList(ModuleInSort.java:136)
      at org.apache.ivy.core.sort.ModuleInSort.addToSortList(ModuleInSort.java:136)
      at org.apache.ivy.core.sort.ModuleInSort.addToSortList(ModuleInSort.java:136)
      at org.apache.ivy.core.sort.ModuleInSort.addToSortList(ModuleInSort.java:136)
      at org.apache.ivy.core.sort.ModuleInSort.addToSortList(ModuleInSort.java:136)

      The details: a previous project in the overall build had circular dependencies and evictions. Ivy printed warnings when resolving them

      [ivy:resolve] [ SAS | sas.expr.visuals | 9.2.0.20071011130105 ] by [[ SAS | sas.expr.visuals | 9.2.0.20071017131948 ]] in [compile]
      [ivy:resolve] [ SAS | sas.common.framework | 4.2.0.20071011130835 ] by [[ SAS | sas.common.framework | 4.2.0.20071017133619 ]] in [compile]
      [ivy:resolve] [ SAS | sas.rpf | 9.2.0.20071011130107 ] by [[ SAS | sas.rpf | 9.2.0.20071017131949 ]] in [compile]
      [ivy:resolve] [ SAS | sas.graph.esrimap | 9.2.0.20071011131401 ] by [[ SAS | sas.graph.esrimap | 9.2.0.20071017135759 ]] in [compile]
      [ivy:resolve] [ SAS | sas.svc.events | 9.2.0.20071011130331 ] by [[ SAS | sas.svc.events | 9.2.0.20071017132640 ]] in [compile]
      [ivy:resolve] [ SAS | sas.oma.omi | 9.2.0.20071011130103 ] by [[ SAS | sas.oma.omi | 9.2.0.20071017132154 ]] in [compile]
      ---------------------------------------------------------------------

        modules artifacts
      conf number search dwnlded evicted number dwnlded

      ---------------------------------------------------------------------

      compile 184 49 0 37 140 2

      ---------------------------------------------------------------------
      [ivy:resolve]
      [ivy:resolve] :: problems summary ::
      [ivy:resolve] :::: WARNINGS
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.report.config | 9.2.0.20071017132642 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.report.config | 9.2.0.20071017132642 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.report.config | 9.2.0.20071017132642 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.report.config | 9.2.0.20071017132642 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.report.config | 9.2.0.20071017132642 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.entities.util | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.events | 9.2.0.20071017132640 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.storedprocess | 9.2.0.20071017133130 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.iquery.services | 9.2.0.20071017133322 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.iqueryutil | 9.2.0.20071017133503 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]->[ SAS | sas.swing | 9.2.0.20071017132332 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.report.config | 9.2.0.20071017132642 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.connection.platform | 9.2.0.20071017132640 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]->[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.svc.core | 9.2.0.20071017132455 ]>[ SAS | sas.svc.publish | 9.2.0.20071017132941 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.svc.core | 9.2.0.20071017132455 ]
      [ivy:resolve] circular dependency found: [ SAS | sas.swing | 9.2.0.20071017132332 ]>[ SAS | sas.swing.remote | 9.2.0.20071017133644 ]>[ SAS | sas.swing | 9.2.0.20071017132332 ]

      But the build completed with no errors. The build that thrown the exception happened afterwards, and in this particular case, all entries where already in the cache, loaded from the build from a previous project - there were no download messages. I wonder if the loop checks are being done in the first scenario (as dependencies are being downloaded) but not in the second (when they are read from the cache) ?

      I don't have a unit test case ready, as this is part of a really large build. I will post one if I can isolate the problem.

      Here is the code causing the recursion:
      133: private void addToSortList(List sortedList) {
      134: for (Iterator it = loopElements.iterator(); it.hasNext()

      { 135: ModuleInSort moduleInLoop = (ModuleInSort) it.next(); 136: moduleInLoop.addToSortList(sortedList); 137: }

      138: if (!this.isSorted())

      { 139: sortedList.add(module); 140: this.isSorted = true; 141: }

      142: }

      There is no check inlines 134-136 to make sure it is safe to keep the recursion. According to Xavier:

      "I think an infinite recursion will occur "only" if a ModuleInSort can be found among the loopElements of any of the ModuleInSort of its loopElements, recursively. Having a junit test case to reproduce the problem may not be easy, but we can add a guard against this infinite recursion."

      1. graph_ivy624.png
        14 kB
        Jacob Grydholt Jensen
      2. ivy-624.zip
        17 kB
        Jacob Grydholt Jensen

        Activity

        Hide
        Gilles Scokart added a comment -

        Thanks to your test case.

        Show
        Gilles Scokart added a comment - Thanks to your test case.
        Hide
        Jacob Grydholt Jensen added a comment -

        Created a graphviz diagram of the dependencies and thought I would share it with the rest of you. Hopefully, it will make sense to somebody.

        Show
        Jacob Grydholt Jensen added a comment - Created a graphviz diagram of the dependencies and thought I would share it with the rest of you. Hopefully, it will make sense to somebody.
        Hide
        Jacob Grydholt Jensen added a comment -

        I have attached a zipped part of a repository that will reproduce the bug. It is in fact a reproduction of the part of Nascif's dependency chain that misbehaves. The complete dependency chain is:

        mod1 -> mod2
        mod1 -> mod3
        mod1 -> mod4
        mod2 -> mod3
        mod2 -> mod5
        mod3 -> mod5
        mod4 -> mod2
        mod5 -> mod11
        mod6 -> mod2
        mod6 -> mod5
        mod7 -> mod2
        mod7 -> mod3
        mod7 -> mod4
        mod7 -> mod5
        mod7 -> mod8
        mod8 -> mod4
        mod8 -> mod5
        mod9 -> mod10
        mod9 -> mod2
        mod9 -> mod3
        mod9 -> mod4
        mod9 -> mod5
        mod9 -> mod6
        mod9 -> mod7
        mod9 -> mod8
        mod10 -> mod2
        mod10 -> mod4
        mod11 -> mod1
        mod11 -> mod2
        mod11 -> mod3
        mod11 -> mod4
        mod11 -> mod5
        mod11 -> mod9
        mod11 -> mod9

        I haven't looked into reducing the size of the dependencies. The first target was to reproduce the bug.

        In order to reproduce the bug, place the contents of the zip-file under ivy/test/repositories/1 and write a testcase in test/java/org/apache/ivy/core/resolve/ResolveTest:

        public void testCircular-IVY-624() throws Exception {
        ResolveReport report = ivy.resolve(new File("test/repositories/1/ivy-624/mod1/ivys/ivy-1.0.xml")
        .toURL(), getResolveOptions(new String[]

        {"default"}

        ));
        }

        When I test it, the testcase goes on for about a minute spitting out diagnostic messages before it ends in an error. However, I cannot get JUnit to write out the cause of the error, but I assume it is the same StackOverflowException that Nascif observed.

        Show
        Jacob Grydholt Jensen added a comment - I have attached a zipped part of a repository that will reproduce the bug. It is in fact a reproduction of the part of Nascif's dependency chain that misbehaves. The complete dependency chain is: mod1 -> mod2 mod1 -> mod3 mod1 -> mod4 mod2 -> mod3 mod2 -> mod5 mod3 -> mod5 mod4 -> mod2 mod5 -> mod11 mod6 -> mod2 mod6 -> mod5 mod7 -> mod2 mod7 -> mod3 mod7 -> mod4 mod7 -> mod5 mod7 -> mod8 mod8 -> mod4 mod8 -> mod5 mod9 -> mod10 mod9 -> mod2 mod9 -> mod3 mod9 -> mod4 mod9 -> mod5 mod9 -> mod6 mod9 -> mod7 mod9 -> mod8 mod10 -> mod2 mod10 -> mod4 mod11 -> mod1 mod11 -> mod2 mod11 -> mod3 mod11 -> mod4 mod11 -> mod5 mod11 -> mod9 mod11 -> mod9 I haven't looked into reducing the size of the dependencies. The first target was to reproduce the bug. In order to reproduce the bug, place the contents of the zip-file under ivy/test/repositories/1 and write a testcase in test/java/org/apache/ivy/core/resolve/ResolveTest: public void testCircular- IVY-624 () throws Exception { ResolveReport report = ivy.resolve(new File("test/repositories/1/ivy-624/mod1/ivys/ivy-1.0.xml") .toURL(), getResolveOptions(new String[] {"default"} )); } When I test it, the testcase goes on for about a minute spitting out diagnostic messages before it ends in an error. However, I cannot get JUnit to write out the cause of the error, but I assume it is the same StackOverflowException that Nascif observed.

          People

          • Assignee:
            Gilles Scokart
            Reporter:
            Nascif Abousalh-Neto
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development