tevent_loop_wait() never finishes

Pavel Březina pbrezina at redhat.com
Mon Jun 24 06:52:05 MDT 2013


Hi,
I've run across a problem where I don't have any custom event handlers 
registered with tevent, but the program gets stuck in tevent_loop_wait().

When I print out the event context, I see there is still one fd handler 
registered. It is sig_pipe_handler() that is created internally by 
tevent at tevent_signal.c:254.

(gdb) p dyndns_test_ctx->tctx->ev[0]
$11 = {ops = 0x3e14a0aca0, fd_events = 0x62c9b0, timer_events = 0x0, 
immediate_events = 0x0, signal_events = 0x0, additional_data = 0x622890, 
pipe_fde = 0x62c9b0, pipe_fds = {12, 14}, debug_ops = {debug = 0,
     context = 0x0}, nesting = {allowed = false, level = 0, hook_fn = 0, 
hook_private = 0x0}, tracing = {callback = 0, private_data = 0x0}}

(gdb) p dyndns_test_ctx->tctx->ev[0]
$6 = {ops = 0x3e14a0aca0, fd_events = 0x62c9b0, timer_events = 0x0, 
immediate_events = 0x0, signal_events = 0x0, additional_data = 0x622890, 
pipe_fde = 0x62c9b0, pipe_fds = {12, 14}, debug_ops = {debug = 0,
     context = 0x0}, nesting = {allowed = false, level = 0, hook_fn = 0, 
hook_private = 0x0}, tracing = {callback = 0, private_data = 0x0}}

What is the purpose of this signal?
Is there any way how to remove it?
Also why ev->fd_events->prev == ev->fd_events?

Thanks,
Pavel.


More information about the samba-technical mailing list