Reporting ports through Corba

Hi all,

I have the following setup: on my remote computer, the cdeployer-gnulinux manages my embedded architecture (camera and other sensors).

I monitor the execution from another PC, using the deployer-corba that connects to some of the embedded components.
This monitoring is partly performed using ReportingComponents. I am facing two errors:

1. When I call myLocalReporter.reportPort("MyRemoteComponent", "myDoublePort"), I have a seg fault (valgrind claims:
Access not within mapped region at address 0x0
==19251== at 0x7189926: OCL::ReportingComponent::reportPort).

2. I have defined my own image reporter that displays camera frames. When I call myLocalReporter.reportPort("MyRemoteCamera", "frame"), I have the following assertion error:
T* boost::intrusive_ptr::operator->() const [with T = RTT::ConnectionInterface]: assert « p_ != 0 » failed.

All these stuffs work when used without Corba (reporters and reported launched in the same deployer).

Are ReportingComponents usable through Corba?
Any tips on how to correct these errors?

Thanks.

Charles.

Reporting ports through Corba

On Mon, Aug 10, 2009 at 17:36, <charles [dot] lesire [..] ...> wrote:
> Hi all,
>
> I have the following setup: on my remote computer, the cdeployer-gnulinux manages my embedded architecture (camera and other sensors).
>
> I monitor the execution from another PC, using the deployer-corba that connects to some of the embedded components.
> This monitoring is partly performed using ReportingComponents. I am facing two errors:
>
> 1. When I call myLocalReporter.reportPort("MyRemoteComponent", "myDoublePort"), I have a seg fault (valgrind claims:
> Access not within mapped region at address 0x0
> ==19251==    at 0x7189926: OCL::ReportingComponent::reportPort).

If you could compile OCL with CMAKE_BUILD_TYPE=Debug, we would get a
line number as well...

>
> 2. I have defined my own image reporter that displays camera frames. When I call myLocalReporter.reportPort("MyRemoteCamera", "frame"), I have the following assertion error:
> T* boost::intrusive_ptr<T>::operator->() const [with T = RTT::ConnectionInterface]:  assert « p_ != 0 » failed.

This is equivalent to a null pointer access, so it might be related
to/the same as 1.

>
> All these stuffs work when used without Corba (reporters and reported launched in the same deployer).
>
> Are ReportingComponents usable through Corba?

They should, at least, I thought they were.

> Any tips on how to correct these errors?

I'll need to reproduce this. The best you can do for now is to submit
a bugzilla bug report such that we can track this issue.

Peter

Reporting ports through Corba

I think I've found the problem: it appears when I try to report a remote
component that has not been started. As the component is stopped, the
assertion "connected" fails... (PortInterface.cpp, line 121).

Charles.

Peter Soetens a écrit :
> On Mon, Aug 10, 2009 at 17:36, <charles [dot] lesire [..] ...> wrote:
>
>> Hi all,
>>
>> I have the following setup: on my remote computer, the cdeployer-gnulinux manages my embedded architecture (camera and other sensors).
>>
>> I monitor the execution from another PC, using the deployer-corba that connects to some of the embedded components.
>> This monitoring is partly performed using ReportingComponents. I am facing two errors:
>>
>> 1. When I call myLocalReporter.reportPort("MyRemoteComponent", "myDoublePort"), I have a seg fault (valgrind claims:
>> Access not within mapped region at address 0x0
>> ==19251== at 0x7189926: OCL::ReportingComponent::reportPort).
>>
>
> If you could compile OCL with CMAKE_BUILD_TYPE=Debug, we would get a
> line number as well...
>
>
>> 2. I have defined my own image reporter that displays camera frames. When I call myLocalReporter.reportPort("MyRemoteCamera", "frame"), I have the following assertion error:
>> T* boost::intrusive_ptr<T>::operator->() const [with T = RTT::ConnectionInterface]: assert « p_ != 0 » failed.
>>
>
> This is equivalent to a null pointer access, so it might be related
> to/the same as 1.
>
>
>> All these stuffs work when used without Corba (reporters and reported launched in the same deployer).
>>
>> Are ReportingComponents usable through Corba?
>>
>
> They should, at least, I thought they were.
>
>
>> Any tips on how to correct these errors?
>>
>
> I'll need to reproduce this. The best you can do for now is to submit
> a bugzilla bug report such that we can track this issue.
>
> Peter
>

Reporting ports through Corba

On Tue, Sep 29, 2009 at 08:51, Charles Lesire-Cabaniols
<Charles [dot] Lesire [..] ...> wrote:
> I think I've found the problem: it appears when I try to report a remote
> component that has not been started. As the component is stopped, the
> assertion "connected" fails... (PortInterface.cpp, line 121).

What do you mean by 'started' ? That the component did not exist yet ?

So we'd better change the assert() to an if statement and return false ?

Peter

Reporting ports through Corba

Peter Soetens a écrit :
> On Tue, Sep 29, 2009 at 08:51, Charles Lesire-Cabaniols
> <Charles [dot] Lesire [..] ...> wrote:
>
>> I think I've found the problem: it appears when I try to report a remote
>> component that has not been started. As the component is stopped, the
>> assertion "connected" fails... (PortInterface.cpp, line 121).
>>
>
> What do you mean by 'started' ? That the component did not exist yet ?
>
> So we'd better change the assert() to an if statement and return false ?
>
> Peter
>
The component exists and is in Stopped state (I have not launched
'MyComponent.start').