Re: swapcontest usage in syncio.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 07, 2012 at 03:01:56AM -0700, Anand Avati wrote:
> I cannot find a code path where synctask_get() happens without a
> synctask_set() happening in the same thread. Did you manage to find one?

Here is the kind of trace I can get in rebalance.log, after the first
synctask_new invocation (self is pthread_self() return value).

[syncop.c:216:synctask_new] 0-: self = 0xb8000000, newtask = 0xb7f02400
[syncop.c:291:synctask_switchto] 0-: self = 0xb9e00000, synctask_set(0xb7f02400)
[syncop.c:120:synctask_wrap] 0-: self = 0xb8000000, synctask_get() = 0x0, old_task = 0xb7f02400

And here of course it crashe, the reason is obvious. I can work it around 
by using old_task for the tésk in :synctask_wrap(), but I get other nasty
crashes around swapcontext(), which suggests the work around does not fix
the root cause.

By the way, why use swapcontext()? There was no simplier way of doing it?

-- 
Emmanuel Dreyfus
manu@xxxxxxxxxx



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux