Project: mesos
Issue MESOS-2464: Authentication failure may lead to slave crash
When slave authentication fails, the following attempt to transmit a {{UnregisterSlaveMessage}} may cause a crash within the slave. {noformat} E0309 01:08:34.819758 336699392 slave.cpp:740] Master master@192.168.178.20:5050 refused authentication I0309 01:08:34.819787 336699392 slave.cpp:538] Master refused authentication; unregistering and shutting down [libprotobuf FATAL google/protobuf/message_lite.cc:273] CHECK failed: IsInitialized(): Can't serialize message of type "mesos.internal.UnregisterSlaveMessage" because it is missing required fields: slave_id.value libprocess: slave(1)@192.168.178.20:5051 terminating due to CHECK failed: IsInitialized(): Can't serialize message of type "mesos.internal.UnregisterSlaveMessage" because it is missing required fields: slave_id.value {noformat} The problem here is the following code: {noformat} UnregisterSlaveMessage message_; message_.mutable_slave_id()->MergeFrom(info.id()); {noformat} Authentication happens before registration. {{info.id}} is an optional member (of {{SlaveInfo}}) and not known yet. It is set later, while registering. So {{slave_id}} will remain unset.
Story points: 1