neolink
neolink copied to clipboard
neolink in a reconnect/push loop and leaking file descriptors ?
i'm running neolink in docker with a few reolink E1 cams. i think it might have hit the per‑process “nofile” limit, every new socket/DNS attempt fails (os error 24), CPU pins, and memory balloons. it went up to 18gb mem usage over night, 100% cpu, spamming the log with:
2025-10-31T12:50:16.919468104Z [2025-10-31T12:50:16Z WARN neolink::common::pushnoti] Issue connecting to push notifications server: Http(reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("android.clients.google.com")), port: None, path: "/checkin", query: None, fragment: None }, source: hyper::Error(Connect, ConnectError("dns error", Os { code: 24, kind: Uncategorized, message: "Too many open files" })) })
2025-10-31T12:50:18.331956024Z [2025-10-31T12:50:18Z INFO neolink::utils] reo4: Connecting to camera at Address: 10.4.0.93:9000
2025-10-31T12:50:18.332528254Z [2025-10-31T12:50:18Z WARN neolink::common::camthread] reo4: Connection Lost: Failed to connect to camera reo4 at Address: 10.4.0.93:9000 on channel 0
2025-10-31T12:50:18.332539746Z
2025-10-31T12:50:18.332544529Z Caused by:
2025-10-31T12:50:18.332545526Z 0: IO Error: Os { code: 24, kind: Uncategorized, message: "Too many open files" }
2025-10-31T12:50:18.332546649Z 1: Too many open files (os error 24)
2025-10-31T12:50:18.332547828Z [2025-10-31T12:50:18Z INFO neolink::common::camthread] reo4: Attempt reconnect in 5s
root@eb7aa42b4b0e:/# neolink --version
[2025-10-31T12:54:02Z INFO neolink] Neolink 6e05e7844b5b50f89787d30bffcbbd3471bfcfde release
neolink 0.6.3-rc.3
root@docker:~# cat /docker/neolink/neolink.toml
bind = "0.0.0.0"
bind_port = 8554
[mqtt]
broker_addr = "homeassistant.XXX" # Address of the mqtt server
port = 1883 # mqtt servers port
credentials = ["XXXX", "XXXX"] # mqtt server login details
...
[[cameras]]
name = "reo4"
username = "admin"
password = "XXXXXXXXX"
address = "XXXX:9000"
format = "h264"
#enable_preview = true
#stream = "mainStream"
[[cameras]]
name = "reo5"
username = "admin"
password = "XXXXXXXX"
address = "XXXXXXX:9000"
format = "h264"
#enable_preview = true
#stream = "mainStream"
...
i feel like it might be connected to push notifications, i just disabled them, going to keep an eye on it