* Added support for strings and comments in config files
* Added tests
* Fixed for uba to work integrated in other programs (proper dll exports)
* Added process id to process info in visualizer
[CL 34364596 by henrik karlsson in ue5-main branch]
* Added extra validation when writing cache entries
* Disabled directory preparsing when fetching cache entries for now
[CL 34100764 by henrik karlsson in ue5-main branch]
* Renamed system stats to kernel stats
* Changed all stats storing to use bitfield first to say which fields that are non-zero
[CL 34058881 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 fallback code for not finding caskey for file to compare caskeys with matching compression flags
[CL 33907932 by henrik karlsson in ue5-main branch]
* Fixed code related to process reuse. It was not resetting variables properly
* Added support for detoured SHGetKnownFolderPath
* Fixed so logs for remote child processes are networked over to server when remoteLogs are enabled
* Improved some assert messages
* Fixed some binaryreaderwriter mismatches (they where harmless, just caused asserts)
* Fixed so local system temp folder can always be found when recursing from root to system temp. This is a horrible hack because it could cause bad conflicts between host file system and helper file system.. but solves current problems
* Moved removal of \\?\ into FixPath
[CL 33517723 by henrik karlsson in ue5-main branch]
* Added header to compressed obj files containing the cas key of the compressed file
* Fixed so compressed obj files work with cache system
[CL 33236459 by henrik karlsson in ue5-main branch]
* Fixed option to manually handle storage overflow
* Enabled this option in cache server
* Fixed bug where cas files received from client was not added to written files linked list used to decide which files to evict first
[CL 32950775 by henrik karlsson in ue5-main branch]
* Added artifact cache support. It is now possible to skip running process and instead just download outputs if inputs matches cache entry.
[CL 32870344 by henrik karlsson in ue5-main branch]
* Added so process input dependencies can be tracked on remote compiles and sent back to host.
* Changed so ApplicationRules is a pointer on the ProcessStartInfo instead.. this in preparation of being able to have custom application rules but also be able to query rules before process instance is created
* Added support for suppressing error log if FileAccessor open file fails
* Fixed so BytesToText show bytes when under 1kb
* Fixed potential shutdown race related to process exiting and session instance being destroyed
* Some minor fixes here and there related to logging
* Changed process IsDetoured to GetExecutionType enum
[CL 32777954 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]
* Added support for handling server side messages and send response later
* Changed so storage proxy errors are muted when disconnected
* Improved error messages
[CL 31981923 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]
* Disabled custom signal handler in UbaHost in case this is the reason we get crashes in ubt
* Changed some logging from Info to Detail
[CL 31742437 by henrik karlsson in ue5-main branch]
* Fixed read-after-free bug found by TSAN in StorageServer.cpp
* Fixed write-after-free bug found in UbaProcess.cpp (m_cancelEvent.Set() could be called after memory was freed)
* Lots of minor fixes found using TSAN. Most are harmless but still nice to cleanup
* Disabled mimalloc for linux again.. seems like tsan does not like it so maybe there are bugs in it
[CL 31676014 by henrik karlsson in ue5-main branch]
* Fixed write-after-free bug in code writing cas file to disk
* Fixed write-after-free bug in code cleaning up finished processes in session client code
* Added some asserts
* UbaCli - disabled remote logging in non-debug configs
[CL 31632262 by henrik karlsson in ue5-main branch]
* Fixed so server side code sending cas to client does not have to send messages in order. If file is larger than 16mb we use file mapping instead with random access.
[CL 31607373 by henrik karlsson in ue5-main branch]
* Added code to handling uba::ReadFile trying to read file with less bytes than requested. It will try for 3 seconds and then fail with a message saying it read 0 bytes for 3 seconds
* Added more information to error messages
[CL 31461069 by henrik karlsson in ue5-main branch]
* Added hint to unmapfileview to be able to add useful information to asserts on fails
* Added error handling for vsnprintf returning error
* Fixed memory stomp in unit test
* Removed usage of %hs on non-windows since asan complains about it
* Changed UBA_USE_MIMALLOC to always be defined and be 0 or 1 instead of using ifdef
* Enabled mimalloc on linux
[CL 31355077 by henrik karlsson in ue5-main branch]
* Fixed bug that could cause an infinite build hang if agent with multiple tcp connections disconnected while retreiving files
[CL 30284803 by henrik karlsson in ue5-main branch]