That fix is relativley simple and contained to the content id resolvers themselves (ScyllaContentIdStore).
This bug exposed the confusing use of BlobIdentifier as both a identifier into the blob store (its original intent) and as a content id (which needs to be resolved before it can be used to locate a blob in the blob store).
So I added a new type for ContentId so we can keep track of this seperate, this required quite a lot more refactoring to handle properly (indicating how bad of a state this was in).
This also fixed a issue were ContentHash was not being serialized into compact binary representations in the api, which is now fixed.
This is a potentially dangerous change with lots of things impacted, added a unit test to cover exactly the case that prompted the bug in the first place.
#preflight 61f03244fd5285142b1cf1e5
[CL 18724565 by Joakim Lindqvist in ue5-main branch]
Added a test for multiple pattern schedules as well
#rnx
#jira none
#rb ben.marsh, ryan.durand
#preflight skip
[CL 18715378 by Ryan Hummer in ue5-main branch]
Also fixed:
- Logic error in the ListenerClient keepalive that would lead to keepalives being sent at >= 10 Hz rather than the intended 1 Hz.
- UTF8_TO_TCHAR conversion and logging of buffers that may not be null terminated.
- Uninitialized "Recipient" in flip monitor process, leading to "Trying to send message to disconnected client 205.205.205.205:52685" (endpoint = 0xCDCDCDCD...).
#jira none
#rb alejandro.arango, jason.walter, matt.johnson
#preflight 61ef03973154b79507c7df37
#ROBOMERGE-AUTHOR: zach.brockway
#ROBOMERGE-SOURCE: CL 18714387 in //UE5/Release-5.0/... via CL 18714400 via CL 18714784
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18714836 by zach brockway in ue5-main branch]
#rb Jonathan.Adamczewski
#jira UE-139892
#preflight 61eeecacef289ffc6df11d7f
#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 18711519 in //UE5/Release-5.0/... via CL 18711563 via CL 18711691
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18711705 by tim smith in ue5-main branch]
* Now uses a single interface for the blob and ref stores (IStorageClient).
* Added an OAuth message handler which refreshes an access token as necessary.
* Added HTTP implementation of IStorageClient.
#preflight none
[CL 18710086 by Ben Marsh in ue5-main branch]
Use a single vcpkg.json that is copied whenever building
Remove v141 libs
Remove unused grpc libs
#rnx
#rb trivial
#jira UE-127356
#preflight 61eecfdfef289ffc6dec4d63
#ROBOMERGE-AUTHOR: joe.kirchoff
#ROBOMERGE-SOURCE: CL 18709844 in //UE5/Release-5.0/... via CL 18709887 via CL 18710018
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18710030 by joe kirchoff in ue5-main branch]