[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] multithreading problem



On Mon, Jan 07, 2013 at 11:55:04PM +0100, Bj?rn K. wrote:
> That piece of code should distribute the incoming connections over the
> threads (I want to change that code later to select the thread with
> the lowest number of handled connections). If I don't use this code
> and use instead
> bev = bufferevent_openssl_socket_new(thread_base[0], sock, client_ctx, ...
> the problem remains.
> 
> Furthermore I don't think it's a problem of running out of memory. The
> segmentation fault even occurs when there are just a few connections
> to the server (once the third connection produced the crash).
> I tried to get a segmentation fault during a run in valgrind. One time
> I succeeded and got this:
> 
> ==310== Invalid read of size 8
> ==310==    at 0x41327D: bufferevent_incref_and_lock_ (bufferevent.c:626)
> ==310==    by 0x41403F: bufferevent_enable (bufferevent.c:448)
> ==310==    by 0x4044A9: acceptcb (in /home/login/test/simple)
> ==310==    by 0x424325: listener_read_cb (listener.c:412)
> ==310==    by 0x41D889: event_process_active_single_queue (event.c:1471)
> ==310==    by 0x41E0E6: event_base_loop (event.c:1538)
> ==310==    by 0x4049E0: main (in /home/login/test/simple)
> ==310==  Address 0x62531a0 is 464 bytes inside a block of size 560 free'd
> ==310==    at 0x4C240FD: free (vg_replace_malloc.c:366)
> ==310==    by 0x413E2A: bufferevent_decref_and_unlock_ (bufferevent.c:703)
> ==310==    by 0x41DAD4: event_process_active_single_queue (event.c:1476)
> ==310==    by 0x41E0E6: event_base_loop (event.c:1538)
> ==310==    by 0x404693: worker_function (in /home/login/test/simple)
> ==310==    by 0x54258C9: start_thread (pthread_create.c:300)
> ==310==
> 

Please try: valgrind --tool=helgrind <your program>
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.