> 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