I got my new smartos image and alos samba 4.1.10 built, it works, no more 'net ads join' crashes.
Your help is absolutely appreciated. Thanks, -Youzhong On Fri, Aug 1, 2014 at 9:42 AM, Youzhong Yang <youzh...@gmail.com> wrote: > Thanks very much for the quick fix. > > I'll build a new image and also samba, then report back after testing. > > -Youzhong > > > On Fri, Aug 1, 2014 at 4:56 AM, Bryan Cantrill <bryancantr...@gmail.com> > wrote: > >> >> Perfect -- thank you! As it turns out, this was -- as you surmised -- a >> bug in our epoll implementation. I have pushed the fix: >> >> >> https://github.com/joyent/illumos-joyent/commit/471f1f3ef02e25a84d7c36c857ed260ae2b7ac99 >> >> Thanks for taking the time for the clean test case -- and apologies for >> the bug! >> >> - Bryan >> >> >> On Thu, Jul 31, 2014 at 7:28 AM, Youzhong Yang <youzh...@gmail.com> >> wrote: >> >>> Thanks Bryan. >>> >>> I take back what I said. epoll_* does not ignore epoll_event.data passed >>> in. >>> >>> I managed to reproduce the issue with a program rewritten from yours: >>> >>> # gcc myepoll.c >>> # ./a.out >>> EPOLL_CTL_ADD: fd = 4, ptr = fffffd7fffdffba0 >>> writing to pipe fd 5 >>> written 6 bytes to fd 5 >>> Got an event on fd 4, events = 1, ptr = fffffd7fffdffba0 >>> got 6 bytes from fd 5 >>> EPOLL_CTL_DEL: fd = 4, ptr = fffffd7fffdffba0 >>> EPOLL_CTL_ADD: fd = 4, ptr = fffffd7fffdffb80 >>> writing to pipe fd 5 >>> written 6 bytes to fd 5 >>> Got an event on fd 4, events = 1, ptr = fffffd7fffdffba0 >>> got 6 bytes from fd 5 >>> >>> As it indicates, the issue here is that after EPOLL_CTL_DEL, and then >>> EPOLL_CTL_ADD of the same file descriptor with a new data.ptr, epoll_wait >>> still returns an old pointer. >>> >>> C code is attached for your reference. >>> >>> Thanks very much, >>> >>> -Youzhong >>> >>> >>> On Wed, Jul 30, 2014 at 5:38 PM, Bryan Cantrill <bryancantr...@gmail.com >>> > wrote: >>> >>>> >>>> Seems like a bug, but not sure I entirely understand: there may be >>>> some edge conditions where data specified in the "data" field of the >>>> epoll_event structure via epoll_ctl() is not properly returned, but it's >>>> not true that SmartOS simply ignores it. Take, for example, the following >>>> program: >>>> >>>> https://us-east.manta.joyent.com/bcantrill/public/epoll_add.c >>>> >>>> (It's essentially the most basic possible use of epoll(5).) Compiling >>>> that program and running it yields (for me, anyway) the same result on >>>> SmartOS as it does on Linux: >>>> >>>> $ ./epoll_add >>>> writing to pipe >>>> adding event... >>>> parent: got an event on fd 4 >>>> >>>> I certainly don't doubt that there's a bug here -- I just don't think >>>> it's quite as broad as you're implying; could you point me to the core file >>>> for Samba and/or instructions as to how to reproduce the issue? >>>> >>>> - Bryan >>>> >>>> >>>> >>>> On Wed, Jul 30, 2014 at 2:08 PM, Youzhong Yang via smartos-discuss < >>>> smartos-discuss@lists.smartos.org> wrote: >>>> >>>>> Hi All, >>>>> >>>>> The man page of epoll_ctl says: >>>>> >>>>> The data field specifies the datum to be associated with the >>>>> event and will be returned via epoll_wait(3C). The events field >>>>> denotes both the desired events (when specified via epoll_ctl()) >>>>> and the events that have occurred (when returned via >>>>> epoll_wait(3C)). >>>>> >>>>> This does not seem to be the case and is not compatible with Linux's >>>>> implementation. Recently I tried to compile Samba 4.1.10 on smartos and >>>>> 'net ads join' just crashes. Samba uses epoll_event.data.ptr to keep track >>>>> of its tevent_fd data but epoll_ctl() on smartos simply ignores it and >>>>> does >>>>> not keep a copy of the 'data' structure and returns it when epoll_wait is >>>>> called. >>>>> >>>>> Can I assume this is an implementation specific bug? >>>>> >>>>> Thanks, >>>>> >>>>> -Youzhong >>>>> *smartos-discuss* | Archives >>>>> <https://www.listbox.com/member/archive/184463/=now> >>>>> <https://www.listbox.com/member/archive/rss/184463/21493597-819305a5> >>>>> | Modify >>>>> <https://www.listbox.com/member/?&> >>>>> Your Subscription <http://www.listbox.com> >>>>> >>>> >>>> >>> >> > ------------------------------------------- smartos-discuss Archives: https://www.listbox.com/member/archive/184463/=now RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00 Modify Your Subscription: https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb Powered by Listbox: http://www.listbox.com