Launching child actor fails on cRIO

Issue #68 open
Ross Smyth created an issue

Hello again,
My team and I are trying to run some control software on a Compact RIO with the Messenger Library as the backbone framework. We use it elsewhere in desktop applications to great success, but have not used it on cRIOs before.

We first made a simple test actor with a TCP service messenger to make sure the library can deploy and run on the Compact RIO. This worked, and we were able to deploy and communicate with the test actor with out issue from our development laptop.

Next we started implementing our actual control logic and this includes some child actors. We got a couple ready to test next. We were able to deploy them to the cRIO, but when the parent actor running the TCP server attempted to start the child actor, an error occurred in the "Launch Actor" VI.

This happened with either of the child actors being started by the parent in isolation with the same error.

Next we replace one of the actor with a fresh "empty" actor that was just created from a template to see if it didn't like any of the logic inside the actors, and the empty actor also errored on launch. We also tested just running the empty template actor without being launch by a parent, and it ran just fine.

The error when launched as a child is:

Error 1026 occurred at Error in launching "LevelingLoop(X)": Property Node in Actor type2.lvclass:Get Dynamic Launch Shell Reference ActorNR.vi->Actor type2.lvclass:Launch ActorNR inside Dynamic Launch Shell.vi->Actor type2.lvclass:Launch Actor.vi:1050001->Middleman.lvclass:ActorNR.vi

Possible reason(s):

LabVIEW: (Hex 0x402) VI Reference is invalid.

Where "Middleman.lvclass" is the parent actor running the TCP server, and "LevelingLoop" is the empty child actor from the template. Below is the code. The template is the Queue actor template for the child as well without any edits. Below is an image of the minimal code to reproduce the error.

My guess is that it is not pulling in a VI that it needs, but I am not sure what. If you have any experience with this, or guidance on what to do that would be great.

Thanks for your great library!
Ross

Comments (4)

  1. James Powell repo owner

    Can you try a couple of thing?

    1. try making your subactor reentrant and see if it can be launched
    2. try making you top-level actor non-launchable (remove it from its class and delete the “Actor Identity”)

    Actually, try 2 first, as I suspect the issue is LabVIEW locking something in te hActorNR launch code when an actor is started normally rather than launched.

  2. Ross Smyth reporter

    For now we just made it reentrant as it is convenient to have them all part of the same class, and we were able to the child actors to run. If we really need probing we’ll look in to making the parent actor non-launchable, or see if we can get he manager running on the cRIO for debugging.

    Thanks for your help!

  3. James Powell repo owner
    • changed status to open

    Reopening this, as I would really like to fix this issue. Also, this is really a Real Time extension of the existing Issue #9 problems.

  4. Log in to comment