mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vinod Kone <vinodk...@gmail.com>
Subject Re: Review Request 55480: Fix segfault when the executor ID is not a valid v4 UUID.
Date Fri, 13 Jan 2017 04:53:17 GMT


> On Jan. 13, 2017, 4:52 a.m., Vinod Kone wrote:
> > Thanks for the fix!
> > 
> > Would you mind updating the `StatusUpdateCallFailedValidation` test in executor_http_api_tests.cpp
to include this case?

Also if you can create a ticket for this, and set target versions to 1.0, 1.1 and 1.2 with
"blocker" priority, we will make sure to backport it.


- Vinod


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/55480/#review161484
-----------------------------------------------------------


On Jan. 12, 2017, 11:52 p.m., Aaron Wood wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/55480/
> -----------------------------------------------------------
> 
> (Updated Jan. 12, 2017, 11:52 p.m.)
> 
> 
> Review request for mesos and Anand Mazumdar.
> 
> 
> 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 abd9b1248 
> 
> 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
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message