-
Notifications
You must be signed in to change notification settings - Fork 71.9k
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
Results could be null and can crash the website #7468
Conversation
merge request
Hi! This looks promising! Any idea of what conditions result in Mongo returning a null result? |
Ping @bewest this looks like the right place to patch the crash |
@sulkaharo I can speak from my case. This happend after updating AndroidAPS + NightScout to the latest master. AndroidAPS version 3.0.0.2. The reason it happend for my son is because of a Faulty Sensor which was sometimes giving BG readings, and other times not. But it definitely happened, and this fixes it on our local master branch. |
@bewest Reading the logic for the update function, I suspect what's going on is the update function is being called on data that is not yet in the database and the self-made logic to create an ID and inserting using it is failing. Wonder if the function should be patched to ignore data that's missing the _id and return an error the data is not inserted. Or handle upserts somehow better. I have no idea how AAPS uses the API though. @MilosKozak is AAPS assuming the API implements upserts or just inserts? |
I've gone ahead and merged this. It would be extremely useful to add some instrumentation to log the data going through the function that causes the crashing behavior. We can use this to create a test case scenario. I'll review the mongo upsert behavior, but this is one area where MongoDB 5 compatibility changes exist in any case. |
wow, nice. will there be new release soon? ;) |
Kindly review the commit and allow if it is valid.
IT resolves the issue for me as for some odd reason, the Results retrieved could be null, and then you see something like this and the application crashes.
got data-received event, requesting reload
2022-06-29T09:04:17.746228+00:00 app[web.1]: Got results null
2022-06-29T09:04:17.749245+00:00 app[web.1]: /app/node_modules/mongodb/lib/utils.js:106
2022-06-29T09:04:17.749246+00:00 app[web.1]: throw err;
2022-06-29T09:04:17.749246+00:00 app[web.1]: ^
2022-06-29T09:04:17.749247+00:00 app[web.1]:
2022-06-29T09:04:17.749247+00:00 app[web.1]: TypeError: Cannot read property '_id' of null
2022-06-29T09:04:17.749247+00:00 app[web.1]: at hasId (/app/lib/server/cache.js:47:41)
2022-06-29T09:04:17.749248+00:00 app[web.1]: at arrayFilter (/app/node_modules/lodash/lodash.js:582:11)
2022-06-29T09:04:17.749248+00:00 app[web.1]: at Function.filter (/app/node_modules/lodash/lodash.js:9199:14)
2022-06-29T09:04:17.749249+00:00 app[web.1]: at filterForAge (/app/lib/server/cache.js:46:16)
2022-06-29T09:04:17.749249+00:00 app[web.1]: at mergeCacheArrays (/app/lib/server/cache.js:37:23)
2022-06-29T09:04:17.749249+00:00 app[web.1]: at Stream.dataChanged (/app/lib/server/cache.js:83:30)
2022-06-29T09:04:17.749250+00:00 app[web.1]: at Stream.emit (events.js:314:20)
2022-06-29T09:04:17.749250+00:00 app[web.1]: at /app/lib/server/websocket.js:223:29
2022-06-29T09:04:17.749251+00:00 app[web.1]: at executeCallback (/app/node_modules/mongodb/lib/operations/execute_operation.js:70:5)
2022-06-29T09:04:17.749251+00:00 app[web.1]: at handleCallback (/app/node_modules/mongodb/lib/utils.js:102:55)
2022-06-29T09:04:18.947127+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling" host=samihusseint1d.herokuapp.com request_id=b4273353-c000-46ba-b841-7995df551643 fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:17.993106+00:00 heroku[web.1]: State changed from up to crashed
2022-06-29T09:04:17.759370+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=websocket&sid=My6_duaUMjdIWCPQAAAA" host=samihusseint1d.herokuapp.com request_id=20b718bc-ebc4-4e72-a515-7fb99549c425 fwd="83.209.194.49" dyno=web.1 connect=3ms service=201584ms status=101 bytes=129 protocol=https
2022-06-29T09:04:17.758193+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=websocket&sid=4mZHJdkMJV4_CfnbAAAC" host=samihusseint1d.herokuapp.com request_id=e7d47a58-04d8-4720-8390-34046b448f43 fwd="83.209.194.49" dyno=web.1 connect=2ms service=201541ms status=101 bytes=129 protocol=https
2022-06-29T09:04:19.046559+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj4BD" host=samihusseint1d.herokuapp.com request_id=2ec00e3c-81ea-4eec-b7ab-e56073e73b3b fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:19.069916+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj4QZ" host=samihusseint1d.herokuapp.com request_id=5a8dd623-4111-4b33-9f5f-2dba2893951c fwd="66.159.215.203" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:21.034298+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj4gP" host=samihusseint1d.herokuapp.com request_id=b0655939-7fff-4825-9ce4-c2da9ddb9103 fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:22.241309+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj59f" host=samihusseint1d.herokuapp.com request_id=1e6a4fe6-8f7b-4815-b600-c5ca9af715d6 fwd="66.159.215.203" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:22.115552+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling" host=samihusseint1d.herokuapp.com request_id=91d7eb2a-179b-49ed-aeb5-ee3e3cfce862 fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:24.115411+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj5PW" host=samihusseint1d.herokuapp.com request_id=cefb09ea-3348-4865-9fca-4c103e56b56b fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:26.316177+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling" host=samihusseint1d.herokuapp.com request_id=18aa38a0-c7ab-49aa-92cd-0e09ea80919d fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:28.251692+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj6dH" host=samihusseint1d.herokuapp.com request_id=24c97c7f-6b1b-4456-8e80-d659fcc9d1db fwd="66.159.215.203" dyno= connect= service= status=503 bytes= protocol=https
2022-06-29T09:04:30.199726+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=O6kj6t1" host=samihusseint1d.herokuapp.com request_id=f142b2c2-c2c7-4c05-a74e-78fb52f889dc fwd="83.209.194.49" dyno= connect= service= status=503 bytes= protocol=https
Autoscroll with outputSave