On 05/22/2010 03:41 PM, Emmanuel Anne wrote:
> Yeah saw that. Except that it does not make sense : the zfs command uses
> only 1 thread, so it can't create a race condition on threads alone.
>
Well mind the subtlety: I am not saying anything was _fixed_ in the
latest version. I'm saying: cannot reproduce with latest testing branch.
It's close, but not equivalent.
I found out about that particular patch (cc745d5b84) by systematically
bisecting the bug (the disappearing edge in the repo).
As shown, I cherry-picked just that commit and the problem vanishes. Hmmm
I'm pretty sure that if I bisected for the appearing edge I'd find 8b6b9
(introducing the ioctl threads). No time though.
I _would_ agree that it would be a good idea to try to analyse the root
cause for assert a bit further instead of just stating "cannot be
reproduced with the latest version"More likely, it was a side effect
because somme assertions were disabled in
> the optimized build (in this case the error is not always reported at the
> right place).
>
Don't know what you are getting at. I use debug=2 exclusively when
reproducing bugs. debug=2 implies -O0, so no optimizations _and_ with
asserts.
> Anyway the failed assertion (0) was totally correct, it was because it was
> trying to add a 2nd element which was already here on an avl tree. Nothing
> important here.
> And you can get the exact same error message (assertion 0 failed) by using
> this git version :
> git checkout 88105bb84206e257f5507ce96f4ce7c9aee30e71
> which is the commit just before your fix for the threads.
>
I know that. See above
This simply means that hitting the avl assert is related to the
threading bug. I'm not suggesting _how_ it was related. It simply is
related.
> But anyway if you want to dig this further, do so, anyway the commit is on
> my branch, you are not obliged to merge it !
>
I will have a look. Currently trying to reproduce other failures from
the tracker. Reopened #44 awaiting better analysis, then