Skip to content

Commit bf19f3a

Browse files
ludochgae-java-bot
authored andcommitted
fix the "invalid handle" error reporting when httpconnector flag is on. The change now always uses the clone security ticket instead of the request based ticket, so that datastore API can happen even just after a request is committed.
PiperOrigin-RevId: 827137779 Change-Id: Icd1bcd120545e9f39e0be1b1d2a767a63d022494
1 parent 63a7275 commit bf19f3a

3 files changed

Lines changed: 21 additions & 53 deletions

File tree

runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/http/HttpApiHostClient.java

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package com.google.apphosting.runtime.http;
1818

19-
import static com.google.apphosting.runtime.AppEngineConstants.HTTP_CONNECTOR_MODE;
20-
2119
import com.google.apphosting.base.protos.RuntimePb.APIRequest;
2220
import com.google.apphosting.base.protos.RuntimePb.APIResponse;
2321
import com.google.apphosting.base.protos.RuntimePb.APIResponse.ERROR;
@@ -254,22 +252,13 @@ public void call(AnyRpcClientContext ctx, APIRequest req, AnyRpcCallback<APIResp
254252
requestTooBig(cb);
255253
return;
256254
}
257-
RemoteApiPb.Request requestPb =
258-
req.getApiPackage().startsWith("datastore") && Boolean.getBoolean(HTTP_CONNECTOR_MODE)
259-
? RemoteApiPb.Request.newBuilder()
260-
.setServiceName(req.getApiPackage())
261-
.setMethod(req.getCall())
262-
.setRequest(payload)
263-
// No request ID security ticket for HTTP connector mode.
264-
.setTraceContext(req.getTraceContext().toByteString())
265-
.build()
266-
: RemoteApiPb.Request.newBuilder()
267-
.setServiceName(req.getApiPackage())
268-
.setMethod(req.getCall())
269-
.setRequest(payload)
270-
.setRequestId(req.getSecurityTicket())
271-
.setTraceContext(req.getTraceContext().toByteString())
272-
.build();
255+
RemoteApiPb.Request requestPb = RemoteApiPb.Request.newBuilder()
256+
.setServiceName(req.getApiPackage())
257+
.setMethod(req.getCall())
258+
.setRequest(payload)
259+
.setRequestId(req.getSecurityTicket())
260+
.setTraceContext(req.getTraceContext().toByteString())
261+
.build();
273262
send(requestPb.toByteArray(), context, cb);
274263
}
275264

runtime/runtime_impl_jetty121/src/main/java/com/google/apphosting/runtime/http/HttpApiHostClient.java

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package com.google.apphosting.runtime.http;
1818

19-
import static com.google.apphosting.runtime.AppEngineConstants.HTTP_CONNECTOR_MODE;
20-
2119
import com.google.apphosting.base.protos.RuntimePb.APIRequest;
2220
import com.google.apphosting.base.protos.RuntimePb.APIResponse;
2321
import com.google.apphosting.base.protos.RuntimePb.APIResponse.ERROR;
@@ -259,21 +257,13 @@ public void call(AnyRpcClientContext ctx, APIRequest req, AnyRpcCallback<APIResp
259257
return;
260258
}
261259
RemoteApiPb.Request requestPb =
262-
req.getApiPackage().startsWith("datastore") && Boolean.getBoolean(HTTP_CONNECTOR_MODE)
263-
? RemoteApiPb.Request.newBuilder()
264-
.setServiceName(req.getApiPackage())
265-
.setMethod(req.getCall())
266-
.setRequest(payload)
267-
// No request ID security ticket for HTTP connector mode.
268-
.setTraceContext(req.getTraceContext().toByteString())
269-
.build()
270-
: RemoteApiPb.Request.newBuilder()
271-
.setServiceName(req.getApiPackage())
272-
.setMethod(req.getCall())
273-
.setRequest(payload)
274-
.setRequestId(req.getSecurityTicket())
275-
.setTraceContext(req.getTraceContext().toByteString())
276-
.build();
260+
RemoteApiPb.Request.newBuilder()
261+
.setServiceName(req.getApiPackage())
262+
.setMethod(req.getCall())
263+
.setRequest(payload)
264+
.setRequestId(req.getSecurityTicket())
265+
.setTraceContext(req.getTraceContext().toByteString())
266+
.build();
277267
send(requestPb.toByteArray(), context, cb);
278268
}
279269

runtime/runtime_impl_jetty9/src/main/java/com/google/apphosting/runtime/http/HttpApiHostClient.java

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package com.google.apphosting.runtime.http;
1818

19-
import static com.google.apphosting.runtime.AppEngineConstants.HTTP_CONNECTOR_MODE;
20-
2119
import com.google.apphosting.base.protos.RuntimePb.APIRequest;
2220
import com.google.apphosting.base.protos.RuntimePb.APIResponse;
2321
import com.google.apphosting.base.protos.RuntimePb.APIResponse.ERROR;
@@ -254,22 +252,13 @@ public void call(AnyRpcClientContext ctx, APIRequest req, AnyRpcCallback<APIResp
254252
requestTooBig(cb);
255253
return;
256254
}
257-
RemoteApiPb.Request requestPb =
258-
req.getApiPackage().startsWith("datastore") && Boolean.getBoolean(HTTP_CONNECTOR_MODE)
259-
? RemoteApiPb.Request.newBuilder()
260-
.setServiceName(req.getApiPackage())
261-
.setMethod(req.getCall())
262-
.setRequest(payload)
263-
// No request ID security ticket for HTTP connector mode.
264-
.setTraceContext(req.getTraceContext().toByteString())
265-
.build()
266-
: RemoteApiPb.Request.newBuilder()
267-
.setServiceName(req.getApiPackage())
268-
.setMethod(req.getCall())
269-
.setRequest(payload)
270-
.setRequestId(req.getSecurityTicket())
271-
.setTraceContext(req.getTraceContext().toByteString())
272-
.build();
255+
RemoteApiPb.Request requestPb = RemoteApiPb.Request.newBuilder()
256+
.setServiceName(req.getApiPackage())
257+
.setMethod(req.getCall())
258+
.setRequest(payload)
259+
.setRequestId(req.getSecurityTicket())
260+
.setTraceContext(req.getTraceContext().toByteString())
261+
.build();
273262
send(requestPb.toByteArray(), context, cb);
274263
}
275264

0 commit comments

Comments
 (0)