Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.
This repository was archived by the owner on Jul 10, 2025. It is now read-only.

[Bug]: Possible EventTarget memory leak detected #124

@nonsintetic

Description

@nonsintetic

Hardware

T-Lora v1

Connection Type

HTTP

Firmware Version

2.5.4.8d288d5

Description

Running the library on NodeJS 18.20.5. After a minute or so I keep getting messages about MaxListenersExceededWarning.

It seems to be related to the usage of AbortController() and a bug in NodeJS below version 20. Having a single instance of AbortController that is re-used for all fetch requests will cause the error I'm getting. A workaround would be having a controller on each request and clearing it once it's done its job.

related:
nodejs/node#52203
nodejs/undici#3157

Relevant console output

(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 102 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 103 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 104 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 105 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 106 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 107 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 108 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 109 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 110 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 111 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
09:56:46:911    TRACE   [iMeshDevice:HttpConnection]    HandleMeshPacket 📦 Received POSITION_APP packet
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 112 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 113 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 114 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
09:56:52:908    TRACE   [iMeshDevice:HttpConnection]    HandleMeshPacket 📦 Received POSITION_APP packet
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 115 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 116 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
09:56:55:906    TRACE   [iMeshDevice:HttpConnection]    HandleMeshPacket 📦 Received TELEMETRY_APP packet
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 117 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 118 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 119 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 120 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 121 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
09:57:07:905    TRACE   [iMeshDevice:HttpConnection]    HandleMeshPacket 📦 Received TELEMETRY_APP packet
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 122 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 123 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 124 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 125 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 126 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 127 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 128 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
09:57:25:910    TRACE   [iMeshDevice:HttpConnection]    HandleMeshPacket 📦 Received TELEMETRY_APP packet
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 129 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 130 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 131 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 132 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 133 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 134 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 135 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 136 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:4940) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 137 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions