HTTP request node makes node-red freeze when waiting for response?


#1

Hi,

at first I thought I might have done something wrong so I set up my raspberry 1 again completely fresh with node-red. But after this I am running into the same problem again, so here it is:
Node-red on a Raspberry Pi 1, behind a router with port forward for port 443 and https via letsencrypt, and of course node-red is secured with a password. It was installed using the script described at https://nodered.org/docs/hardware/raspberrypi .

In one flow, there are a lot of http request nodes in order to get and post items and files from one web service to another.
At some time the flow freezes and I see the blue dot 'requesting' on one of those http request nodes and node-red eats up 100% cpu. The only way is to kill the service and restart it.

So since I am not a programmer I am not sure how to investigate further on this.
Interestingly the freezes (at least the ones I saw live) happen when doing http get from api.zotero.org. I tried with the browser, and all is fine, but sometimes the website is a bit slow to answer or responds with a status not 200 indicating busy times. But this should not make this node blast...? And I eventually found out that freezes also happen with other sites...

At first I ran into this problem when trying to nicely format a log message for 404 statuses. I made a simple inject node and then get http node from google for an unexisting url and did press the button quite sometimes because I was 'developing' a function for formatting the resulting responses.
But since I completely setup the Raspberry from scratch afterwards, I hoped to get rid of the problem.
Could it be that there is not enough memory on the Raspberry 1? But htop displays only half of memory is used.
I suspect it is not due to high load because I am queuing messages and the flow only executes about every 20 seconds. If its not eating up the cpu then there is barely some percent cpu usage.

Any Ideas how to get to the root of the problem?

many thanks in advance


#2

I don't know whether it will give more information but it might, so, in a terminal run

node-red-stop
node-red-start

and post here the output from the terminal after the start.

Then if possible leave the terminal open till it fails and see if there is anything in the log when that happens (or anything odd looking before then).


#3

Hi, many thanks for pointing to that! Indeed I was watching via journalctl -f, but nothing appeared when the problem happened.
Then inspired to look deeper I set log level to trace and metrics to true in settings.js, and that helped!
I found out there was a loop happening with the same message again and again. Interestingly there was a debug and a catch all errors node involved but I also sent messages via a linked node there (in parallel to the catch errors node). It seems now the problem is gone :+1:

best regards