[Xenomai] some API about RT_TASK occur Segmentation fault

dreamtale90 at 163.com dreamtale90 at 163.com
Tue Feb 7 15:19:41 CET 2017

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.
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 写道:
Thank you for help.
I had git clone git://git.xenomai.org/xenomai-3.git, compile and install it with:
    ../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.
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> wrote:
>On 02/06/2017 02:30 AM, 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" <dreamtale90 at 163.com>
>> Date: 2017-02-04 12:04:15
>> To: 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


More information about the Xenomai mailing list