Executor Continues to Run After an internal App Has Completed, Preventing Batch Change from Progressing

Problem:

You're using the bundled executor to run an internal app. However, you're encountering an issue where the executor continues to run even after the app has completed, preventing you from reaching the preview stage to continue the batch change.

Cause:

There are a few possible causes of this issue:

  • The app may be running a long-running process that is not completing.
  • The executor may be waiting for a signal from the app that it has completed.
  • The executor may not be configured properly.

Solution:

To troubleshoot this issue, you can try the following steps:

  1. Review the code of the application itself, specifically the parts related to termination or cleanup. Ensure that the application properly terminates and releases any resources it acquires during execution. For instance, adding an exit 0 statement at the end of the Java application to explicitly exit the process. This should signal to the executor that the command has completed and it can stop running.
  2. If the app is running a long-running process, you can try to kill the process or wait for it to complete.

  3. If possible, try running the application outside of the bundled executor environment to see if the issue persists. This can help determine if the problem is specific to the executor or if it's related to the application code or environment.

  4. Review the code of the application itself, specifically the parts related to termination or cleanup. Ensure that the application properly terminates and releases any resources it acquires during execution. For instance, adding an exit 0 statement at the end of the Java application to explicitly exit the process. This should signal to the executor that the command has completed and it can stop running.
  5. Check the logs for the app and the executor to see if there are any errors. For instance, this can help determine if the problem is specific to the file size of the app reaching a certain threshold.

Screenshot:


The screenshot shows the diagnostic screen for the executor. The screen shows that the executor is still running even though the app has completed.

From the logs, It looks like there were some issues parsing a couple of files in that repository - hello.py and transformPOMgradleenterprisemigration.py. The logs indicate that the parsing failed for those files, likely due to their size exceeding some threshold.


Troubleshooting Tips:

  • Check if there are any settings you can adjust for maximum file size on parsing. 103MB does seem quite large for a single file, so the parser may have limits in place. See if those can be increased.

  • Ensure those files are not critical for the recipe to execute properly. Since the logs said execution continued and succeeded, it seems like they were not blocking, but double-check.

  • Examine those files directly to determine why they failed to parse. Look for any errors or warnings directly related to parsing those files. They may be malformed or too complex for the parser to handle.

  • If those files are critical or the errors are problematic, you may need to split those files up into smaller chunks before executing the recipe, or find an alternative way to handle them.

Conclusion:

This article has described the issue of the executor continuing to run after a bundled app has completed. The article has also provided some troubleshooting tips for resolving this issue.

I hope this helps!

Was this article helpful?
1 out of 1 found this helpful

Articles in this section