Re: big issues with state machine loading

Thierry Bultel <[email protected]> Tue, 11 Feb 2014 21:53:34 +0100
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <[email protected]>
Le 11/02/2014 21:43, Peter Soetens a écrit :
> On Tue, Feb 11, 2014 at 3:05 PM, Thierry Bultel <[email protected]> wrote:
>> 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.
> Thanks for clarifying ! So the compiler it is...
>
> I'll start with setting up a virtual Ubuntu raring 64bit system which
> has gcc 4.7.3.
>
> That should do it to reproduce it.

If you stay with x86 architecture, it will not crash but the "comment" bug
will be the clue (hopefully)

>
> Peter
>
>> 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