Commit Graph

47 Commits

Author SHA1 Message Date
henrik karlsson
7647b785f2 [UBA]
* 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]
2024-06-14 02:35:27 -04:00
henrik karlsson
955a26ecbf [UBA]
* Fixed so visualizer can visualize traces coming from UbaCli without needing restart
* Added some more logging to cache server maintenance
* Fixed scroll wheel zoom in visualizer
* Fixed so network server DisconnectClients does not put server in a bad state

[CL 34213980 by henrik karlsson in ue5-main branch]
2024-06-07 16:29:55 -04:00
henrik karlsson
9ce26cf76d [UBA]
* Fixed bug in backward compatibility trace reader code

[CL 34060025 by henrik karlsson in ue5-main branch]
2024-06-03 01:31:23 -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
254933f909 [UBA]
* Fixed bug in visualizer for selecting times on the timeline

[CL 34035348 by henrik karlsson in ue5-main branch]
2024-05-31 12:40:24 -04:00
henrik karlsson
233c2cddb2 [UBA]
* Added stats tracking for get file attributes to get more information on what is stalling on the farm
* Enabled storage and system stats for cache misses

[CL 34020773 by henrik karlsson in ue5-main branch]
2024-05-30 19:43:04 -04:00
henrik karlsson
639a380cda [UBA]
* Fixed static analysis errors

[CL 33948663 by henrik karlsson in ue5-main branch]
2024-05-28 15:07:55 -04:00
henrik karlsson
f4e704099b [UBA]
* Fixed visualizer bug where clicking checkboxes causes dragging to hang

[CL 33918901 by henrik karlsson in ue5-main branch]
2024-05-26 18:07:20 -04:00
henrik karlsson
fc56ce5b68 [UBA]
* Fixed deadlock that could happen when lots of clients are connecting while maintenance is running
* Added UbaCli -cachecommand=<cmd> that can be used to query status of cache service
* Fixed code setting compressed byte on caskey to only use a bit
* Changed so a bit on the caskey can tell if a file is normalized or not
* Added stats for writing to cache to trace file
*

[CL 33880362 by henrik karlsson in ue5-main branch]
2024-05-23 19:16:15 -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
laura hermanns
141e60536e [UBA] Also assign left mouse button for drag-to-scroll mechanism in UbaVisualizer.
Allow both left and middle mouse buttons to be used for dragging/scrolling the view in UbaVisualizer.
This requires the internal state to be changed from a boolean to a reference-counter so that the set of input events don't cancel each other out.

#rnx
#rb Henrik.Karlsson

[CL 33845451 by laura hermanns in ue5-main branch]
2024-05-22 17:27:49 -04:00
laura hermanns
8e27c30419 [UBA] Fix scrolling UbaVisualizer with larger scroll ranges by using 32-bit information instead of 16-bit.
Use GetScrollInfo() instead of HIWORD(wParam) when tracking scroll bars in UbaVisualizer as recommended by the WinAPI documentation due to its bit size.

#rb Henrik.Karlsson
#rnx

[CL 33844897 by laura hermanns in ue5-main branch]
2024-05-22 17:12:32 -04:00
laura hermanns
3564d25726 [UBA] Add vertical cursor line to UbaVisualizer and zoom in/out at cursor position as anchor point.
- Zoom in/out with the horizontal cursor position as anchor point; Previously the anchor point was always the left corner of the window.
- Add a vertical line with the same color as the info text to visualize where the cursor is and where zooming in/out will take place (can be disabled).

#rnx
#rb henrik.karlsson, Joe.Kirchoff

[CL 33806005 by laura hermanns in ue5-main branch]
2024-05-21 15:37:45 -04:00
henrik karlsson
945f321b84 [UBA]
* Added placeholder icon to UbaVisualizer

[CL 33435766 by henrik karlsson in ue5-main branch]
2024-05-03 16:23:21 -04:00
henrik karlsson
2f5a10f057 [UBA]
* Fix crash in visualizer that can happen if box is selected when new build trigger a refresh of view

[CL 33290527 by henrik karlsson in ue5-main branch]
2024-04-27 20:06:34 -04:00
henrik karlsson
3f109dfb0e [UBA]
* Lots of fixes related to cache and prepared code for integration with UBT (ubt will provide input and output files for cache entries)

[CL 33209814 by henrik karlsson in ue5-main branch]
2024-04-24 15:26:58 -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
adfccca28f [UBA]
* Fixed bug in text normalization code.. was missing one character
* Fixed so cache processes are colored differently in visualizer
* Improved assert information when pressing ctrl-c during build and an assert triggers

[CL 32957554 by henrik karlsson in ue5-main branch]
2024-04-13 19:21:42 -04:00
henrik karlsson
c88d02914d [UBA]
* Implemented V1 of CompactPathTable which instead stores string segments separately.. Reduces the size table by ~30%.. slightly slower perf
* Added "RootPaths" which is a class that holds a list of root paths needed to normalize paths into non-environment dependent paths
* Added stats for cache that visualizes properly in visualizer
* Changed hash functions to have better quality
* Cleaned up code visualizing stats in visualizer.. now boxes popping up should have a nice matching size to strings
* Cleaned up UbaExports and formatted all functions the same way.. old are deprecated and will be removed once new binaries are in

[CL 32922089 by henrik karlsson in ue5-main branch]
2024-04-12 01:05:04 -04:00
henrik karlsson
3799cdb157 [UBA]
* Some minor fixes in uba visualizer

[CL 32232310 by henrik karlsson in ue5-main branch]
2024-03-13 18:45:42 -04: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
d394b4b515 [UBA]
* Added session notification message to be able to see why client is about to go away.. hopefully this will help us identify if there are crashes happening on remotes that we don't track
* Added ApplicationRules::AllowStorageProxy and changed so .obj files are never going through the storage proxy on fetch (they are only read by one process so no point feeding them through the proxy
* Fixed the file write-through code and gave the #if 0 a name (#if UBA_USE_WRITE_THROUGH).. still disabled since it didn't give any benefits enabling it

[CL 32025069 by henrik karlsson in ue5-main branch]
2024-03-05 12:41:52 -05:00
henrik karlsson
5e6dc44ec3 [UBA]
* Added PrefetchVirtualMemory function
* Fixed bug where code writing callstacks checks end of module to figure out if address belongs to module
* Changed so FileAccessor::CreateMemoryWrite set always allow read because you can't create file mappings that are write-only
* Added option to scheduler to force all runs to run native
* Fixed so bottleneck class has enter/leave function
* Added ScopedReadLock::Enter
* Moved LogWriter to its own file
* Visualizer - Fixed so when hovering over timeline time under pointer is showing
* Visualizer - Fixed so hovering over work records shows name, start and duration
* Visualizer - Added context menu item that can show/hide text of process bars
* Improved assert message
* Changed so lock is not on stack but is leaked to prevent shutdown warnings in debug
* Added missing includes

[CL 31981637 by henrik karlsson in ue5-main branch]
2024-03-03 20:42:41 -05:00
henrik karlsson
d9ce0963c2 [Uba]
* Fixed so visualizer does not crash with version 21 traces that contains log messages that have over 100 lines

[CL 31900281 by henrik karlsson in ue5-main branch]
2024-02-29 02:18:27 -05:00
henrik karlsson
2ba1550eba [Uba]
* Fixed bug in trace code where errors are more than 100 lines long

[CL 31855407 by henrik karlsson in ue5-main branch]
2024-02-27 17:34:12 -05:00