-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Critical Bug: Receiving Waypoints Crash UI [Remote DoS] #19
Comments
Interesting, thanks for the report! Coincidentally, I have recently added support in 1.0.15-beta.2 for persisting the last runtime log to disk in the application's data directory. The data directory differs per platform: Linux:
|
found the log file. Is there a way to enable more verbose debugging? A single line in the log file occurs when the app UI freeze occurs: It seems that only the UI interfaces freeze (both Electron and web UI). The map and node list {often, but not always} disappear in the web UI interface. No new transmissions visually occur in the list. Neither interface able to:
The app process continues to function in the background, receiving and parsing mesh transmissions as evident by continuing transmission entries in the lastLog.txt. It's even able to send out new traceroute requests. |
This sounds like a front-end Javascript error. You can view the front-end console using |
Ctrl+Shift+I doesn't seem to work for me within the Electron window on MacOS, but I did capture the errors on the developer console tab within my web browser. The same issue occurs both from receiving WAYPOINT_APP and RANGE_TEST_APP transmissions, and likely other types not yet tested. Here are the respective logs seen within the browser for each: |
Looks like for Electron, Developer Console is accessible from the View menu: Relevant error from the log is:
Although it is not clear what property is being read. This is odd as unexpected packet types have not historically crashed the front-end and merely displayed "undefined". I wonder if I broke something 😅 |
ahh, Option+Cmd+I Same console error within Electron Developer Console index-DAde3bY6.js:10 highlighted= function Qt(n) {
if (n == $o)
return "all";
let e = Fa.value.find(t => t.num == n);
return e ? qn(e) : `!${n.toString(16)}`
} at Dh (index-DAde3bY6.js:795:13196) highlighted= let e, t, i = (n[31].rxTime ? new Date(n[31].rxTime * 1e3).toLocaleString(void 0, {
day: "numeric",
month: "numeric",
hour: "numeric",
minute: "numeric"
}) : "") + "", s, r, o, a, l, c, h, u, f = Qt(n[31].from) + "", d, g, m, p, y = n[31].channel + "", w, _, E, x = (n[31].hopStart == n[31].hopLimit && n[31].rxSnr || "") + "", I, S, R, T = (n[31].hopStart == n[31].hopLimit && n[31].rxRssi || "") + "", W, G, z, X = (n[31].encrypted ? "encrypted" : (Be = n[31].decoded) == null ? void 0 : Be.portnum) + "", J, Y, L, F, B, N, j, V, $, H = n[31].to != 4294967295 && Fh(n), D = n[31].hopStart && Nh(n); last entry in the chain try {
for (; wi < Si.length; ) {
const e = Si[wi];
wi++,
ys(e),
bd(e.$$)
}
} catch (e) {
throw Si.length = 0,
wi = 0,
e
} |
This code in the error appears to be a minified version of line 82 of <div class="w-28">{packet.rxTime ? new Date(packet.rxTime * 1000).toLocaleString(undefined, { day: 'numeric', month: 'numeric', hour: 'numeric', minute: 'numeric' }) : ''}</div> |
I have enabled the generation of sourcemaps in vite for future production builds to more easily find the offending line of code. |
I believe this is fixed!! Thank you again @mblauser for the stack traces, they were very helpful. Issue was I have published |
I've remotely upgraded to beta.3 |
Thank you very much for the packet detail. When we encounter a new packet type that's not parsed, that's when it comes across as unknown/undefined. Perhaps I can still connect it with the initial WAYPOINT_APP line in the log for improved UX. Essentially the WAYPOINT_APP is the raw packet, and the undefined line is the decoded detail. I have not encountered waypoint traffic here, but apparently it is a feature in the mobile apps to place points of interest on the map. To display these in MeshSense, we would probably want to find a sensible place to store this information (is it associated with a node or keep a separate list of waypoints?) I'll try to replicate locally and see what makes sense. |
Waypoints sent by remote nodes cause MeshSense 1.0.15-beta.2 on MacOS 14.3.1 to become irrecoverably unresponsive and require restarting the app, both in the:
It is difficult to provide a capture of the received waypoint transmission, since the UI becomes unresponsive. I am not able to find a log file within the application directory on the filesystem. The only entries I can find the in the UI System Log are after restarting the app:
1:33:26:268 TRACE [iMeshDevice:HttpConnection] HandleFromRadio 🚧 Received Queue Status: [object Object]
This is easily reproducible and observed from 'waypoint sending' nodes running firmware 2.4.2.5b45303 and 2.5.0. Local connected 'receiving' node running fw v2.3.12.24458a7.
WebUI:
The text was updated successfully, but these errors were encountered: