@@ -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