Re: glusterfs blocked.

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

 



> We want to place file on any subvol other than local ,in the contrary of
> NUFA。

> From GDB ,syncop_getxattr is on the same backtrace of
> "event_dispatch_epoll_handler" which runing in main thread.So any response
> can not come in ?

That is the short answer.

syncop_* calls need to be executed in a non-epoll thread because of how synctask_yield
works. synctask_yield ensures that the syncop_* function proceeds with its execution only
if the corresponding FOP call back is done. i.e, the calling thread will be blocked. If the
calling thread is an 'epoll thread', it could result in a deadlock. By blocking the epoll
thread, you are preventing further socket reads/writes from that socket. If this socket happens
to belong to one of those servers from which you are expecting a reply then you have a deadlock.
Does that make sense?

NB My answers are based on current master code. Accuracy may vary with older versions 

~KP
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel





[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