----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/55480/#review161750 -----------------------------------------------------------
src/tests/executor_http_api_tests.cpp (line 635) <https://reviews.apache.org/r/55480/#comment233050> hmm, instead of having an update with two invalid fields (executor id and uuid), each block should just test one thing that is invalid. that way it is clear that the validation error is due to that specific invalid field. as such, i would add a separate block for UPDATE whose only invalid field is executor id. - Vinod Kone On Jan. 13, 2017, 4:46 p.m., Aaron Wood wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/55480/ > ----------------------------------------------------------- > > (Updated Jan. 13, 2017, 4:46 p.m.) > > > Review request for mesos and Anand Mazumdar. > > > Bugs: MESOS-6917 > https://issues.apache.org/jira/browse/MESOS-6917 > > > Repository: mesos > > > Description > ------- > > This fixes the segfault that occurs when an executor sets a UUID that's not a > valid v4 UUID and sends it off to the agent: > > ``` > ABORT: (../../3rdparty/stout/include/stout/try.hpp:77): Try::get() but state > == ERROR: Not a valid UUID > *** Aborted at 1484262968 (unix time) try "date -d @1484262968" if you are > using GNU date *** > PC: @ 0x7efeb6101428 (unknown) > *** SIGABRT (@0x36b7) received by PID 14007 (TID 0x7efeabd29700) from PID > 14007; stack trace: *** > @ 0x7efeb64a6390 (unknown) > @ 0x7efeb6101428 (unknown) > @ 0x7efeb610302a (unknown) > @ 0x560df739fa6e _Abort() > @ 0x560df739fa9c _Abort() > @ 0x7efebb53a5ad Try<>::get() > @ 0x7efebb5363d6 Try<>::get() > @ 0x7efebbd84809 > mesos::internal::slave::validation::executor::call::validate() > @ 0x7efebbb59b36 mesos::internal::slave::Slave::Http::executor() > @ 0x7efebbc773b8 > _ZZN5mesos8internal5slave5Slave10initializeEvENKUlRKN7process4http7RequestEE1_clES7_ > @ 0x7efebbcb5808 > _ZNSt17_Function_handlerIFN7process6FutureINS0_4http8ResponseEEERKNS2_7RequestEEZN5mesos8internal5slave5Slave10initializeEvEUlS7_E1_E9_M_invokeERKSt9_Any_dataS7_ > @ 0x7efebbfb2aea std::function<>::operator()() > @ 0x7efebcb158b8 > _ZZZN7process11ProcessBase6_visitERKNS0_12HttpEndpointERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_5OwnedINS_4http7RequestEEEENKUlRK6OptionINSD_14authentication20AuthenticationResultEEE0_clESN_ENKUlbE1_clEb > @ 0x7efebcb1a10a > _ZZZNK7process9_DeferredIZZNS_11ProcessBase6_visitERKNS1_12HttpEndpointERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_5OwnedINS_4http7RequestEEEENKUlRK6OptionINSE_14authentication20AuthenticationResultEEE0_clESO_EUlbE1_EcvSt8functionIFT_T0_EEINS_6FutureINSE_8ResponseEEERKbEEvENKUlS12_E_clES12_ENKUlvE_clEv > @ 0x7efebcb1c5f8 > _ZNSt17_Function_handlerIFN7process6FutureINS0_4http8ResponseEEEvEZZNKS0_9_DeferredIZZNS0_11ProcessBase6_visitERKNS7_12HttpEndpointERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5OwnedINS2_7RequestEEEENKUlRK6OptionINS2_14authentication20AuthenticationResultEEE0_clEST_EUlbE1_EcvSt8functionIFT_T0_EEIS4_RKbEEvENKUlS14_E_clES14_EUlvE_E9_M_invokeERKSt9_Any_data > @ 0x7efebb5ce8ca std::function<>::operator()() > @ 0x7efebb5c4b27 > _ZZN7process8internal8DispatchINS_6FutureINS_4http8ResponseEEEEclIRSt8functionIFS5_vEEEES5_RKNS_4UPIDEOT_ENKUlPNS_11ProcessBaseEE_clESI_ > @ 0x7efebb5d4e1e > _ZNSt17_Function_handlerIFvPN7process11ProcessBaseEEZNS0_8internal8DispatchINS0_6FutureINS0_4http8ResponseEEEEclIRSt8functionIFS9_vEEEES9_RKNS0_4UPIDEOT_EUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_ > @ 0x7efebcb30baf std::function<>::operator()() > @ 0x7efebcb13fd6 process::ProcessBase::visit() > @ 0x7efebcb1f3c8 process::DispatchEvent::visit() > @ 0x7efebb3ab2ea process::ProcessBase::serve() > @ 0x7efebcb0fe8a process::ProcessManager::resume() > @ 0x7efebcb0c5a3 > _ZZN7process14ProcessManager12init_threadsEvENKUt_clEv > @ 0x7efebcb1ea34 > _ZNSt12_Bind_simpleIFZN7process14ProcessManager12init_threadsEvEUt_vEE9_M_invokeIJEEEvSt12_Index_tupleIJXspT_EEE > @ 0x7efebcb1e98a > _ZNSt12_Bind_simpleIFZN7process14ProcessManager12init_threadsEvEUt_vEEclEv > @ 0x7efebcb1e91a > _ZNSt6thread5_ImplISt12_Bind_simpleIFZN7process14ProcessManager12init_threadsEvEUt_vEEE6_M_runEv > @ 0x7efeb6980c80 (unknown) > @ 0x7efeb649c6ba start_thread > @ 0x7efeb61d282d (unknown) > Aborted (core dumped) > ``` > > > Diffs > ----- > > src/slave/validation.cpp abd9b12 > src/tests/executor_http_api_tests.cpp 872caf6 > > Diff: https://reviews.apache.org/r/55480/diff/ > > > Testing > ------- > > Verified by making sure no segfault occurs when rebuilding Mesos with this > fix and pointing our framework at it. Our framework is currently not > generating v4 UUIDs which was exposing the issue. > > > Thanks, > > Aaron Wood > >
