<div dir="ltr">sorry, i'thinks `tid_max` should be set to 1, </div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 28, 2014 at 5:29 PM, Jinzhi Chen <span dir="ltr"><<a href="mailto:nxtjinzhi@gmail.com" target="_blank">nxtjinzhi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">hi,<div><br></div><div>I'm currently using sheepodg v0.8.3, configure with --enable-debug & start sheep with journal directory.</div><div><br></div><div><br></div><div>during `journal_file_init` progress, journal thread is created. </div><div>but the `tid_max` is not initialized until `wq_trace_init` is called,</div><div>which is called just after journal init progress.</div><div>Thus the journal thread enter into infinite loop when trace is enabled.</div><div>(below is related code)</div><div><br></div><div><br></div><div><div>static void trace_set_tid_map(int tid)</div><div>{</div><div>        sd_mutex_lock(&tid_map_lock);</div><div>        if (tid > tid_max) {</div><div>                size_t old_tid_max = tid_max;</div><div><br></div><div>                /* enlarge bitmap size */</div><div>                ## because tid_max is not initialized (which is 0), the journal thread enter into loop </div><div>                while (tid > tid_max)</div><div>                        tid_max *= 2;</div><div><br></div><div>                tid_map = alloc_bitmap(tid_map, old_tid_max, tid_max);</div><div>        }</div><div>        set_bit(tid, tid_map);</div><div>        sd_mutex_unlock(&tid_map_lock);</div><div>}</div></div><div><br></div><div>I think `tid_max` should be initialized to TID_MAX_DEFAULT in to avoid issue.</div><div>thus, change lib/work.c</div><div><br></div><div><div>-static size_t tid_max;</div></div><div>+static size_t tid_max = TID_MAX_DEFAULT</div><div><br></div><div>& delete related code in wq_trace_init</div><div><br></div><div>Correct me if I'm wrong.</div><div><br></div><div><br></div><div>Thanks</div></div>
</blockquote></div><br></div>