- Version: 4.4.7
- Platform: linux
- Subsystem: http
Currently the http client does not have stable hidden classes so it's hard to debug it.
For example:
These are two different fields that do not exist in the constructor ( https://github.com/nodejs/node/blob/master/lib/_http_client.js#L18-L202 ).
We need to add self.res = null; self.aborted = 0;
Without a stable hidden class for the ClientRequest ( one that doesn't change at runtime ) it's very hard to debug the state of a heap using a heapsnapshot

This heapsnapshot is missing the res and aborted fields. Having these fields available would make it a lot easier to reason about the state of the ClientRequest ( I have a memory leak where I am leaking outbound ClientRequest instances ).
I'm sure that this problem exists for a lot of other internal classes within the code.
Currently the http client does not have stable hidden classes so it's hard to debug it.
For example:
These are two different fields that do not exist in the constructor ( https://github.com/nodejs/node/blob/master/lib/_http_client.js#L18-L202 ).
We need to add
self.res = null; self.aborted = 0;Without a stable hidden class for the
ClientRequest( one that doesn't change at runtime ) it's very hard to debug the state of a heap using a heapsnapshotThis heapsnapshot is missing the
resandabortedfields. Having these fields available would make it a lot easier to reason about the state of theClientRequest( I have a memory leak where I am leaking outbound ClientRequest instances ).I'm sure that this problem exists for a lot of other internal classes within the code.