Commit Graph

79 Commits

Author SHA1 Message Date
henrik karlsson
978134e2bf [UBA]
* Changed so ProcessStartupInfoHolder inherits from ProcessStartupInfo

[CL 34393813 by henrik karlsson in ue5-main branch]
2024-06-15 01:56:18 -04:00
henrik karlsson
8d1c317262 [UBA]
* Added support for starting processes suspended
* Added support for processes being able to start processes that are not child processes (services like mspdbsrv.exe etc)
* Moved wait-for-parent code to its own function

[CL 34393790 by henrik karlsson in ue5-main branch]
2024-06-15 01:44:18 -04:00
henrik karlsson
438fb65734 [UBA]
* Exposed more options out through creation structs and configs

[CL 34393761 by henrik karlsson in ue5-main branch]
2024-06-15 01:35:47 -04:00
henrik karlsson
d97e1a534e [UBA]
* Added tests for Create/Remove directory
* Misc small cleanups

[CL 34393738 by henrik karlsson in ue5-main branch]
2024-06-15 01:29:18 -04:00
henrik karlsson
5d18c91fe8 [UBA]
* Added option to be able to trace child processes in visualizer
* Made WriteDirectoryEntries offset output parameter optional
* Fixed so GetKeyAndFixedName can handle relative paths

[CL 34393678 by henrik karlsson in ue5-main branch]
2024-06-15 01:20:18 -04:00
henrik karlsson
0e04dc3843 [UBA]
* Added option to keep files in memory
* Added option to allow using output files (transferred via handle to session process)
* Added option to suppress logging

[CL 34393564 by henrik karlsson in ue5-main branch]
2024-06-15 00:56:16 -04:00
henrik karlsson
4ae98f4792 [UBA]
* Added support for GetLongPathName and RemoveDirectory for remote helpers

[CL 34393494 by henrik karlsson in ue5-main branch]
2024-06-15 00:37:17 -04:00
henrik karlsson
fdd2fd52c4 [UBA]
* 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]
2024-06-02 18:14:50 -04:00
henrik karlsson
502a9e44e2 [UBA]
* Added StringView type and replaced a ton of string+stringLen to StringView
* Fixed bug in obj file preloader.
* Fixed so clang targets can used compressed obj files
* Fixed bug in cache client when entry count is zero
* Added magic to compressed obj file header to be able to see if an obj file is compressed or not
* Moved ParseArguments to its own file and added so it can handle both char and wchar

[CL 33933853 by henrik karlsson in ue5-main branch]
2024-05-27 23:22:26 -04:00
henrik karlsson
09ddadcee3 [UBA]
* Fixed bug in cache client where it could create a caskey for a file that should always go through ShouldNormalize that matches caskey of non-normalized file
* Added timers around traverse directory calls to be able to see how much time that is spent in traversing directories

[CL 33855227 by henrik karlsson in ue5-main branch]
2024-05-23 01:51:09 -04:00
henrik karlsson
5b650691ad [UBA]
* Changed so uba consumes command line option "/extractsymbols" and will use that to decide if symbols should be extracted from obj file
* UbaObjTool - Some cleanups and optimizations. Also added code just to get it in the version control (will remove again)
* Renamed symbol files from .sym to .exi (exportimport) to not collide with already existing .sym extension

[CL 33787308 by henrik karlsson in ue5-main branch]
2024-05-21 00:36:22 -04:00
henrik karlsson
48cfe3206c [UBA]
* 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]
2024-05-08 12:53:11 -04:00
henrik karlsson
55d472590f [UBA]
* Added support for providing custom environment variables when creating UbaSession
* Reverted code using real environment variables when spawning processes...

[CL 33469655 by henrik karlsson in ue5-main branch]
2024-05-06 16:54:39 -04:00
henrik karlsson
8385e429fb [Uba]
* Changed so env variables are only explicitly populated if process is detoured

[CL 33436145 by henrik karlsson in ue5-main branch]
2024-05-03 16:38:09 -04:00
henrik karlsson
23db012ceb [UBA]
* Added more logging information when farm gets a include not found error. This is temporary and will be deleted once we have figured out why this can happen now and then.

[CL 33368684 by henrik karlsson in ue5-main branch]
2024-05-01 02:26:42 -04:00
henrik karlsson
cccbc8e4f2 [UBA]
* Added special handling for cmd.exe copy processes and prevent spawning external process. Saves quite a lot of time when there is lots of copying

[CL 33207440 by henrik karlsson in ue5-main branch]
2024-04-24 14:35:21 -04:00
henrik karlsson
19f7cccff9 [UBA]
* 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]
2024-04-18 01:10:16 -04:00
henrik karlsson
44a70ba88f [UBA]
* 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]
2024-04-10 20:21:25 -04:00
henrik karlsson
643c4ffe51 [UBA]
* 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]
2024-04-05 19:10:53 -04:00
henrik karlsson
9b17fef999 [UBA]
* Added support for storing .obj files compressed by cl.exe and then decompressed in-memory by link.exe. Note this is not properly implemented and only work for cl.exe+link.exe combo

[CL 32625054 by henrik karlsson in ue5-main branch]
2024-03-29 17:49:27 -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
3971e1cefd [UBA]
* Fixed badly formatted printf
* Added so failing to write output files return fail
* Moved a couple of message handlers to separate functions to solve stack complains from submit tool

[CL 32316873 by henrik karlsson in ue5-main branch]
2024-03-18 20:08:25 -04:00
zack neyland
8982d4c65b UBA: Bumping size limits for commandlines as some projects need >64k when building, due to all of the args/flags/paths/includes/etc.
[CL 32304771 by zack neyland in ue5-main branch]
2024-03-18 13:32:47 -04:00
henrik karlsson
f98fe6f4eb [UBA]
* Fixed exit race condition for posix processes... session can end up in a situation where it sees the process as exited without getting an exit message.. we have assumed this was a crash but it is actually just a matter of message wait event timing out just before the exit message is written, and then the detoured process manages to exit before the isProcessAlive-checking happens..

Solution is simply to do one more check for messages in the shared memory if an exit has happened without an exit message

[CL 32268295 by henrik karlsson in ue5-main branch]
2024-03-15 01:05:02 -04:00
henrik karlsson
fabf93ee7c [Uba]
* Added lots of more logging around processes disappearing without exit message
* Added descriptions to lots of asserts since macos refuse to give us good line numbers
* Added more error handling

[CL 32255038 by henrik karlsson in ue5-main branch]
2024-03-14 15:26:23 -04:00