Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-8915

Re-enable ProcessTest.Process_BENCHMARK_DispatchDefer on Windows

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Environment:

      Windows with Visual Studio 15.7.1 (not earlier)

      Description

      After updating to Visual Studio 15.7.1, the following code in the setup for the eponymous test no longer compiles:

       

        template <typename T>
        Future<Nothing> handler(const T& data)
        {
          count++;
          if (count >= repeat) {
            promise->set(Nothing());
            return Nothing();
          }
      
          dispatch(self(), &Self::_handler).then(
              defer(self(), &Self::handler<T>, data));
      
          return Nothing();
        }
      

      Specifically it fails with the error:

      ..\3rdparty\libprocess\src\tests\benchmarks.cpp(566): error C2276: '&': illegal operation on bound member function expression
      ..\3rdparty\libprocess\src\tests\benchmarks.cpp(566): note: This diagnostic occurred in the compiler generated function 'process::Future<Nothing> DispatchProcess::handler(const T &)'
      

      That is, the compiler is (now) complaining that &Self::handler<T> is invalid.

      I debugged this a little bit with Michael Park, but we don't know what's gone wrong (especially considering similar code is working elsewhere, specifically ProcessTest.Dispatch and etc.). Fortunately, it only affects this single test, so the code is being turned off until we can break it down and fix it.

      We already tried to (1) declare _handler before handler, and (2) changed _handler's access specifier to be public.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                andschwa Andrew Schwartzmeyer
                Reporter:
                andschwa Andrew Schwartzmeyer
                Shepherd:
                Andrew Schwartzmeyer
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: