[sheepdog] Sheepdog initialize issue
Jinzhi Chen
nxtjinzhi at gmail.com
Tue Oct 28 10:07:22 CET 2014
hi, I'm current using sheepdog v0.8.3, with journal enable
When configure with --enable-debug and start sheep with journal ,
one of sheep's thread [journal commit] goes into infinite loop in function
`trace_set_tid_map`
lib/work.c
static void trace_set_tid_map(int tid)
{
sd_mutex_lock(&tid_map_lock);
if (tid > tid_max) {
size_t old_tid_max = tid_max;
/* enlarge bitmap size */
while (tid > tid_max)
tid_max *= 2;
tid_map = alloc_bitmap(tid_map, old_tid_max, tid_max);
}
set_bit(tid, tid_map);
sd_mutex_unlock(&tid_map_lock);
}
because `tid_max` is not initialized until function `wq_trace_init` which
is called
by 'create_work_queues` after journal initialize progress.
I think maybe we can just set the tid_max to TID_MAX_DEFAULT
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wpkg.org/pipermail/sheepdog/attachments/20141028/66935ff6/attachment-0003.html>
More information about the sheepdog
mailing list