From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Wed, 18 May 2016 18:40:03 +0000 (UTC) Subject: [lttng-dev] question about rcu_bp_exit() In-Reply-To: <6db07fb4.c6e5.154c340296f.Coremail.songxin_1980@126.com> References: <6db07fb4.c6e5.154c340296f.Coremail.songxin_1980@126.com> Message-ID: <971830834.12745.1463596803434.JavaMail.zimbra@efficios.com> ----- On May 18, 2016, at 5:44 AM, songxin wrote: > Hi, > Now I get a crash because receiving signal SIGSEGV as below. > #0 arena_alloc (arena=) at > /usr/src/debug/liburcu/0.9.1+git5fd33b1e5003ca316bd314ec3fd1447f6199a282-r0/git/urcu-bp.c:432 > #1 add_thread () at > /usr/src/debug/liburcu/0.9.1+git5fd33b1e5003ca316bd314ec3fd1447f6199a282-r0/git/urcu-bp.c:462 > #2 rcu_bp_register () at > /usr/src/debug/liburcu/0.9.1+git5fd33b1e5003ca316bd314ec3fd1447f6199a282-r0/git/urcu-bp.c:541 > I read the code of urcu-bp.c and found that "if (chunk->data_len - chunk->used < > len)" is in 432 line. So I guess that the chunk is a illegal pointer. > Below is the function rcu_bp_exit(). > static > void rcu_bp_exit(void) > { > mutex_lock(&init_lock); > if (!--rcu_bp_refcount) { > struct registry_chunk *chunk, *tmp; > int ret; > cds_list_for_each_entry_safe(chunk, tmp, > ®istry_arena.chunk_list, node) { > munmap(chunk, chunk->data_len > + sizeof(struct registry_chunk)); > } > ret = pthread_key_delete(urcu_bp_key); > if (ret) > abort(); > } > mutex_unlock(&init_lock); > } > My question is below. > Why did not delete the chunk from registry_arena.chunk_list before munmap a > chunk? It is not expected that any thread would be created after the execution of rcu_bp_exit() as a library destructor. Does re-initializing the chunk_list after iterating on it within rcu_bp_exit() fix your issue ? I'm curious about your use-case for creating threads after the library destructor has run. Thanks, Mathieu > Thanks, > xin > _______________________________________________ > lttng-dev mailing list > lttng-dev at lists.lttng.org > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com -------------- next part -------------- An HTML attachment was scrubbed... URL: