Ben,
The first step will be to understand exactly what error occurred. This can be done by following the steps listed here. Basically:
- Window > Show View > Other ...
- Select General > Properties. The properties view should now be visible
- In the SCA Explorer view, select the application with the red flag symbol
- Now in the Properties view, you should see two tabs "Properties", and "Advanced". In the "Advanced" tab where will be a Status field that says "Failed to query property values...". When you select this field it will show a "Details..." button. Click that to receive the stack trace for the error.
Another alternative is to use the Python Sandbox (or unittest) capabilities to start your component and attempt a query. The equivalent error will be thrown as a Python exception. You can learn about the sandbox here.
As for the second part of your question, the REDHAWK process() method is already executing as a sub-thread, so it won't block query() operations unless you have created a thread lock (or used the propertySetAccess lock within your serviceFunction). If you are using a lock, then it is possible that the query() will block until the CORBA timeout is reached. You will know if this has occurred because the stack trace will be a CORBA Timeout error.
However, you said "I need to have a property of the component be a reference to this long list of data" so I think you may be getting an error related to the maximum CORBA transfer size. You can adjust the CORBA maximum transfer size by editing /etc/omniORB.cfg so the problem goes away, but your component will cause problems for others who use it. A better option is to reconsider the design of the component. You will probably want to use BULKIO ports to transfer the data in-to and out-of your component.
If you could provide more details about the algorithm you are using or source code examples, that could provide additional information that would help isolate the root problem.