* Added so it is possible to configure number of workers when spawning UbaAgent (mostly for debugging)
[CL 35873914 by henrik karlsson in ue5-main branch]
* Changed so network client/server listen to 0.0.0.0 by default instead of traversing network adapters.
Thanks ZeroErrors[at]github for reporting the issue with the network adapter traversal.
[CL 35535974 by henrik karlsson in ue5-main branch]
* Changed event to use clock CLOCK_MONOTONIC for linux and changed to pthread_cond_timedwait_relative_np for mac.
* Changed GetTime to use clock_gettime_nsec_np(CLOCK_UPTIME_RAW) for mac.
These changes are to attempt to fix the 10minute event timeouts that are not 10 minutes but rather a second.
[CL 35063177 by henrik karlsson in ue5-main branch]
* Fixed potential race condition related to additional connections and them being added while send call picks up and use the connection before callbacks are set and there is an disconnect
[CL 34858451 by henrik karlsson in ue5-main branch]
* Moved m_isConnected event Set call to inside write lock for connected functions to make sure connected functions are only called once
* Added delete of copy ctor and assignment
[CL 34773910 by henrik karlsson in ue5-main branch]
* Added error code to NetworkMessage to be able to diagnose "failed to connect" errors in cache client
[CL 34385738 by henrik karlsson in ue5-main branch]
* Optimized cache entry matching
* Added StoreCasKey and changed some StoreCasFile to StoreCasKey in CacheClient which does not need to store cas files
* Changed some parts of the code to use string keys instead of strings since the keys are designed to have correct casing
[CL 34027529 by henrik karlsson in ue5-main branch]
* Fixed serious bug related to child processes on helper machines getting process ids that collides with ids of root processes coming from server
* Fixed bug in trace reader causing reusable processes to get no stats
* Added good-to-have asserts
[CL 33064711 by henrik karlsson in ue5-main branch]
* Fixed so tracked inputs can be bigger than 512kb (ouch)
* Added to BinaryWriter so you can always write utf8 even though platform is not utf8
* Fixed bug in IsKnownSystemFile (there was a missing comma on one line). Added unit test
* Added Swap function to MemoryBlock which can be used to swap content of memoryblocks
* Added Parse function to StringBuffer that can parse a wchar stringbuffer into a char array
* Fixed TimeToText for times over 24 hours
* Added some accessors to Session
* Fixed so some temp files are not tracked as inputs for detoured process
* Added assert when message is created without body (it is a special case scenario)
* Removed final keyword on NetworkClient to be able to subclass in export logic (it is just easier)
[CL 32870061 by henrik karlsson in ue5-main branch]
* Fixed so NetworkMessage can be created without initialized
* Removed unused code
* Fixed StorageClient::SendBatchMessages so it deletes correct number of messages if it disconnects in the middle of transfer
[CL 32262740 by henrik karlsson in ue5-main branch]
* Huge stability push... all (known) paths have been tested heavily on linux with tsan and every single found race condition report has been fixed. Lots of locks have been added/moved/changed and some instances of things have been leaked on purpose to prevent tsan reports during shutdown
* More efficient storage proxy implementation which immediately forward segments to clients once they are available in proxy
* Added UbaAgent -command=x which can be used to send commands to host. Supported commands are "status"which prints out status of all remote sessions. "abort/abortproxy/abortnonproxy" that can be used to abort remote sessions and "disableremote" to have host stop accepting more helpers
* Fixed scheduler::stop bug if remotes were still requesting processes
* Added support for process reuse on linux/macos
* Added support for Coordinator interface and dynamically load coordinator dll in UbaCli
* Restructured code a little bit to be able to queue up all writes in parallel
* Added Show create/write colors to visualizer (defaults to on)
* Fixed so write file times are visualized in visualizer
* Improved socket path for visualizer
* Improved a lot of error messages
* Fixed double close of memory handle in StorageServer
* Changed some ScopedWriteLock to SCOPED_WRITE_LOCK (same for read locks)
* Fixed some missing cleanup of trace view when starting a new trace view in visualizer
[CL 32137083 by henrik karlsson in ue5-main branch]
* Changed so in-process storage proxy is using memory network backend for communication with client
[CL 31982524 by henrik karlsson in ue5-main branch]
* Fixed race condition in UbaNetworkClient related to message ids and returning message ids after use
* Implemented network backend that is using memory for communication (will be used between client and proxy server when running inproc)
* Added connection uid provided by network backend to be able to improve error messages
* Added NetworkBackend GetTotalSendAndRecv that can be used to fetch all traffic on backend
[CL 31981782 by henrik karlsson in ue5-main branch]
* Changed NetworkMessage to use a callback for when message is done and moved event out of message. This is a change in preparation for UbaStorageProxy optimization
[CL 31865186 by henrik karlsson in ue5-main branch]
* Added Uba NetworkClient::StopAll
* Fixed shutdown race condition in NetworkClient
* Changed client work count from 16 to no of logical cores
[CL 31795950 by henrik karlsson in ue5-main branch]
* Changed so all ScopedReadLock and ScopedWriteLock are macros (SCOPED_READ_LOCK and SCOPED_WRITE_LOCK).. this to be able to add code around the lock to measure contention. Contention testing code can be enabled by setting UBA_TRACK_CONTENTION to 1
[CL 31795889 by henrik karlsson in ue5-main branch]
* Fixed deadlock in client that could happen if client connecting timed out at the same time as it managed to connect. There were lots of race conditions in this code around these scenarios. Current implementation should be properly fixed
[CL 31756699 by henrik karlsson in ue5-main branch]
* Fixed shutdown issues where client and server did not wait for connection to be closed before closing down
* Added error handling for trying to decompress bad cas files
[CL 31715626 by henrik karlsson in ue5-main branch]
* Added more description when failing to drop cas db entry
* Added cas entry lock around code that copy or link file out
* Added more fixes for things reported by tsan/asan
[CL 31708309 by henrik karlsson in ue5-main branch]
* Fixed a bug in UbaWorkManager shutdown where intrusive linked list contains bad instances while deleting workers
* Fixed more tsan errors when doing ctrl-c on host
[CL 31676297 by henrik karlsson in ue5-main branch]