NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Porting Corosync/Pacemaker - Help needed with gdb



Hi folks,

some time ago I managed to get Corosync working on NetBSD - now the official 1.x builds can be compiled and run "out of the box". Recently, I made Pacemaker 1.1 and cluster_glue compile after making some cosmetic changes to the code.

However, when I load the Pacemaker subsystem into Corosync, corosync crashes with SIGSEGV. It alway does in pthread_mutex_lock(), for example in the following code block:

===========
static int ipc_thread_active (void *conn)
{
        struct conn_info *conn_info = (struct conn_info *)conn;
        int retval = 0;


        pthread_mutex_lock (&conn_info->mutex);                                   <<<--- CRASH
        if (conn_info->state == CONN_STATE_THREAD_ACTIVE) {
                retval = 1;
        }
        pthread_mutex_unlock (&conn_info->mutex);
        return (retval);
}
==================

I am not sure how to track this down with gdb. Here are some findings:

=================
Core was generated by `corosync'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f7ff68078e9 in pthread_mutex_lock () from /usr/lib/libpthread.so.1
(gdb) bt
#0  0x00007f7ff68078e9 in pthread_mutex_lock () from /usr/lib/libpthread.so.1
#1  0x00007f7ff7002e14 in ipc_thread_active (conn=0x7f7ff738d000) at coroipcs.c:466
#2  pthread_ipc_consumer (conn=0x7f7ff738d000) at coroipcs.c:675
#3  0x00007f7ff6809d75 in ?? () from /usr/lib/libpthread.so.1
#4  0x00007f7ff60759f0 in ___lwp_park50 () from /usr/lib/libc.so.12
Cannot access memory at address 0x7f7feb000000
(gdb) frame 1
#1  0x00007f7ff7002e14 in ipc_thread_active (conn=0x7f7ff738d000) at coroipcs.c:466
466             pthread_mutex_lock (&conn_info->mutex);
(gdb) print &conn_info->mutex
$1 = (pthread_mutex_t *) 0x7f7ff738d050
(gdb)
=====================

Has anobody an idea how to proceed?

Regards,

Stephan


Home | Main Index | Thread Index | Old Index