Java 为什么数据存储在解析URLFETCH的参数时抛出异常?

Java 为什么数据存储在解析URLFETCH的参数时抛出异常?,java,google-app-engine,google-cloud-datastore,app-engine-flexible,Java,Google App Engine,Google Cloud Datastore,App Engine Flexible,在“后端”Google App Engine Flexible Environment实例的后台线程中,使用Google Cloud API为数据存储运行一个简单的查询,在几秒钟的多次查询尝试中,我遇到了以下异常 An error occurred parsing (locally or remotely) the arguments to URLFETCH.Fetch() (有关stacktrace,请参见下文。) 它与另一个错误同时出现 com.google.apphosting.vmru

在“后端”Google App Engine Flexible Environment实例的后台线程中,使用Google Cloud API为数据存储运行一个简单的查询,在几秒钟的多次查询尝试中,我遇到了以下异常

An error occurred parsing (locally or remotely) the arguments to URLFETCH.Fetch()
(有关stacktrace,请参见下文。)

它与另一个错误同时出现

com.google.apphosting.vmruntime.VmApiProxyDelegate  convertApiResponseRpcErrorToException: RPC failed, API=urlfetch.Fetch : BAD_REQUEST : There is no active request context for this API call.
在异常之前,日志显示

 com.google.apphosting.vmruntime.VmRequestThreadFactory interruptRequestThreads: Request thread Thread-16 is still alive, forcing interrupt. 

这表明Google应用程序引擎超时,例如web请求的60秒限制。看看日志,这似乎不是真的。但无论如何,该查询在使用backgroundThreadFactory创建的后台线程中运行

这是我之前和之后在相同数据上运行的Java代码,没有此类问题,因此在运行时发生了特定的事情

什么会导致这个问题

