[Xenomai] some API about RT_TASK occur Segmentation fault

dreamtale90 at 163.com dreamtale90 at 163.com
Wed Feb 8 03:03:25 CET 2017


Philippe,


Thank you very much.Exactly as you say, the reason is that my code isn't lastest.

Best regards.





At 2017-02-07 23:17:28, "Philippe Gerum" <rpm at xenomai.org> wrote:
>On 02/07/2017 03:19 PM, dreamtale90 at 163.com wrote:
>> Just now when I compiling xenomai, removed "--enable-pshared"
>> configuration option. My demo is normal finally, and print out third
>> sentence "enter func ..." without segmentaion fault.
>
>I believe that you are not using the right code. Did you pull the code
>from the stable-3.0.x branch as mentioned earlier?
>
>If you did so, you should see this output when passing the --version
>switch to your program:
>
>based on Xenomai/mercury v3.0.3 -- #00e3d01 (2017-01-27 10:16:11 +0100)
>
>> Although the question is solved temporarily , but still don't know the
>> reason. So I'm still worried about my system environment have some problems.
>> 
>> Thanks again, best regards.
>> 
>> 
>> 发自网易邮箱大师
>> 
>>     在2017年02月07日 14:18,dreamtale90 at 163.com
>>     <mailto:dreamtale90 at 163.com> 写道:
>>     Thank you for help.
>>     I had git clone git://git.xenomai.org/xenomai-3.git, compile and
>>     install it with:
>>         ./scripts/bootstrap
>>         ../xenomai-3/configure --with-core=mercury  --enable-smp
>>     --enable-pshared --enable-debug=full
>>         make install
>>     Then run my demo, but the result is the same as before :
>>     ----------------------------------------------------------------------------------------------------------
>>        0"002.570| WARNING: [main] Xenomai compiled with full debug enabled,
>>                                   very high latencies expected
>>     [--enable-debug=full]
>>     enter func ...
>>     enter func ...
>>     rt_task_create:
>>     ../../../xenomai-3/lib/copperplate/heapobj-pshared.c:452:
>>     alloc_block: Assertion `0' failed.
>>     Aborted
>>     ----------------------------------------------------------------------------------------------------------
>>     Yesterday, I add some printf to alloc_block() of heapobj-pshared.c.
>>     I found  that segmentaion fault occur when run to the
>>     line 455 "++extent->pagemap[pgnum].bcount;" . At this time the value
>>     of "heap->buckets[ilog].freelist" is very big.
>> 
>>     Now I think whether my xenomai
>>     configuration or system environment have something wrong.
>>     Besides, my system(x86_64bit) run in a 8 cores Oracle virtual
>>     machine, the host cpu is Inter(R) xeon(R) CPU E5-2630 v4 @ 2.20GHz.
>>     I don't know whether these information is useful.
>> 
>>     Thanks in advance, best regards.
>> 
>> 
>> 
>>     At 2017-02-06 21:50:13, "Philippe Gerum" <rpm at xenomai.org <mailto:rpm at xenomai.org>> wrote:
>>     >On 02/06/2017 02:30 AM, dreamtale90 at 163.com <mailto:dreamtale90 at 163.com> wrote:
>>     >> System configuration:
>>     >> debian-8.6, 3.18.46-rt50
>>     >> Xenomai/mercury v3.0.3
>>     >> Build args: --with-core=mercury --enable-smp --enable-pshared
>>     >> 
>>     >> Now I am need help. Thanks.
>>     >> 
>>     >> 
>>     >> -------- Forwarding messages --------
>>     >> From: "dreamtale90 at 163.com <mailto:dreamtale90 at 163.com>" <dreamtale90 at 163.com <mailto:dreamtale90 at 163.com>>
>>     >> Date: 2017-02-04 12:04:15
>>     >> To: xenomai at xenomai.org <mailto:xenomai at xenomai.org>
>>     >> Subject: some API about RT_TASK occur Segmentation fault
>>     >> Hi
>>     >>     During using API about RT_TASK I found some doubt.
>>     >> 1) rt_task_inquire(RT_TASK * task, RT_TASK_INFO * info ), if info is
>>     >> NULL will occur Segmentation fault, but in API reference this is valid.
>>     >> http://www.xenomai.org/documentation/xenomai-3/html/xeno3prm/group__alchemy__task.html#ga53bad6acf5496f8008e594954507dce8
>>     >> 
>>     >> 2) After main task called rt_task_shadow(), program will create other
>>     >> tasks depend on request, but when create second task will  occur
>>     >> Segmentation fault.
>>     >> Now main task don't call  rt_task_shadow(), program will OK. I don't
>>     >> know why.
>>     >> 
>>     >> 3) I write a demo which create the same task three times as follows:
>>     >> #include <stdio.h>
>>     >> #include <unistd.h>
>>     >> #include <alchemy/task.h>
>>     >> RT_TASK task1;
>>     >> void func(void *arg)
>>     >> {
>>     >>  printf("enter func ...\n");
>>     >> }
>>     >> int main()
>>     >> {
>>     >>  rt_task_spawn(&task1, "task1", 0, 80, 0, func, NULL);
>>     >>  sleep(1);
>>     >>  rt_task_spawn(&task1, "task1", 0, 80, 0, func, NULL);
>>     >>  sleep(1);
>>     >>  rt_task_spawn(&task1, "task1", 0, 80, 0, func, NULL);
>>     >>  //rt_task_delete(&task1);
>>     >>  return 0;
>>     >> }
>>     >> 
>>     >> When the third time create , program will  occur Segmentation fault.
>>     >> 
>>     >
>>     >This bug was fixed in the stable branch some time ago:
>>     >git://git.xenomai.org/xenomai-3.git, branch stable-3.0.x
>>     >
>>     >-- 
>>     >Philippe.
>> 
>> 
>> 
>>      
>> 
>
>
>-- 
>Philippe.


More information about the Xenomai mailing list