<div>Hello!</div><div><br></div><div>zlist_last changes self->cursor to tail. this behaviour triggers this code:</div><div><br></div><div><br></div><div><div>    zlist_append (list, cheese);</div><div>    zlist_append (list, bread);</div>

<div>    assert (zlist_last (list) == bread);   ---- cursor at this moment, points to bread..</div><div>    zlist_remove (list, bread);              </div><div><br></div><div>------ inside zlist_remove -----</div><div><div>

    if (self->cursor && self->cursor->item == item)  ----- True</div><div>        node = self->cursor;                                      ------ prev still == NULL</div></div><div>....</div><div><div>

<div>        if (prev)</div><div>            prev->next = node->next;</div><div>        else</div><div>            self->head = node->next; ---- this line is executed since prev == NULL</div></div><div><br></div>

<div>        if (node->next == NULL)</div><div>            self->tail = prev;               ---- set tail to NULL</div></div><div>----- end inside-------</div><div><br></div><div>    assert (zlist_last (list) == cheese); ----- </div>

<div><br></div><div>---- inside zlist_last ------</div><div><br></div><div><div>    self->cursor = self->tail;</div><div>    if (self->cursor)                               -- False</div><div>        return self->cursor->item;</div>

<div>    else</div><div>        return NULL;                               -- ERROR</div></div><div><br></div></div><div><div><br></div><div>PR sent.</div><div><br></div><div>regards,</div><div>Felipe Cruz</div><div><br>
</div>
<div><br></div><div><br></div><br><div class="gmail_quote">2012/9/25 Stephen Hemminger <span dir="ltr"><<a href="mailto:shemminger@vyatta.com" target="_blank">shemminger@vyatta.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Noticed build failures after merge, because build script does check test.<br>
<br>
Bisected it down to:<br>
$ make -j1 check<br>
Making check in src<br>
make[1]: Entering directory `/usr/src/zeromq/czmq/src'<br>
make  check-TESTS<br>
make[2]: Entering directory `/usr/src/zeromq/czmq/src'<br>
Running czmq self tests...<br>
 * zclock: OK<br>
 * zctx: OK<br>
 * zfile: OK<br>
 * zframe: OK<br>
 * zhash: OK<br>
lt-czmq_selftest: zlist.c:405: zlist_test: Assertion `zlist_last (list) == cheese' failed.<br>
 * zlist: /bin/bash: line 5: 19608 Aborted                 ${dir}$tst<br>
FAIL: czmq_selftest<br>
============================================<br>
1 of 1 test failed<br>
Please report to <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
============================================<br>
make[2]: *** [check-TESTS] Error 1<br>
make[2]: Leaving directory `/usr/src/zeromq/czmq/src'<br>
make[1]: *** [check-am] Error 2<br>
make[1]: Leaving directory `/usr/src/zeromq/czmq/src'<br>
make: *** [check-recursive] Error 1<br>
<br>
$ git bisect bad<br>
f5b8dad1a26d0405d6c30960b82d94aa2500b2cc is the first bad commit<br>
commit f5b8dad1a26d0405d6c30960b82d94aa2500b2cc<br>
Author: Pieter Hintjens <<a href="mailto:ph@imatix.com">ph@imatix.com</a>><br>
Date:   Sat Sep 22 10:54:11 2012 +0200<br>
<br>
    Optimization for zlist_remove last seen item<br>
<br>
:040000 040000 525da044b721454a494c0f6b80c6c0cef7d18adc fd0c04f0926481cce77f3a6fa195f54326239c1c M      src<br>
_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
<a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
</blockquote></div><br></div>