Did some investigations in the morning, then I was late for a meeting after my long walk. Ok, I was just about 5 minutes late. They discussed this and that, etc, but then Mike asked me what I've been doing; I told him about this old issue; he suggested to drop it, and go check out an ops case - where I've been waiting for more info, actually. Will do. Later today.
Meanwhile, I asked Chris about that Vault code, and he told me the story. He had not been working on it for years. And the functionality ("aske again for new credentials if the old ones are expired") were actually never implemented. Well, even with the current implementation they could have done better.
Also, we had a funny discussion regarding how come the people, following a dumb "typesafe" approach of comparing instances (their idea was to make sure we have the same type) just breaks Liskov's principle. But that's a general approach. When "typesafe" circe json parser gets a JSON, and tries to instantiate a value of a class from that data, and if that JSON contains something more than the class constructor needs, it's considered an error. Now imagine, you go to a web site, download something, but eventually that company (or just that team) decides to add a new field, like "update date", or "author reference" - and kaboom! Another non-Liskov crash. Those people are ignorant, I think.
In this specific case of redefining equals, they (our engineers) carefully compare the fields of the case class. Now if somebody adds a field to that case class, they'll have to be on alert - where else the structure of the class is hard-code. WTF, if we know we have two instances of the same class (ok, or of a subclass), and if we are talking about a case class, just compare them! Scala compiler provides the right comparison code. Which is more efficient, since it also includes checking the hashcode (I hope). Compare it with comparing very long strings.
Whatever.
So, ok, I've closed the case, having got all this information, and found out how it crashes, and restarts the server every hour. Because its credentials expire every hour. Whatever. They've been warned.
Now, I took a break; will do some French, and get back to my work computer (which was, meanwhile, updated and rebooted).
Ok, opened my work computer, and I see a message from Mary, who suggests that I give my talk right away. I wrote to her, suggesting to make announcements at least a day before.
Ok, and besides, there's that old case I'm supposed to investigate. The accident happened on July 25th. Almost 2 months ago. Logs are available on datadog just for two weeks. So probably I'll need to go personally visit a dusty silo, find a magnetic tape... etc. Is not it challenging? Like in the movies.