堆栈跟踪:

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: com.google.cloud.datastore.DatastoreException: com.google.apphosting.api.ApiProxy$ArgumentException: An error occurred parsing (locally or remotely) the arguments to URLFETCH.Fetch(). at com.google.cloud.datastore.DatastoreException.translateAndThrow(DatastoreException.java:66) at com.google.cloud.datastore.DatastoreImpl.runQuery(DatastoreImpl.java:97) at com.google.cloud.datastore.QueryResultsImpl.sendRequest(QueryResultsImpl.java:73) at com.google.cloud.datastore.QueryResultsImpl.<init>(QueryResultsImpl.java:57) at com.google.cloud.datastore.DatastoreImpl.run(DatastoreImpl.java:82) at com.google.cloud.datastore.DatastoreImpl.run(DatastoreImpl.java:73) at com.freightos.backup.datastore.gcloudapi.GCloudApiDSBackup.loadEntity(GCloudApiDSBackup.java:692) at com.freightos.backup.datastore.gcloudapi.GCloudApiDSBackup$CopyEntities.loadOneEntity(GCloudApiDSBackup.java:1104) ... 7 more Caused by: com.google.apphosting.api.ApiProxy$ArgumentException: An error occurred parsing (locally or remotely) the arguments to URLFETCH.Fetch(). at com.google.apphosting.vmruntime.VmApiProxyDelegate.convertApiResponseRpcErrorToException(VmApiProxyDelegate.java:397) at com.google.apphosting.vmruntime.VmApiProxyDelegate.convertRemoteError(VmApiProxyDelegate.java:341) at com.google.apphosting.vmruntime.VmApiProxyDelegate.runSyncCall(VmApiProxyDelegate.java:187) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeApiCall(VmApiProxyDelegate.java:155) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeSyncCallWithTimeout(VmApiProxyDelegate.java:143) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeSyncCall(VmApiProxyDelegate.java:132) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeSyncCall(VmApiProxyDelegate.java:75) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:118) at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:40) at com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:74) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981) at com.google.datastore.v1.client.RemoteRpc.call(RemoteRpc.java:87) at com.google.datastore.v1.client.Datastore.runQuery(Datastore.java:108) at com.google.cloud.datastore.spi.DefaultDatastoreRpc.runQuery(DefaultDatastoreRpc.java:158) at com.google.cloud.datastore.DatastoreImpl$1.call(DatastoreImpl.java:93) at com.google.cloud.datastore.DatastoreImpl$1.call(DatastoreImpl.java:89) at com.google.cloud.RetryHelper.doRetry(RetryHelper.java:179) at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:244) at com.google.cloud.datastore.DatastoreImpl.runQuery(DatastoreImpl.java:88) ... 13 more
java.util.concurrent.Executors$runnableapter.call(Executors.java:511)java.util.concurrent.FutureTask.run(FutureTask.java:266)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread.java:745)原因:com.google.cloud.datastore.DatastoreException:com.google.apphosting.api.ApiProxy$ArgumentException:解析(本地或远程)URLFETCH.Fetch()的参数时出错。com.google.cloud.datastore.DatastoreException.translateAndThrow(DatastoreException.java:66)com.google.cloud.datastore.DatastoreImpl.runQuery(DatastoreImpl.java:97)com.google.cloud.datastore.queryresultsiml.sendRequest(queryresultsiml.java:73)com.google.cloud.datastore.queryresultsiml.java:57com.google.cloud.datastore.DatastoreImpl.run(DatastoreImpl.java:82)com.google.cloud.datastore.DatastoreImpl.run(DatastoreImpl.java:73)com.freightos.backup.datastore.gcloudapi.GCloudApiDSBackup.loadEntity(GCloudApiDSBackup.java:692)com.freightos.backup.datastore.gcloudapi.GCloudApiDSBackup$copyenties.loadOneEntity(GCloudApiDSBackup.java:1104)…7其他原因:com.google.apphosting.api.ApiProxy$ArgumentException:在com.google.apphosting.vmruntime.vmapiproxydegate.convertapiresponserrortoException(vmapiproxydegate.java:397)解析URLFETCH.Fetch()的参数时(本地或远程)发生错误com.google.apphosting.vmruntime.vmapiproxydegate.convertRemoteError(vmapiproxydegate.java:341)com.google.apphosting.vmruntime.vmapiproxydegate.runSyncCall(vmapiproxydegate.java:187)com.google.apphosting.vmruntime.vmapiproxydegate.makeApiCall(vmapiproxydegate.java:155)在com.google.apphosting.vmruntime.vmapiproxydegate.makeSyncCallWithTimeout(vmapiproxydegate.java:143)在com.google.apphosting.vmruntime.vmapiproxydegate.makeSyncCall(vmapiproxydegate.java:132)在com.google.apphosting.api.apiproxydegate.makeSyncCall(vmapiproxydegate.java:75)在com.google.apphosting.api.api.approxydegate.makeSyncCall(ApiProxy.java:118)在com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:40)在com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:74)在com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981)在com.google.datastore.v1.client.RemoteRpc.call(RemoteRpc.java:87)在com.google.datastore.v1.client.datastore.runQuery(datastore.java:108)在com.google.cloud.datastore.spi.DefaultDatastoreRpc.runQuery(DefaultDatastoreRpc.java:158)在com.google.cloud.datastore.DatastoreImpl$1.call(DatastoreImpl.java:93)在com.google.cloud.DatastoreImpl.DatastoreImpl$1.call(DatastoreImpl.java:89)在com.google.cloud.RetryHelper.doRetry(RetryHelper.java:179)在com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:244)在com.google.cloud.datastore.DatastoreImpl.runQuery(DatastoreImpl.java:88)…13更多信息
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: com.google.cloud.datastore.DatastoreException: com.google.apphosting.api.ApiProxy$ArgumentException: An error occurred parsing (locally or remotely) the arguments to URLFETCH.Fetch(). at com.google.cloud.datastore.DatastoreException.translateAndThrow(DatastoreException.java:66) at com.google.cloud.datastore.DatastoreImpl.runQuery(DatastoreImpl.java:97) at com.google.cloud.datastore.QueryResultsImpl.sendRequest(QueryResultsImpl.java:73) at com.google.cloud.datastore.QueryResultsImpl.<init>(QueryResultsImpl.java:57) at com.google.cloud.datastore.DatastoreImpl.run(DatastoreImpl.java:82) at com.google.cloud.datastore.DatastoreImpl.run(DatastoreImpl.java:73) at com.freightos.backup.datastore.gcloudapi.GCloudApiDSBackup.loadEntity(GCloudApiDSBackup.java:692) at com.freightos.backup.datastore.gcloudapi.GCloudApiDSBackup$CopyEntities.loadOneEntity(GCloudApiDSBackup.java:1104) ... 7 more Caused by: com.google.apphosting.api.ApiProxy$ArgumentException: An error occurred parsing (locally or remotely) the arguments to URLFETCH.Fetch(). at com.google.apphosting.vmruntime.VmApiProxyDelegate.convertApiResponseRpcErrorToException(VmApiProxyDelegate.java:397) at com.google.apphosting.vmruntime.VmApiProxyDelegate.convertRemoteError(VmApiProxyDelegate.java:341) at com.google.apphosting.vmruntime.VmApiProxyDelegate.runSyncCall(VmApiProxyDelegate.java:187) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeApiCall(VmApiProxyDelegate.java:155) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeSyncCallWithTimeout(VmApiProxyDelegate.java:143) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeSyncCall(VmApiProxyDelegate.java:132) at com.google.apphosting.vmruntime.VmApiProxyDelegate.makeSyncCall(VmApiProxyDelegate.java:75) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:118) at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:40) at com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:74) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981) at com.google.datastore.v1.client.RemoteRpc.call(RemoteRpc.java:87) at com.google.datastore.v1.client.Datastore.runQuery(Datastore.java:108) at com.google.cloud.datastore.spi.DefaultDatastoreRpc.runQuery(DefaultDatastoreRpc.java:158) at com.google.cloud.datastore.DatastoreImpl$1.call(DatastoreImpl.java:93) at com.google.cloud.datastore.DatastoreImpl$1.call(DatastoreImpl.java:89) at com.google.cloud.RetryHelper.doRetry(RetryHelper.java:179) at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:244) at com.google.cloud.datastore.DatastoreImpl.runQuery(DatastoreImpl.java:88) ... 13 more