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

MSVC build can segfault when composing authorization Action for updating reservation.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • None
    • 1.10.0
    • None
    • None

    Description

      The windows CI was crashing in MasterAPITest.ReservationUpdate test, adding stack traces revealed the following:

      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	
      google::protobuf::internal::RepeatedPtrIterator<mesos::Resource_ReservationInfo const >::operator* 
      [00007FF676253FEE+14] (c:\users\administrator\workspace\mesos\mesos_ci_windows-build-wip\mesos\build\3rdparty\protobuf-
      3.5.0\src\protobuf-3.5.0\src\google\protobuf\repeated_field.h:2266)
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000D03DFFCA40+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	mesos::authorization::ActionObject::reserve [00007FF6778AFE40+720] 
      (c:\users\administrator\workspace\mesos\mesos_ci_windows-build-wip\mesos\src\master\authorization.cpp:236)
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000D03DFFC8A8+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000D03DFFC9E8+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000D03DFFC558+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADCACC50F0+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADC8AA0690+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADC8AA0790+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADC8AA0790+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000D03DFFC2D8+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000D03DFFC450+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [0000000000000002+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000000000000000F+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADCA5F0C20+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADCA5F0C10+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADCA5EE5B0+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [000002ADCA5EE5A0+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      E0000 00:00:00.000000  5928 logging.cpp:308] RAW: 	(No symbol) [CCCCCCCCCCCCCCCC+0]
      ... (a lot more)
      

      asekretenko found with -fsanitize=address that we have are taking a reference to a temporary that will not have its lifetime extended:

        const RepeatedPtrField<Resource::ReservationInfo> ancestorReservations =
          RepeatedPtrField<Resource>(ancestor).begin()->reservations();
      

      Attachments

        Activity

          People

            bmahler Benjamin Mahler
            bmahler Benjamin Mahler
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: