License Forwarder needs to know when to autoupgrade

If you upgrade Deadline, the license forwarder keeps on trucking unaware that it needs to reboot and update itself.

FileFormatException -- An error occurred while deserializing the Data property o
f class Deadline.Net.DeadlineMessage: Element 'SlaveName' does not match any fie
ld or property of class Deadline.LicenseForwarder.LicenseForwarderMemento.
Exception.Data: ( )
Exception.TargetSite: System.Object DeserializeMemberValue(MongoDB.Bson.IO.BsonR
eader, MongoDB.Bson.Serialization.BsonMemberMap)
Exception.Source: MongoDB.Bson
Exception.HResult: -2146233033
  Exception.StackTrace:
   at MongoDB.Bson.Serialization.BsonClassMapSerializer.DeserializeMemberValue(B
sonReader bsonReader, BsonMemberMap memberMap)
   at MongoDB.Bson.Serialization.BsonClassMapSerializer.Deserialize(BsonReader b
sonReader, Type nominalType, Type actualType, IBsonSerializationOptions options)

   at MongoDB.Bson.Serialization.BsonClassMapSerializer.Deserialize(BsonReader b
sonReader, Type nominalType, IBsonSerializationOptions options)
   at MongoDB.Bson.Serialization.BsonSerializer.Deserialize(BsonReader bsonReade
r, Type nominalType, IBsonSerializationOptions options)
   at MongoDB.Bson.Serialization.BsonSerializer.Deserialize(Stream stream, Type
nominalType)
   at MongoDB.Bson.Serialization.BsonSerializer.Deserialize(Byte[] bytes, Type n
ominalType)
   at MongoDB.Bson.Serialization.BsonSerializer.Deserialize[TNominalType](Byte[]
 bytes)
   at Deadline.Net.DeadlineMessageUtils.ReceiveDeadlineMessage(NetworkStream net
workStream, TimeSpan timeout)
   at Deadline.LicenseForwarder.LicenseForwarderThread.a(NetworkStream A_0, Int3
2 A_1)
   at Deadline.LicenseForwarder.LicenseForwarderThread.a(IAsyncResult A_0)

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
::ffff:192.168.94.41 has connected
License Forwarder Thread - Exception (::ffff:192.168.94.41): An error occurred w
hile deserializing the Data property of class Deadline.Net.DeadlineMessage: Elem
ent 'SlaveName' does not match any field or property of class Deadline.LicenseFo
rwarder.LicenseForwarderMemento.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Ditto with pulse. Can put your farm into a funky state.

None of the apps actually know they need to restart. You need to restart them from the wonder that is the Launcher. That whole, “I’m starting things up, does anything need upgrading” business.

Does it not check when starting the Forwarder?! It should say in the logs when it’s starting things up.

If slaves are idle, pulse should detect a new repository and upgrade itself. If it’s no longer compatible, it’s a liability.

I’ll throw that in as a feature request. I don’t see much harm in Slaves automatically upgrading themselves except if there’s an error where they all start trying to suck down the bin.zip over and over again.