This approach works for standard requests, but it fails in cases where custom timeouts are applied.
Further investigation showed that passing clientContext to GrpcSpannerStub.create results in a new SpannerStubSettings.newBuilder().build() instance being created rather than using the SpannerStubSettings from clientContext . See code reference.
Using the protected constructor that accepts both stubSettings and clientContext directly resolves the issue. Refer PR
Expected fix:
Expose a new public static method for accepting both stubSettings and clientContext
Regarding the bug fix for canUseDirectPath returning false when DirectPath is enabled, the recommendation was to pass
clientContext
in theGrpcSpannerStub.create
instead ofSpannerStubSetting
This approach works for standard requests, but it fails in cases where custom timeouts are applied.
Further investigation showed that passing
clientContext
toGrpcSpannerStub.create
results in a newSpannerStubSettings.newBuilder().build()
instance being created rather than using the SpannerStubSettings from clientContext . See code reference.Using the protected constructor that accepts both stubSettings and clientContext directly resolves the issue. Refer PR
Expected fix: Expose a new public static method for accepting both stubSettings and clientContext