You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Jamie Goodyear (JIRA)" <ji...@apache.org> on 2008/09/18 19:10:53 UTC

[jira] Updated: (SMX4KNL-88) Failed kernel commands in command chain will hang processing.

     [ https://issues.apache.org/activemq/browse/SMX4KNL-88?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jamie Goodyear updated SMX4KNL-88:
----------------------------------

    Attachment: smx4knl-88a.txt

One possible solution. 

The command executor takes the command chain as one large command. Once any one part of it fails the whole command is then treated as being in error. This means that upon processing "ecco hi2 \;" the command would fail and stop processing any more commands in the chain. GShell run() method's behavior upon error is to immediately call the asyncShutdown method to end the session.

When the OSGi layer (smx4 features) is present the normal exit on error behavior of the kernel becomes a problem. Some bundles may be in the state of starting or stopping, exiting during these transitive states is currently not supported. So to get around this we can allow the kernel to wait a few seconds to let these bundles finish processing before the asyncShutdown method it called to end the run() session.

> Failed kernel commands in command chain will hang processing.
> -------------------------------------------------------------
>
>                 Key: SMX4KNL-88
>                 URL: https://issues.apache.org/activemq/browse/SMX4KNL-88
>             Project: ServiceMix Kernel
>          Issue Type: Bug
>         Environment: Unix
>            Reporter: Jamie Goodyear
>            Assignee: Jamie Goodyear
>         Attachments: smx4knl-88a.txt
>
>
> Failed kernel commands in command chain will hang processing.
> Ex 1: 
> jgoodyea@jebediah:/x1/fuse/esb/bin$ ./servicemix echo hi1 \; echo hi2\; echo hi3 \; exit
> The command chain to individually echo "hi1", "hi2" and hi3" will print to the terminal screen:
> hi1
> hi2
> hi3
> Then smx will exit, returning the terminal prompt.
> Ex 2:
> jgoodyea@jebediah:/x1/fuse/esb/bin$ ./servicemix echo hi1 \; ecco hi2\; echo hi3 \; exit
> Here the command chain was intended to individually echo "hi" but in this case the second echo command has been mis-spelled. Instead of an error message being displayed to the screen and continuing on to echo "hi3" however smx stops processing commands (the user then has to ctrl+c the process to regain the terminal session).
> Is this the behavior we want to maintain? 
> Could we set some property perhaps to allow the kernel to ignore failed commands in a chain?
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.