libqb and multy-thread application
by eXeC001er
Hello.
This Q is crosspost from openais-maillist.
I use corosync-2.3.0, libqb-0.14.4 on OpenIndiana:
I tried to create an application that uses corosync via its libraries, but
it seems something wrong.
On the machine where i debug corosync-tests work fine, but my application
does not work. The application cannot intialize CMAP connection (same with
VOTEQUORUM).
"*_initialize" function returned CS_ERR_NOT_EXIST error. on server side i
see "Error in connection setup (7104-7367-0): Broken pipe (32)".
My appliacation is multi-thread and "*_initialize" is called not in main
thread.
the stack-trace:
/3@3: -> libvotequorum:votequorum_initialize(0x8834b2c, 0x0, 0x0,
0xfea63855)
/2: nanosleep(0xFE99BF48, 0x00000000) = 0
/3@3: -> libqb:qb_hdb_handle_create()
/3@3: <- libqb:qb_hdb_handle_create() = 0
/3@3: -> libcorosync_common:hdb_error_to_cs()
/3@3: <- libcorosync_common:hdb_error_to_cs() = 1
/3@3: -> libqb:qb_hdb_handle_get()
/3@3: <- libqb:qb_hdb_handle_get() = 0
/3@3: -> libcorosync_common:hdb_error_to_cs()
/3@3: <- libcorosync_common:hdb_error_to_cs() = 1
/3@3: -> libqb:qb_ipcc_connect()
/3: so_socket(PF_UNIX, SOCK_STREAM, 0, 0x00000000, SOV_DEFAULT) = 8
/3: fcntl(8, F_GETFD, 0x00000000) = 0
/3: fcntl(8, F_SETFD, 0x00000001) = 0
/3: fcntl(8, F_SETFL, FNONBLOCK) = 0
/3: connect(8, 0xFE67C13A, 21, SOV_DEFAULT) = 0
/3: sigaction(SIGPIPE, 0xFE67C0E0, 0xFE67C140) = 0
/3: send(8, "FFFFFFFF\0\0\0\018\0\0\0".., 24, 0) = 24
/3: sigaction(SIGPIPE, 0xFE67C0E0, 0x00000000) = 0
/3: sigaction(SIGPIPE, 0xFE67C0D0, 0xFE67C130) = 0
/3: recv(8, 0xFE67C210, 3112, 64) Err#11 EAGAIN
/3: sigaction(SIGPIPE, 0xFE67C0D0, 0x00000000) = 0
/3: shutdown(8, SHUT_RDWR, SOV_DEFAULT) = 0
/3: close(8) = 0
/3@3: <- libqb:qb_ipcc_connect() = 0
/3@3: -> libcorosync_common:qb_to_cs_error()
/3@3: <- libcorosync_common:qb_to_cs_error() = 12
/3@3: -> libqb:qb_hdb_handle_put(0xfe9f3070, 0x0, 0xb86775, 0xfe67ce7c)
/3@3: <- libqb:qb_hdb_handle_put() = 0
/3@3: -> libqb:qb_hdb_handle_destroy(0xfe9f3070, 0x0, 0xb86775, 0x0)
/3@3: -> libqb:qb_ipcc_disconnect(0x0, 0x8835b88, 0x0, 0x1)
/3@3: <- libqb:qb_ipcc_disconnect() = 0
/3@3: <- libqb:qb_hdb_handle_destroy() = 0
/3@3: <- libvotequorum:votequorum_initialize() = 12
As you can see it returns CS_ERR_NOT_EXIST.
same behaviour with CMAP and another services.
Any ideas?
Thanks.
11 years, 1 month