Re: big issues with state machine loading

Thierry Bultel <[email protected]> Tue, 11 Feb 2014 15:05:50 +0100
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <[email protected]>
Le 11/02/2014 14:31, Peter Soetens a écrit :
> On Tue, Feb 11, 2014 at 10:18 AM, Thierry Bultel <[email protected]> wrote:
>> Le 11/02/2014 10:01, Peter Soetens a écrit :
>>
>>
>>
>> On Sat, Feb 8, 2014 at 9:30 AM, Thierry Bultel <[email protected]> wrote:
>>> Hi all,
>>>
>>> We are currently evaluating orocos toolchain 2.7rc3
>>> My configuration is :
>>>
>>> - boost-1.53.0
>>> - gcc-4.7.3
>>>
>>> The test sample is the helloworld.cpp from the tutorials; here is the
>>> state machine script:
>>>
>>> StateMachine States {
>>>
>>>          initial state initState
>>>          {
>>>                  entry
>>>                  {
>>>                  }
>>>
>>>                  transition select Final
>>>          }
>>>          final state Final
>>>          {
>>>                  entry
>>>                  {
>>>                  }
>>>
>>> //
>>>          }
>>> }
>>>
>>> RootMachine  States sTates
>>>
>>>
>>> I am testing on 2 target architectures, the first one is intel and the
>>> second, arm
>>> The bug I am mentioning here occur one the real targets, as well as with
>>> qemu user.
>>>
>>> On intel, comments (both "//" and "/* ...*/" )in state machine are
>>> detected as errors:
>>>
>>> Hello [R]> scripting.loadStateMachines("statemachine.osd")
>>> 6.129 [ Info   ][ScriptingService::loadStateMachine] Parsing file
>>> statemachine.osd
>>> 6.247 [ ERROR  ][ScriptingService::loadStateMachine] statemachine.osd
>>> :Parse error at line 18: Syntactic error: Exptected ending '}' at end of
>>> state ( or could not find out what this line means ).
>>>   = false
> I can't reproduce this. An equally likely reason is the difference in
> Boost version, since boost::spirit changes from time to time. I'm
> using Boost 1.46.
Peter,

I do not quite agree. As I said, I can reproduce the bug with boost-1.35 
/ orocos-1.x, too, If I upgrade from gcc-4.3.2 (from Debian )
to gcc-4.7.3 (from buildroot).
And it is not -only- related to comments, since a comment-less state 
machine crashes as well.

Please tell me if you need more things, for instance I can provide you 
with our gcc toolchain and sysroot,
as well as qemu-arm.

Regards
Thierry


>
> Anyhow, there was no specific unit test for this case, so we can add
> it anyway and see on which combinations it breaks. It's now present on
> rtt's master and toolchain-2.7 branches.
>
> Peter
>
>
>>>
>>> On arm, that directly leads to a SIGSEGV. I do not have a backtrace for
>>> now, unfortunately.
>>>
>>>
>>> I would like to add that the bug is also reproducible with orocos-1.1x and
>>> boost-1.35, letting me think
>>> that this could be due to the compiler version. Our investigations have
>>> failed to identity the cause,
>>> and I wanted to try with latest orocos version before posting.
>>
>> I'll add it as a unit test to RTT, then we can easily reproduce it and fix
>> it. I had heard earlier complaints about commenting in script code not
>> always working. There is a difference between commenting in function blocks
>> (like entry { ... }) and outside... so the issue is probably there.
>>
>> Peter
>>
>>
>> Many thanks Peter,
>>
>> It nice to hear from you again.
>> I would like to point out that the crash on ARM is systematic (and very
>> annoying because we are migrating to ARM),
>> even with no comments in the state machine at all. It is easily reproducible
>> with qemu-arm.
>>
>> Are there casts with some assumptions about alignment ? That is what I would
>> think about, since it depends
>> on the compiler and/or architecture.
>>
>> Regards
>> Thierry
>>

-- 
Orocos-Dev mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev