Commit Graph

290 Commits

Author SHA1 Message Date
Martin Ridgers
3fb2b8b6b3 Moved a few classes out of FAnalysisEngine's scope.
#rnx

[CL 16670167 by Martin Ridgers in ue5-main branch]
2021-06-15 02:55:20 -04:00
Martin Ridgers
3642e263af Removed a few redundant "using namespace" statements.
#rnx

[CL 16654394 by Martin Ridgers in ue5-main branch]
2021-06-13 15:53:51 -04:00
Martin Ridgers
0e39eaf9df Delete redundant variable.
#rnx

[CL 16653294 by Martin Ridgers in ue5-main branch]
2021-06-13 02:15:35 -04:00
Martin Ridgers
732332d367 Added some Vim fold markers to help navigate this file more easily.
#rnx

[CL 16638910 by Martin Ridgers in ue5-main branch]
2021-06-11 06:27:46 -04:00
Martin Ridgers
822c99f7f6 Shifted the store frontend to another port so as to avoid collision with old-school Unreal Insightses.
#rnx

[CL 16603796 by Martin Ridgers in ue5-main branch]
2021-06-09 08:50:18 -04:00
Martin Ridgers
1495ddab0d Removed the self-hosted Trace stores in plugins and Unreal Insights. They can assume that the trace store is already running and therefore need to just attempt to connect to it.
#rb im

[CL 16603794 by Martin Ridgers in ue5-main branch]
2021-06-09 08:50:02 -04:00
Martin Ridgers
7c160ebaa3 Tweaked the trace store client/server protocol to be more HTTP-like.
#rb honk
#rnx

[CL 16602541 by Martin Ridgers in ue5-main branch]
2021-06-09 07:01:48 -04:00
Martin Ridgers
e75bd655f6 Add accessor for the "store_dir" field of the trace store's /v1/status response.
[CL 16544497 by Martin Ridgers in ue5-main branch]
2021-06-03 03:34:33 -04:00
Martin Ridgers
49726ba2ae Include the trace store's local filesystem location in the /v1/status response.
[CL 16544451 by Martin Ridgers in ue5-main branch]
2021-06-03 03:22:21 -04:00
Martin Ridgers
18f8df19ed Bumped a port number one step too early.
[CL 16509004 by Martin Ridgers in ue5-main branch]
2021-05-31 09:51:47 -04:00
Martin Ridgers
5be4185e2a Versioned the end points that the trace store server and client communicate over. This will be useful as I shift to running the trace store in a separate process who's lifetime I've less control over.
[CL 16508945 by Martin Ridgers in ue5-main branch]
2021-05-31 09:38:07 -04:00
Steve Robb
1f3fe8c9ac Some ANSICHAR/UTF8CHAR cast fixes for upcoming changes to StringConv.h.
#rb none
#jira none

[CL 16469364 by Steve Robb in ue5-main branch]
2021-05-26 10:45:12 -04:00
Martin Ridgers
5cfc74ed00 Specifying the port that the Trace Store client should connect is now optional.
#rb jb
#rnx

[CL 16467361 by Martin Ridgers in ue5-main branch]
2021-05-26 08:25:39 -04:00
Martin Ridgers
4bf9cfa79a Call select() on a socket before making a blocking call to recv(). Calls to recv() that are waiting for data may not return even if the socket is closed. This can result in a technical hang where Insights waits on Trace waiting on a socket that was closed. This way we only call recv() when we know there is data to read, and the select()+timeout combo correctly detects to the close().
#rb Catalin.Dragoiu
#rnx

[CL 16364807 by Martin Ridgers in ue5-main branch]
2021-05-18 04:24:57 -04:00
Martin Ridgers
26a110cf1e Packets that are partial but not compressed where being incorrectly categorised as compressed. Analysis would fallover when nonsense data was sent to LZ4.
#rb simple
#rnx

[CL 16298406 by Martin Ridgers in ue5-main branch]
2021-05-12 09:23:09 -04:00
Martin Ridgers
a50347235f If a partial packet arrives and we know about the thread, we're expecting more data and can just append the partial packet we received. If we do not know about the thread the packet is fore, then we've late-joined and the packet we've just received is dependant on previous data that was discarded prior to connect. In that case we'll discard the packet.
#rnx

[CL 16247692 by Martin Ridgers in ue5-main branch]
2021-05-10 09:17:16 -04:00
Martin Ridgers
b5c9a2a157 The transport layer can now choose to discard packets for a particular thread. Currently none are discarded but the functionality will be used in late-connect scenarios where the first packet for a thread is partial (e.g. it starts in the middle of auxilary trace data). There is no mechanism in place to recover reading events in this case. It is however a rare occurence thus cheaper, easier, and safer to discard the packet than support recovery.
#rb jb
#rnx

[CL 16237278 by Martin Ridgers in ue5-main branch]
2021-05-07 05:25:31 -04:00
Martin Ridgers
03b7ef154c Replaced some magic constants with a something more semantic.
#rb jb
#rnx

[CL 16218739 by Martin Ridgers in ue5-main branch]
2021-05-06 03:31:12 -04:00
Martin Ridgers
5f92f30cdd Use Trace's packet structs on the analysis side instead of duplicating them.
#rb jb
#rnx

[CL 16218643 by Martin Ridgers in ue5-main branch]
2021-05-06 02:55:35 -04:00
Martin Ridgers
60c59e13e2 Extend lifetime of thread info objects. Previously there was a slim chance that they would get moved while someone else was holding on to a pointer to them.
#rb jb
#rnx

[CL 16192808 by Martin Ridgers in ue5-main branch]
2021-05-04 09:01:07 -04:00
Martin Ridgers
b8523e1c46 Guard against reading too much of an event's header from the trace data stream
#rb im
#rnx

[CL 16156223 by Martin Ridgers in ue5-main branch]
2021-04-29 08:18:34 -04:00
Martin Ridgers
e92804c644 Fixed typo in a comment
#rb im
#rnx

[CL 16156203 by Martin Ridgers in ue5-main branch]
2021-04-29 08:16:23 -04:00
Martin Ridgers
1d840cfe34 Use uint32 to store the UID instead of uint16. If anything the code generation is a little better as there are no prefixes.
#rb im
#rnx

[CL 16156198 by Martin Ridgers in ue5-main branch]
2021-04-29 08:15:47 -04:00
Martin Ridgers
75898aaf65 Guard against some legacy paths taken when analyzing old traces as they set the auxilary data collector object to null.
#rb im
#rnx

[CL 16156193 by Martin Ridgers in ue5-main branch]
2021-04-29 08:14:42 -04:00
Martin Ridgers
7107dca2f6 EventData.GetString() was incorrectly returning false if the requested field did exist but was empty.
#rb im
#rnx

[CL 16156188 by Martin Ridgers in ue5-main branch]
2021-04-29 08:12:58 -04:00