4 Replies Latest reply: Jan 24, 2013 9:35 AM by 980805 RSS

    Endeca - Error Baseline Update - AppControlException: Error executing valid

    980805
      Hi everyone, I got an issue with Endeca that is driving me crazy.

      I m trying to run the baseline update service with my own pipeline and this error comes out:

      ============================Log of my service========================================================
      Dec 18, 2012 6:12:26 PM com.endeca.soleng.eac.toolkit.script.Script runBeanShellScript
      SEVERE: Batch component 'Forge' failed. Refer to component logs in D:\Endeca\apps\Australia\config\script\..\..\.\logs\forges\Forge on host ITLHost.
      Occurred while executing line 30 of valid BeanShell script:
      [[

      27|
      28| // archive logs and run ITL
      29| Forge.archiveLogDir();
      30| Forge.run();
      31| Dgidx.archiveLogDir();
      32| Dgidx.run();
      33|

      ]]

      Dec 18, 2012 6:12:26 PM com.endeca.soleng.eac.toolkit.Controller execute
      SEVERE: Caught an exception while invoking method 'run' on object 'BaselineUpdate'. Releasing locks.
      java.lang.reflect.InvocationTargetException
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at com.endeca.soleng.eac.toolkit.Controller.invokeRequestedMethod(Controller.java:925)
           at com.endeca.soleng.eac.toolkit.Controller.execute(Controller.java:210)
           at com.endeca.soleng.eac.toolkit.Controller.main(Controller.java:89)
      Caused by: com.endeca.soleng.eac.toolkit.exception.AppControlException: Error executing valid BeanShell script.
           at com.endeca.soleng.eac.toolkit.script.Script.runBeanShellScript(Script.java:134)
           at com.endeca.soleng.eac.toolkit.script.Script.run(Script.java:82)
           ... 7 more
      Caused by: com.endeca.soleng.eac.toolkit.exception.EacComponentControlException: Batch component 'Forge' failed. Refer to component logs in D:\Endeca\apps\Australia\config\script\..\..\.\logs\forges\Forge on host ITLHost.
           at com.endeca.soleng.eac.toolkit.component.BatchComponent.run(BatchComponent.java:79)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at bsh.Reflect.invokeMethod(Unknown Source)
           at bsh.Reflect.invokeObjectMethod(Unknown Source)
           at bsh.Name.invokeMethod(Unknown Source)
           at bsh.BSHMethodInvocation.eval(Unknown Source)
           at bsh.BSHPrimaryExpression.eval(Unknown Source)
           at bsh.BSHPrimaryExpression.eval(Unknown Source)
           at bsh.BSHBlock.evalBlock(Unknown Source)
           at bsh.BSHBlock.eval(Unknown Source)
           at bsh.BSHBlock.eval(Unknown Source)
           at bsh.BSHIfStatement.eval(Unknown Source)
           at bsh.BSHBlock.evalBlock(Unknown Source)
           at bsh.BSHBlock.eval(Unknown Source)
           at bsh.BSHBlock.eval(Unknown Source)
           at bsh.BSHIfStatement.eval(Unknown Source)
           at bsh.Interpreter.eval(Unknown Source)
           at bsh.Interpreter.eval(Unknown Source)
           at bsh.Interpreter.eval(Unknown Source)
           at com.endeca.soleng.eac.toolkit.script.Script.runBeanShellScript(Script.java:120)
           ... 8 more
      Dec 18, 2012 6:12:26 PM com.endeca.soleng.eac.toolkit.base.LockManager releaseLock
      INFO: Released lock 'update_lock'.
      ========================================================================================

      I verified the forge log and i get this there
      -----------------------------------------------------
      FATAL     12/18/12 21:12:25.063 UTC (1355865145063)     FORGE     {config}: Could not open "D:\Endeca\apps\Australia\data\processing\wine_data.txt.gz": No such file or directory     
      ERROR     12/18/12 21:12:25.095 UTC (1355865145088)     FORGE     {config}: Forge failed with 1 error and 0 warnings.     
      -----------------------------------------------------


      I verified the folder D:\Endeca\apps\Australia\data\processing and there i have got a copy of my pipeline. It seems like something isn't working properly and the service is trying to run the default pipeline instead of mine own pipeline .
      If i copy wine_data.txt.gz file in D:\Endeca\apps\Australia\data\processing\ the forge runs the default pipeline well, but i don't want the default pipeline i want use mine.

      I don't know why the forge is trying to run the default pipeline.
      Can somebody help me, please?

      Thanks
      Diego
        • 1. Re: Endeca - Error Baseline Update - AppControlException: Error executing valid
          Dan at Branchbird
          The issue is likely that an old version of your pipeline (or the wrong version) is getting copied into /data/processing before Forge is called. I would try opening your project using Developer Studio based on the files in /data/processing. Chances are you'll see the wrong/older version of the pipeline.

          If you pay close attention to the beanshell scripting before Forge is called we can see where items are getting copied around:

          log.info("Starting baseline update script.");
          // obtain lock
          if (LockManager.acquireLock("update_lock")) {
          // test if data is ready for processing
          if (Forge.isDataReady()) {
          if (ConfigManager.isWebStudioEnabled()) {
          // get Web Studio config, merge with Dev Studio config
          ConfigManager.downloadWsConfig();
          ConfigManager.fetchMergedConfig();
          } else {
          ConfigManager.fetchDsConfig();
          }

          // clean directories
          Forge.cleanDirs();
          PartialForge.cleanCumulativePartials();
          Dgidx.cleanDirs();

          // fetch extracted data files to forge input
          Forge.getIncomingData();
          LockManager.removeFlag("baseline_data_ready");

          // fetch config files to forge input
          Forge.getConfig();

          // archive logs and run ITL
          Forge.archiveLogDir();
          Forge.run();
          Dgidx.archiveLogDir();
          Dgidx.run();

          If isWedStudioEnabled=true, your script might be getting tripped up here since it continuously may be pulling an older version out of XMgr/WebStudio. I would comment these lines out

          ConfigManager.downloadWsConfig();
          ConfigManager.fetchMergedConfig();

          I would then delete the contents of the /data/processing directory and the /data/complete_index_config and run it again. If this works, I would recommend using the emgr_update utility to uncover what configuration you have stored in webstudio and ensure it is the right one. Once rectified, you can uncomment these lines.

          HTH,
          Dan
          http://branchbird.com
          • 2. Re: Endeca - Error Baseline Update - AppControlException: Error executing valid
            980805
            Thanks Dan, but i Did that you recomend me, but doesn't work
            1- First i commented the lines into the AppConfig
            ConfigManager.downloadWsConfig();
            ConfigManager.fetchMergedConfig();

            2- I clean this folders /data/processing directory and the /data/complete_index_config

            3-
            And finally i restart the service (i tried too execute the initialize_services.bat)

            But I've got the same error. Have you got another tip to check/ fix this issue?

            I would like to comment to you. That you told me got sense, because I'm trying to use an old service
            • 3. Re: Endeca - Error Baseline Update - AppControlException: Error executing valid
              Dan at Branchbird
              If I were you, I would clean out the directories again and run the steps of the baseline update from command line individually to see where it is going wrong.

              You can do the following.
              control> ./runcommand.sh <object> <method>

              e.g.
              control> ./runcommand.sh Forge cleanDirs
              control> ./runcommand.sh Dgidx cleanDirs
              control> ./runcommand.sh Forge run

              And so on. This is just an example, but if you do this individually and follow the commands your baseline update script is making, you'll likely be able to track down why the wrong pipeline files are getting executed in the processing directory.

              HTH,
              Dan
              http://branchbird.com