Open macarthuror opened 4 years ago
Having same problem running on local Ubuntu 20.04 box: parse-dashboard: 2.10.0 parse-server: 4.2.0 express: 4.17.1
Updated: I had 6 days of log files on my server, 12 files total between .err and .info. I deleted them and restarted the server and now my logs link worked again. Might help figure the bug or others work around until fixed.
I've never had any logs - How do you build this dashboard once you make a change ?
I think i have found the problem for me the following line made the problem:
{"message":{"ok":0,"code":40352,"codeName":"Location40352","name":"MongoError"},"code":1,"level":"error","stack":"Error: MongoError: FieldPath cannot be constructed with empty string\n at C:\\Users\\doene\\Documents\\ServerManagerDocker\\node_modules\\parse-server\\lib\\Controllers\\DatabaseController.js:1170:21\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:95:5)","timestamp":"2021-08-20T09:59:24.974Z"}
The problem was solved when i changed the message property to a string like that:
{"message":"MongoError","code":1,"level":"error","stack":"Error: MongoError: FieldPath cannot be constructed with empty string\n at C:\\Users\\doene\\Documents\\ServerManagerDocker\\node_modules\\parse-server\\lib\\Controllers\\DatabaseController.js:1170:21\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:95:5)","timestamp":"2021-08-20T09:59:24.974Z"}
So my assumption here is that the message property is expected to be an string. Which it isn't for errors thrown by Mongo
after looking at the source i think it would be the easiest thing to check the message property and if it is not a string to execute a stringify maybe JSON.stringify
.
Thanks for the analysis! Can you verify whether this issue still exists with the current master branch?
Yes it does
@Mabenan Thanks for confirming. The next step would be to determine whether this should be fixed in Parse Server (where the log is written) or in dashboard (where the log is parsed).
If the expectation also from Parse Server side is that message
is a string, not an object, then it would be enough to JSON.stringify
the message
value before writing it to the log. Given the naming, I would assume that message
should always be a string, so this would be a Parse Server PR.
In addition, Parse Dashboard could handle this more gracefully and not crash when not being able to read a log line, but displayed an error instead. Bu this is a secondary PR, as it is not the underlying issue.
still not fixed
Make sure these boxes are checked before submitting your issue -- thanks for reporting issues back to Parse Dashboard!
[x] You're running version >=1.0.23 of Parse Dashboard.
[x] You're running version >=2.3.2 of Parse Server.
[x] You've searched through existing issues. Chances are that your issue has been reported or resolved before.
Environment Setup
Running Locally
Steps to reproduce
Similar to #1112 Open up dashboard and navigate to logs page Sometimes works but mostly of the time it crash
Logs/Trace