Skip to content

Commit 3db6a9c

Browse files
committed
More span.end() checks
1 parent 9180aed commit 3db6a9c

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

observability-test/spanner.ts

-1
Original file line numberDiff line numberDiff line change
@@ -2177,7 +2177,6 @@ describe('Traces for ExecuteStream broken stream retries', () => {
21772177
await tx!.runUpdate(insertSql, err => {
21782178
assert.ok(err, 'Missing expected error');
21792179
assert.strictEqual(err!.code, grpc.status.INVALID_ARGUMENT);
2180-
console.log('Got expected error');
21812180
assert.strictEqual(attempts, 1);
21822181
tx!
21832182
.commit()

src/database.ts

+19-5
Original file line numberDiff line numberDiff line change
@@ -2101,6 +2101,9 @@ class Database extends common.GrpcServiceObject {
21012101
session!.lastError = err;
21022102
this.pool_.release(session!);
21032103
this.getSnapshot(options, (err, snapshot) => {
2104+
if (err) {
2105+
setSpanError(span, err);
2106+
}
21042107
span.end();
21052108
callback!(err, snapshot);
21062109
});
@@ -3223,7 +3226,8 @@ class Database extends common.GrpcServiceObject {
32233226
txn!.once('end', () => {
32243227
span.end();
32253228
});
3226-
txn!.once('error', () => {
3229+
txn!.once('error', err => {
3230+
setSpanError(span, err!);
32273231
span.end();
32283232
});
32293233
runFn!(null, txn!);
@@ -3245,8 +3249,6 @@ class Database extends common.GrpcServiceObject {
32453249
}
32463250

32473251
if (err) {
3248-
// This code path failed to even begin running the transaction
3249-
// hence end the span immediately and return it.
32503252
span.end();
32513253
runFn!(err as grpc.ServiceError);
32523254
return;
@@ -3553,6 +3555,11 @@ class Database extends common.GrpcServiceObject {
35533555
mutationGroups,
35543556
options
35553557
);
3558+
dataStream.once('end', () => span.end());
3559+
dataStream.once('error', err => {
3560+
setSpanError(span, err!);
3561+
span.end();
3562+
});
35563563
dataStream.pipe(proxyStream);
35573564
} else {
35583565
span.end();
@@ -3652,10 +3659,17 @@ class Database extends common.GrpcServiceObject {
36523659
span.addEvent('No session available', {
36533660
'session.id': session?.id,
36543661
});
3655-
this.writeAtLeastOnce(mutations, options, cb!);
3656-
span.end();
3662+
// Retry this method.
3663+
this.writeAtLeastOnce(mutations, options, (err, resp) => {
3664+
if (err) {
3665+
setSpanError(span, err);
3666+
}
3667+
span.end();
3668+
cb!(err, resp);
3669+
});
36573670
return;
36583671
}
3672+
36593673
if (err) {
36603674
setSpanError(span, err);
36613675
span.end();

0 commit comments

Comments
 (0)