> On 06.11.19 14:40, [email protected] wrote: >>> On 06.11.19 10:18, Davy via Xenomai wrote: >>>> >>>> Hi, >>>> >>>> Thanks for patching the shared sessions. It works. >>>> >>>> Now I have another segmentation error that appears when a task ends or >>>> is >>>> deleted : >>>> >>>> >>>> >>>> RT_TASK task; >>>> void foo(){ >>>> int i = 3; >>>> while(i--){ >>>> printf("Hello !\n"); >>>> rt_task_sleep(1000000000); >>>> } >>>> return; >>>> } >>>> int main(int argc, char *argv[]){ >>>> int n; >>>> if (mlockall( MCL_CURRENT | MCL_FUTURE )!=0) >>>> return 1; >>>> if ((n=rt_task_spawn( &task, NULL, 0, 99, T_JOINABLE, &foo, >>>> NULL))!=0){ >>>> rt_printf("rt_task_spawn error %d\n",n); >>>> return 1; >>>> } >>>> printf("Join task\n"); >>>> rt_task_join(&task); >>>> return EXIT_SUCCESS; >>>> } >>>> >>>> >>>> $ sudo ./foo >>>> Hello ! >>>> Join task >>>> Hello ! >>>> Hello ! >>>> Erreur de segmentation >>>> >>> >>> Works find here. Could you use a debugger to find out where the >>> exception is thrown? >>> >> >> I obtain this : >> >> (gdb) run >> Starting program: /home/davy/Documents/Programmes_Test/test/foo >> [Thread debugging using libthread_db enabled] >> Using host libthread_db library >> "/lib/x86_64-linux-gnu/libthread_db.so.1". >> [New Thread 0x7ffff6db1700 (LWP 14620)] >> [New Thread 0x7ffff7ff6700 (LWP 14621)] >> Hello ! >> Join task >> 0"025.863| WARNING: [main] Xenomai compiled with full debug enabled, >> very high latencies expected >> [--enable-debug=full] >> Hello ! >> Hello ! >> >> Thread 3 "task@1[14616]" received signal SIGSEGV, Segmentation fault. >> [Switching to Thread 0x7ffff7ff6700 (LWP 14621)] >> 0x00007ffff7799cf5 in shavlh_link (avl=0x7ffff7e47148, holder=0x0, >> dir=0) >> at ../../include/boilerplate/avl-inner.h:107 >> 107 ptrdiff_t offset = holder->link[avl_type2index(dir)].offset; >> > > Backtrace? Values of the vars in question?
(gdb) backtrace #0 0x00007ffff7799cf5 in shavlh_link (avl=0x7ffff7e47148, holder=0x0, dir=0) at ../../include/boilerplate/avl-inner.h:107 #1 0x00007ffff7799fa7 in shavl_inorder (avl=0x7ffff7e47148, holder=0x0, dir=1) at avl.c:55 #2 0x00007ffff79b89a5 in shavl_next (avl=0x7ffff7e47148, holder=0x7ffff7e4d1c8) at ../../include/boilerplate/avl-inner.h:332 #3 0x00007ffff79b8fe5 in find_next_neighbour (ext=0x7ffff7e47128, r=0x7ffff7e4d1c8) at heapobj-pshared.c:276 #4 0x00007ffff79b90e0 in release_page_range (ext=0x7ffff7e47128, page=0x7ffff7f425c8, size=1024) at heapobj-pshared.c:303 #5 0x00007ffff79b9f84 in sheapmem_free (heap=0x7ffff7e46000, block=0x7ffff7f425c8) at heapobj-pshared.c:594 #6 0x00007ffff79bbb40 in xnfree (ptr=0x7ffff7f425c8) at heapobj-pshared.c:1203 #7 0x00007ffff79b46a5 in __threadobj_free (p=0x7ffff7f425c8) at ../../include/copperplate/threadobj.h:312 #8 0x00007ffff79b46d4 in threadobj_free (thobj=0x7ffff7f426d0) at ../../include/copperplate/threadobj.h:317 #9 0x00007ffff79b64d4 in finalize_thread (p=0x7ffff7f426d0) at threadobj.c:1548 #10 0x00007ffff735f5f9 in __nptl_deallocate_tsd () at pthread_create.c:291 #11 0x00007ffff7360658 in __nptl_deallocate_tsd () at pthread_create.c:449 #12 start_thread (arg=0x7ffff7ff6700) at pthread_create.c:469 #13 0x00007ffff6e9ad0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97 > > How did you configure Xenomai userspace (beyond --enable-debug=full)? $ /usr/xenomai/bin/xeno-config --info Xenomai version: Xenomai/cobalt v3.1-rc3 Linux XportNew 4.19.75-xenomai-3.1-rc3 #3 SMP PREEMPT Wed Nov 6 13:48:28 CET 2019 x86_64 GNU/Linux Kernel parameters: BOOT_IMAGE=/boot/vmlinuz-4.19.75-xenomai-3.1-rc3 root=/dev/mapper/isw_bdaaiafbje_Volume11 ro dmraid=true quiet splash nopat crashkernel=384M-:128M I-pipe release #7 detected Cobalt core 3.1-rc3 detected Compiler: gcc version 4.9.2 (Debian 4.9.2-10+deb8u1) Build args: --with-core=cobalt --enable-smp --enable-pshared --enable-debug=full > > Philippe, any idea? > > Jan > > -- > Siemens AG, Corporate Technology, CT RDA IOT SES-DE > Corporate Competence Center Embedded Linux >
