Commit Graph

41 Commits

Author SHA1 Message Date
henrik karlsson
3569193613 [Uba]
* Moved TestDetouredTouch to only linux since it fails on mac and was not run there before my changes.

[CL 32626857 by henrik karlsson in ue5-main branch]
2024-03-29 19:00:54 -04:00
henrik karlsson
2ab9ae58c2 [Uba]
* Moved TestRemoteDetouredClang to only linux since it fails on mac and was not run there before my changes.

[CL 32625992 by henrik karlsson in ue5-main branch]
2024-03-29 18:26:49 -04:00
henrik karlsson
897e09429a [UBA]
* Fixed stdout logging when process is executed through cmd.exe
* Added support for more detoured code paths to handle python and nodejs execution

[CL 32569923 by henrik karlsson in ue5-main branch]
2024-03-28 02:03:40 -04:00
henrik karlsson
9dbac69553 [UBA]
* Removed TestStdOutLocal on linux since it fails and the code path in TestAppPosix is not implemented

[CL 32537234 by henrik karlsson in ue5-main branch]
2024-03-27 02:14:38 -04:00
henrik karlsson
dd0af54454 [UBA]
* Fixed bug where pipes between processes did not work properly on wine
* Added unit tests for pipes (win only)
* Improved error message when failing to open file
* Fixed so .obj is seen as output files from ispc.exe
* Fixed up application path when creating child processes

[CL 32537147 by henrik karlsson in ue5-main branch]
2024-03-27 01:44:06 -04:00
henrik karlsson
5b63e2a3e9 [UBA]
* Added support for running individual unit tests from command line

[CL 32188443 by henrik karlsson in ue5-main branch]
2024-03-12 15:22:34 -04:00
henrik karlsson
06f1fc5332 [UBA]
* Lowered stack usage for some unit tests to see if that solves macos failures

[CL 32146672 by henrik karlsson in ue5-main branch]
2024-03-10 00:06:20 -05:00
henrik karlsson
5dc54a8104 [UBA]
* 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]
2024-03-08 18:31:48 -05:00
henrik karlsson
5511083ddb [UBA]
* Fixed bug in binarywriter/reader for wide characters that has a higher numeric value (like korean characters)

[CL 32077280 by henrik karlsson in ue5-main branch]
2024-03-06 21:21:30 -05:00
henrik karlsson
3522a7bcd6 [UBA]
* Added __try/__catch to UbaAgent main and disabled the other seh exception handling to see if we get more luck with this on wine/linux
* Moved code from SessionClient ctor to start function to get around ordering issue where session can get connection callback in ctor
* Compile fix for test code caused by previous changelist

[CL 31982469 by henrik karlsson in ue5-main branch]
2024-03-03 23:33:30 -05:00
henrik karlsson
ffbd2809a5 [UBA]
* 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]
2024-03-03 21:07:10 -05:00
henrik karlsson
1bd3b05737 [UBA]
* Changed UbaAgent max connection count from 4 to 8 to improve throughput when being proxy
* Changed UbaAgent worker count for storage proxy from 16 to 192.. these workers are just receiving/sending data and need to be able to go wide
* Fixed so UbaCli use storage proxy when testing in process client

[CL 31796094 by henrik karlsson in ue5-main branch]
2024-02-26 01:37:10 -05:00
henrik karlsson
5c8c7121f1 [UBA]
* Fixed allocation to make sure it honors alignments
* Added error handling in trace code. It will stop writing when running out of shared mem

[CL 31533514 by henrik karlsson in ue5-main branch]
2024-02-15 15:36:01 -05:00
henrik karlsson
141b357011 [Uba]
* Added code to validate that connections from server to client are all from the same server. Solved by giving servers a unique id and made sure it is part of connection handshake with client. Client will just discard connections that is providing a different server uid than the first connection

This will hopefully fix the bug seen on our farm a couple days ago. Theory is that two servers managed to connect to the same helper. First server is just about to start connecting to a helper when helper is brought down and restarted to help another server. Some sort of stall happens on first server and once it starts the actual tcp connection the helper has been brought up to help the other server. The helper allows more than one tcp connection for performance reasons so will accept tcp connection from both old and new server. In this messed up scenario some messages would go to one server and some to the other.. causing all kinds of weird things. It is critical that all connections go to the same server since all messages are just round robin the tcp connections.

[CL 31460950 by henrik karlsson in ue5-main branch]
2024-02-14 01:23:19 -05:00
henrik karlsson
2ecaf5607e [UBA]
* Fixed unit test compile errors
* Fixed race condition in unit test shutdown

[CL 31374569 by henrik karlsson in ue5-main branch]
2024-02-11 18:22:11 -05:00
henrik karlsson
34b52deafb [UBA]
* 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]
2024-02-09 16:12:12 -05:00
henrik karlsson
eee33ba668 [UBA]
* Fixed so stdout/err is redirected to pipe on detoured processes on linux/mac.. this should fix so errors are visualized in the right place
* Added -nostdout to UbaCli to be able to check that redirected stdout/err works
* Added version for process messages to catch issues where ppl have old ubaagent.exe but new ubadetours.dll
* Added capacity parameter to FixPath and added asserts to check that we never write outside capacity
* Fixed code creating g_virtualApplication buffer.
* Disabled asserts for mac non debug builds
* Removed detoured write/fwrite for posix now when we instead redirect stdout/err
* Enabled some unit tests for linux now when they work as intended regarding redirected stdout/err

[CL 31029918 by henrik karlsson in ue5-main branch]
2024-01-30 19:05:51 -05:00
henrik karlsson
0eaf4b8111 [UBA]
* Fixed some error handling for posix
* Improved some logging
* Disabled some unit tests on linux because they always fail

[CL 30991796 by henrik karlsson in ue5-main branch]
2024-01-30 02:17:34 -05:00
henrik karlsson
9366bc899f [Uba]
* Skip clang test if clang does not exists on machine

[CL 30984644 by henrik karlsson in ue5-main branch]
2024-01-29 21:46:35 -05:00
henrik karlsson
6aeefa8f73 [Uba]
* Disable storage unit test for linux for now. need help getting access to a machine that this fails on.. all machines I've tested on works

[CL 30963185 by henrik karlsson in ue5-main branch]
2024-01-29 02:16:16 -05:00
henrik karlsson
7eaa01d676 [Uba]
* Fixed linux unit test errors

[CL 30878478 by henrik karlsson in ue5-main branch]
2024-01-25 00:54:43 -05:00
henrik karlsson
b2caa842dc [Uba]
* Added more info to test error output

[CL 30872986 by henrik karlsson in ue5-main branch]
2024-01-24 21:18:45 -05:00
henrik karlsson
659c4c9101 [UBA]
* Changed so com memory is not split up in read and write since they never overlap.. so both read and write can use all the memory

[CL 30871523 by henrik karlsson in ue5-main branch]
2024-01-24 20:33:10 -05:00
zack neyland
718701a101 UBA: Remove Touch test from Mac running.
[CL 30699426 by zack neyland in ue5-main branch]
2024-01-18 17:53:11 -05:00
zack neyland
e35aaea9ec UBA: Fix up tests on Mac.
* Need to grab the actual clang binary location and the SDK path.

[CL 30670808 by zack neyland in ue5-main branch]
2024-01-17 17:20:04 -05:00