@grpc/grpc-js
Advanced tools
Comparing version 1.6.2 to 1.6.3
@@ -97,14 +97,6 @@ "use strict"; | ||
this.channelzTrace = new channelz_1.ChannelzTrace(); | ||
this.channelzRef = channelz_1.registerChannelzChannel(target, () => this.getChannelzInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzRef = channelz_1.registerChannelzChannel(target, () => this.getChannelzInfo()); | ||
this.channelzTrace.addTrace('CT_INFO', 'Channel created'); | ||
} | ||
else { | ||
// Dummy channelz ref that will never be used | ||
this.channelzRef = { | ||
kind: 'channel', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
if (this.options['grpc.default_authority']) { | ||
@@ -111,0 +103,0 @@ this.defaultAuthority = this.options['grpc.default_authority']; |
@@ -102,6 +102,6 @@ /// <reference types="node" /> | ||
} | ||
export declare function registerChannelzChannel(name: string, getInfo: () => ChannelInfo): ChannelRef; | ||
export declare function registerChannelzSubchannel(name: string, getInfo: () => SubchannelInfo): SubchannelRef; | ||
export declare function registerChannelzServer(getInfo: () => ServerInfo): ServerRef; | ||
export declare function registerChannelzSocket(name: string, getInfo: () => SocketInfo): SocketRef; | ||
export declare function registerChannelzChannel(name: string, getInfo: () => ChannelInfo, channelzEnabled: boolean): ChannelRef; | ||
export declare function registerChannelzSubchannel(name: string, getInfo: () => SubchannelInfo, channelzEnabled: boolean): SubchannelRef; | ||
export declare function registerChannelzServer(getInfo: () => ServerInfo, channelzEnabled: boolean): ServerRef; | ||
export declare function registerChannelzSocket(name: string, getInfo: () => SocketInfo, channelzEnabled: boolean): SocketRef; | ||
export declare function unregisterChannelzRef(ref: ChannelRef | SubchannelRef | ServerRef | SocketRef): void; | ||
@@ -108,0 +108,0 @@ export declare function getChannelzHandlers(): ChannelzHandlers; |
@@ -210,27 +210,35 @@ "use strict"; | ||
const sockets = []; | ||
function registerChannelzChannel(name, getInfo) { | ||
function registerChannelzChannel(name, getInfo, channelzEnabled) { | ||
const id = getNextId(); | ||
const ref = { id, name, kind: 'channel' }; | ||
channels[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
channels[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
} | ||
exports.registerChannelzChannel = registerChannelzChannel; | ||
function registerChannelzSubchannel(name, getInfo) { | ||
function registerChannelzSubchannel(name, getInfo, channelzEnabled) { | ||
const id = getNextId(); | ||
const ref = { id, name, kind: 'subchannel' }; | ||
subchannels[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
subchannels[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
} | ||
exports.registerChannelzSubchannel = registerChannelzSubchannel; | ||
function registerChannelzServer(getInfo) { | ||
function registerChannelzServer(getInfo, channelzEnabled) { | ||
const id = getNextId(); | ||
const ref = { id, kind: 'server' }; | ||
servers[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
servers[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
} | ||
exports.registerChannelzServer = registerChannelzServer; | ||
function registerChannelzSocket(name, getInfo) { | ||
function registerChannelzSocket(name, getInfo, channelzEnabled) { | ||
const id = getNextId(); | ||
const ref = { id, name, kind: 'socket' }; | ||
sockets[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
sockets[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
@@ -237,0 +245,0 @@ } |
@@ -78,14 +78,7 @@ "use strict"; | ||
} | ||
this.channelzRef = channelz_1.registerChannelzServer(() => this.getChannelzInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzRef = channelz_1.registerChannelzServer(() => this.getChannelzInfo()); | ||
this.channelzTrace.addTrace('CT_INFO', 'Server created'); | ||
this.trace('Server constructed'); | ||
} | ||
else { | ||
// Dummy channelz ref that will never be used | ||
this.channelzRef = { | ||
kind: 'server', | ||
id: -1 | ||
}; | ||
} | ||
this.trace('Server constructed'); | ||
} | ||
@@ -303,32 +296,25 @@ getChannelzInfo() { | ||
let channelzRef; | ||
channelzRef = channelz_1.registerChannelzSocket(subchannel_address_1.subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}, this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
channelzRef = channelz_1.registerChannelzSocket(subchannel_address_1.subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}); | ||
this.listenerChildrenTracker.refChild(channelzRef); | ||
} | ||
else { | ||
channelzRef = { | ||
kind: 'socket', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
this.http2ServerList.push({ server: http2Server, channelzRef: channelzRef }); | ||
@@ -375,32 +361,25 @@ this.trace('Successfully bound ' + subchannel_address_1.subchannelAddressToString(boundSubchannelAddress)); | ||
let channelzRef; | ||
channelzRef = channelz_1.registerChannelzSocket(subchannel_address_1.subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}, this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
channelzRef = channelz_1.registerChannelzSocket(subchannel_address_1.subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}); | ||
this.listenerChildrenTracker.refChild(channelzRef); | ||
} | ||
else { | ||
channelzRef = { | ||
kind: 'socket', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
this.http2ServerList.push({ server: http2Server, channelzRef: channelzRef }); | ||
@@ -679,12 +658,3 @@ this.trace('Successfully bound ' + subchannel_address_1.subchannelAddressToString(boundSubchannelAddress)); | ||
let channelzRef; | ||
if (this.channelzEnabled) { | ||
channelzRef = channelz_1.registerChannelzSocket((_a = session.socket.remoteAddress) !== null && _a !== void 0 ? _a : 'unknown', this.getChannelzSessionInfoGetter(session)); | ||
} | ||
else { | ||
channelzRef = { | ||
kind: 'socket', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
channelzRef = channelz_1.registerChannelzSocket((_a = session.socket.remoteAddress) !== null && _a !== void 0 ? _a : 'unknown', this.getChannelzSessionInfoGetter(session), this.channelzEnabled); | ||
const channelzSessionInfo = { | ||
@@ -691,0 +661,0 @@ ref: channelzRef, |
@@ -118,2 +118,3 @@ import { ChannelCredentials } from './channel-credentials'; | ||
private internalsTrace; | ||
private keepaliveTrace; | ||
private handleBackoffTimer; | ||
@@ -127,2 +128,7 @@ /** | ||
private startKeepalivePings; | ||
/** | ||
* Stop keepalive pings when terminating a connection. This discards the | ||
* outstanding ping timeout, so it should not be called if the same | ||
* connection will still be used. | ||
*/ | ||
private stopKeepalivePings; | ||
@@ -129,0 +135,0 @@ private createSession; |
@@ -171,14 +171,6 @@ "use strict"; | ||
this.channelzTrace = new channelz_1.ChannelzTrace(); | ||
this.channelzRef = channelz_1.registerChannelzSubchannel(this.subchannelAddressString, () => this.getChannelzInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzRef = channelz_1.registerChannelzSubchannel(this.subchannelAddressString, () => this.getChannelzInfo()); | ||
this.channelzTrace.addTrace('CT_INFO', 'Subchannel created'); | ||
} | ||
else { | ||
// Dummy channelz ref that will never be used | ||
this.channelzRef = { | ||
kind: 'subchannel', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
this.trace('Subchannel constructed with options ' + JSON.stringify(options, undefined, 2)); | ||
@@ -268,2 +260,5 @@ } | ||
} | ||
keepaliveTrace(text) { | ||
logging.trace(constants_1.LogVerbosity.DEBUG, 'keepalive', '(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' + text); | ||
} | ||
handleBackoffTimer() { | ||
@@ -292,5 +287,5 @@ if (this.continueConnecting) { | ||
} | ||
logging.trace(constants_1.LogVerbosity.DEBUG, 'keepalive', '(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' + | ||
'Sending ping'); | ||
this.keepaliveTrace('Sending ping with timeout ' + this.keepaliveTimeoutMs + 'ms'); | ||
this.keepaliveTimeoutId = setTimeout(() => { | ||
this.keepaliveTrace('Ping timeout passed without response'); | ||
this.transitionToState([connectivity_state_1.ConnectivityState.READY], connectivity_state_1.ConnectivityState.IDLE); | ||
@@ -300,2 +295,3 @@ }, this.keepaliveTimeoutMs); | ||
this.session.ping((err, duration, payload) => { | ||
this.keepaliveTrace('Received ping response'); | ||
clearTimeout(this.keepaliveTimeoutId); | ||
@@ -313,2 +309,7 @@ }); | ||
} | ||
/** | ||
* Stop keepalive pings when terminating a connection. This discards the | ||
* outstanding ping timeout, so it should not be called if the same | ||
* connection will still be used. | ||
*/ | ||
stopKeepalivePings() { | ||
@@ -334,2 +335,9 @@ clearInterval(this.keepaliveIntervalId); | ||
} | ||
else { | ||
/* By default, set a very large max session memory limit, to effectively | ||
* disable enforcement of the limit. Some testing indicates that Node's | ||
* behavior degrades badly when this limit is reached, so we solve that | ||
* by disabling the check entirely. */ | ||
connectionOptions.maxSessionMemory = Number.MAX_SAFE_INTEGER; | ||
} | ||
let addressScheme = 'http://'; | ||
@@ -400,4 +408,4 @@ if ('secureContext' in connectionOptions) { | ||
this.session = session; | ||
this.channelzSocketRef = channelz_1.registerChannelzSocket(this.subchannelAddressString, () => this.getChannelzSocketInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzSocketRef = channelz_1.registerChannelzSocket(this.subchannelAddressString, () => this.getChannelzSocketInfo()); | ||
this.childrenTracker.refChild(this.channelzSocketRef); | ||
@@ -618,3 +626,3 @@ } | ||
if (!this.keepaliveWithoutCalls) { | ||
this.stopKeepalivePings(); | ||
clearInterval(this.keepaliveIntervalId); | ||
} | ||
@@ -621,0 +629,0 @@ this.checkBothRefcounts(); |
{ | ||
"name": "@grpc/grpc-js", | ||
"version": "1.6.2", | ||
"version": "1.6.3", | ||
"description": "gRPC Library for Node - pure JS implementation", | ||
@@ -5,0 +5,0 @@ "homepage": "https://grpc.io/", |
@@ -222,12 +222,5 @@ /* | ||
this.channelzTrace = new ChannelzTrace(); | ||
this.channelzRef = registerChannelzChannel(target, () => this.getChannelzInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzRef = registerChannelzChannel(target, () => this.getChannelzInfo()); | ||
this.channelzTrace.addTrace('CT_INFO', 'Channel created'); | ||
} else { | ||
// Dummy channelz ref that will never be used | ||
this.channelzRef = { | ||
kind: 'channel', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
@@ -234,0 +227,0 @@ |
@@ -350,27 +350,35 @@ /* | ||
export function registerChannelzChannel(name: string, getInfo: () => ChannelInfo): ChannelRef { | ||
export function registerChannelzChannel(name: string, getInfo: () => ChannelInfo, channelzEnabled: boolean): ChannelRef { | ||
const id = getNextId(); | ||
const ref: ChannelRef = {id, name, kind: 'channel'}; | ||
channels[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
channels[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
} | ||
export function registerChannelzSubchannel(name: string, getInfo:() => SubchannelInfo): SubchannelRef { | ||
export function registerChannelzSubchannel(name: string, getInfo:() => SubchannelInfo, channelzEnabled: boolean): SubchannelRef { | ||
const id = getNextId(); | ||
const ref: SubchannelRef = {id, name, kind: 'subchannel'}; | ||
subchannels[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
subchannels[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
} | ||
export function registerChannelzServer(getInfo: () => ServerInfo): ServerRef { | ||
export function registerChannelzServer(getInfo: () => ServerInfo, channelzEnabled: boolean): ServerRef { | ||
const id = getNextId(); | ||
const ref: ServerRef = {id, kind: 'server'}; | ||
servers[id] = { ref, getInfo }; | ||
if (channelzEnabled) { | ||
servers[id] = { ref, getInfo }; | ||
} | ||
return ref; | ||
} | ||
export function registerChannelzSocket(name: string, getInfo: () => SocketInfo): SocketRef { | ||
export function registerChannelzSocket(name: string, getInfo: () => SocketInfo, channelzEnabled: boolean): SocketRef { | ||
const id = getNextId(); | ||
const ref: SocketRef = {id, name, kind: 'socket'}; | ||
sockets[id] = { ref, getInfo}; | ||
if (channelzEnabled) { | ||
sockets[id] = { ref, getInfo}; | ||
} | ||
return ref; | ||
@@ -377,0 +385,0 @@ } |
@@ -164,13 +164,7 @@ /* | ||
} | ||
this.channelzRef = registerChannelzServer(() => this.getChannelzInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzRef = registerChannelzServer(() => this.getChannelzInfo()); | ||
this.channelzTrace.addTrace('CT_INFO', 'Server created'); | ||
this.trace('Server constructed'); | ||
} else { | ||
// Dummy channelz ref that will never be used | ||
this.channelzRef = { | ||
kind: 'server', | ||
id: -1 | ||
}; | ||
} | ||
this.trace('Server constructed'); | ||
} | ||
@@ -435,30 +429,24 @@ | ||
let channelzRef: SocketRef; | ||
channelzRef = registerChannelzSocket(subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}, this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
channelzRef = registerChannelzSocket(subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}); | ||
this.listenerChildrenTracker.refChild(channelzRef); | ||
} else { | ||
channelzRef = { | ||
kind: 'socket', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
@@ -514,30 +502,24 @@ this.http2ServerList.push({server: http2Server, channelzRef: channelzRef}); | ||
let channelzRef: SocketRef; | ||
channelzRef = registerChannelzSocket(subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}, this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
channelzRef = registerChannelzSocket(subchannelAddressToString(boundSubchannelAddress), () => { | ||
return { | ||
localAddress: boundSubchannelAddress, | ||
remoteAddress: null, | ||
security: null, | ||
remoteName: null, | ||
streamsStarted: 0, | ||
streamsSucceeded: 0, | ||
streamsFailed: 0, | ||
messagesSent: 0, | ||
messagesReceived: 0, | ||
keepAlivesSent: 0, | ||
lastLocalStreamCreatedTimestamp: null, | ||
lastRemoteStreamCreatedTimestamp: null, | ||
lastMessageSentTimestamp: null, | ||
lastMessageReceivedTimestamp: null, | ||
localFlowControlWindow: null, | ||
remoteFlowControlWindow: null | ||
}; | ||
}); | ||
this.listenerChildrenTracker.refChild(channelzRef); | ||
} else { | ||
channelzRef = { | ||
kind: 'socket', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
@@ -899,11 +881,3 @@ this.http2ServerList.push({server: http2Server, channelzRef: channelzRef}); | ||
let channelzRef: SocketRef; | ||
if (this.channelzEnabled) { | ||
channelzRef = registerChannelzSocket(session.socket.remoteAddress ?? 'unknown', this.getChannelzSessionInfoGetter(session)); | ||
} else { | ||
channelzRef = { | ||
kind: 'socket', | ||
id: -1, | ||
name: '' | ||
} | ||
} | ||
channelzRef = registerChannelzSocket(session.socket.remoteAddress ?? 'unknown', this.getChannelzSessionInfoGetter(session), this.channelzEnabled); | ||
@@ -910,0 +884,0 @@ const channelzSessionInfo: ChannelzSessionInfo = { |
@@ -230,12 +230,5 @@ /* | ||
this.channelzTrace = new ChannelzTrace(); | ||
this.channelzRef = registerChannelzSubchannel(this.subchannelAddressString, () => this.getChannelzInfo(), this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzRef = registerChannelzSubchannel(this.subchannelAddressString, () => this.getChannelzInfo()); | ||
this.channelzTrace.addTrace('CT_INFO', 'Subchannel created'); | ||
} else { | ||
// Dummy channelz ref that will never be used | ||
this.channelzRef = { | ||
kind: 'subchannel', | ||
id: -1, | ||
name: '' | ||
}; | ||
} | ||
@@ -332,2 +325,6 @@ this.trace('Subchannel constructed with options ' + JSON.stringify(options, undefined, 2)); | ||
private keepaliveTrace(text: string): void { | ||
logging.trace(LogVerbosity.DEBUG, 'keepalive', '(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' + text); | ||
} | ||
private handleBackoffTimer() { | ||
@@ -363,9 +360,5 @@ if (this.continueConnecting) { | ||
} | ||
logging.trace( | ||
LogVerbosity.DEBUG, | ||
'keepalive', | ||
'(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' + | ||
'Sending ping' | ||
); | ||
this.keepaliveTrace('Sending ping with timeout ' + this.keepaliveTimeoutMs + 'ms'); | ||
this.keepaliveTimeoutId = setTimeout(() => { | ||
this.keepaliveTrace('Ping timeout passed without response'); | ||
this.transitionToState([ConnectivityState.READY], ConnectivityState.IDLE); | ||
@@ -376,2 +369,3 @@ }, this.keepaliveTimeoutMs); | ||
(err: Error | null, duration: number, payload: Buffer) => { | ||
this.keepaliveTrace('Received ping response'); | ||
clearTimeout(this.keepaliveTimeoutId); | ||
@@ -391,2 +385,7 @@ } | ||
/** | ||
* Stop keepalive pings when terminating a connection. This discards the | ||
* outstanding ping timeout, so it should not be called if the same | ||
* connection will still be used. | ||
*/ | ||
private stopKeepalivePings() { | ||
@@ -415,2 +414,8 @@ clearInterval(this.keepaliveIntervalId); | ||
]; | ||
} else { | ||
/* By default, set a very large max session memory limit, to effectively | ||
* disable enforcement of the limit. Some testing indicates that Node's | ||
* behavior degrades badly when this limit is reached, so we solve that | ||
* by disabling the check entirely. */ | ||
connectionOptions.maxSessionMemory = Number.MAX_SAFE_INTEGER; | ||
} | ||
@@ -493,4 +498,4 @@ let addressScheme = 'http://'; | ||
this.session = session; | ||
this.channelzSocketRef = registerChannelzSocket(this.subchannelAddressString, () => this.getChannelzSocketInfo()!, this.channelzEnabled); | ||
if (this.channelzEnabled) { | ||
this.channelzSocketRef = registerChannelzSocket(this.subchannelAddressString, () => this.getChannelzSocketInfo()!); | ||
this.childrenTracker.refChild(this.channelzSocketRef); | ||
@@ -783,3 +788,3 @@ } | ||
if (!this.keepaliveWithoutCalls) { | ||
this.stopKeepalivePings(); | ||
clearInterval(this.keepaliveIntervalId); | ||
} | ||
@@ -786,0 +791,0 @@ this.checkBothRefcounts(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1455647
29302