diff options
author | murgatroid99 <mlumish@google.com> | 2016-12-01 10:30:35 -0800 |
---|---|---|
committer | murgatroid99 <mlumish@google.com> | 2016-12-01 10:30:35 -0800 |
commit | dbda92064f3fca42bba45771fd2939ccbcefaefd (patch) | |
tree | c20b32cd5567ddacf4c0c2bbbc1f3f0c8159d0bd /src/node | |
parent | c13e2f5b033567055136dea95d3f1b54ad4f8a2c (diff) |
Also propagate serialization errors in unary server responses
Diffstat (limited to 'src/node')
-rw-r--r-- | src/node/src/server.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/node/src/server.js b/src/node/src/server.js index bd0a5122ad..51bb99ee53 100644 --- a/src/node/src/server.js +++ b/src/node/src/server.js @@ -127,7 +127,13 @@ function sendUnaryResponse(call, value, serialize, metadata, flags) { (new Metadata())._getCoreRepresentation(); call.metadataSent = true; } - var message = serialize(value); + var message; + try { + message = serialize(value); + } catch (e) { + e.code = grpc.status.INTERNAL; + handleError(e); + } message.grpcWriteFlags = flags; end_batch[grpc.opType.SEND_MESSAGE] = message; end_batch[grpc.opType.SEND_STATUS_FROM_SERVER] = status; @@ -282,7 +288,9 @@ function _write(chunk, encoding, callback) { try { message = this.serialize(chunk); } catch (e) { + e.code = grpc.status.INTERNAL; callback(e); + return; } if (_.isFinite(encoding)) { /* Attach the encoding if it is a finite number. This is the closest we |