Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test top 3 APIs on GAE Flex, GKE, and GCP #1752

Closed
omaray opened this issue Mar 14, 2017 · 20 comments
Closed

Test top 3 APIs on GAE Flex, GKE, and GCP #1752

omaray opened this issue Mar 14, 2017 · 20 comments
Assignees
Labels
api: datastore Issues related to the Datastore API. api: logging Issues related to the Cloud Logging API. api: storage Issues related to the Cloud Storage API. running on app engine

Comments

@omaray
Copy link

omaray commented Mar 14, 2017

Test Storage, Datastore, and Logging client libraries on all the GCP platforms (don't include GAE Standard).

Close this issue once we confirm it all works.

@omaray omaray added api: bigquery Issues related to the BigQuery API. api: datastore Issues related to the Datastore API. api: logging Issues related to the Cloud Logging API. api: storage Issues related to the Cloud Storage API. Status: Release Blocking labels Mar 14, 2017
@omaray omaray assigned omaray and garrettjonesgoogle and unassigned omaray Mar 15, 2017
@garrettjonesgoogle garrettjonesgoogle removed their assignment Mar 22, 2017
@garrettjonesgoogle
Copy link
Member

Removing bigquery.

@garrettjonesgoogle garrettjonesgoogle changed the title Test top 4 APIs on GAE Flex, GKE, and GCP Test top 3 APIs on GAE Flex, GKE, and GCP Mar 28, 2017
@garrettjonesgoogle garrettjonesgoogle removed the api: bigquery Issues related to the BigQuery API. label Mar 28, 2017
vam-google added a commit to vam-google/google-cloud-java that referenced this issue Apr 4, 2017
@vam-google
Copy link
Contributor

vam-google commented Apr 4, 2017

The tests executed:
https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_gce_gke_tests_run-txt

The tests results:
GCE:
https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_gce_gke_tests_run-txt

GAE Flex Java:
https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_flex_java_test_results-txt

GAE Flex Custom:
https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_flex_custom_test_results-txt

GKE:
https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gke_test_results-txt

GAE Std Java8 Issues:

  1. CGLib: https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_std_java8_test_failure___cglib-txt
  2. EasyMock verify not allowed: https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_std_java8_test_failure___easymock_verify_not_allowed-txt
  3. System Prooperty: https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_std_java8_test_failure___env_variable-txt
  4. Wierd NoClassDefFound: https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_std_java8_test_failure___noclassdeffounderror_serialization_test-txt
  5. ThreadManager: https://gist.github.com/vam-google/862b1dc2c1badf0e675ef04a552ac872#file-gae_std_java8_test_failure___threadmanager-txt

Other issues (all paltforms):

  1. google-cloud-java seems very demanding on memory. The full test run consumes around 1.5 Gig memory on testing machine.
    1.1) Was not able to run tests on default GAE Flex instances (execution was interrupted and instance restarted automatically). After adding more memory to machine, tests succeeded.
    1.2) The biggest instance on GAE Std has 1Gb of ram, which may be not enough for any practical usage of google-cloud-java.

Conclusion

  1. GCE, GKE, GAE Flex seem more or less working properly, though with some issues (potentially memory issues).
  2. GAE Java8 has issues. Most of the issues seem environment specific, and at least one (Env Variable one) google-cloud-java specific.
  3. Potential (not confirmed yet) memory issues (google-cloud-java consumes too much memory).

Test App Code can be found here: vam-google@35af49e

@lesv
Copy link
Contributor

lesv commented Apr 4, 2017

@ludoch FYI

@rrch
Copy link

rrch commented Apr 7, 2017

Re GAE Java 8 Standard:

"the biggest instance on GAE Std has 1Gb of ram, which may be not enough for any practical usage of google-cloud-java": I hope that doesn't mean that making an API call requires 1.5Gb of RAM. Maybe the issue is with the test that has high parallelism? Can you run everything sequentially?

Leaving the memory issue aside for a second, I would start with fixing the issues that are more clearly tied to the difference in environments. Here's two of them:

Issue 3 ("env variable"): Can you include the parent exception where you throw that RuntimeException? The API classes should always be loadable. Minor points re the message: "com.google.appengine.runtime.version" is a system property, not an environment variable; the preferred way to check for GAE presence is to check that the "com.google.appengine.runtime.environment" system property is present; it's also a good idea to log its value in case of error; we don't call the AppEngine APIs "appengine-sdk" classes -- "AppEngine API classes" sounds better.

Issue 5 ("thread manager"): "Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager" is fully expected if you're using a ThreadPoolExecutor with the default JRE ThreadFactory. Instead, you should pass in a ThreadFactory returned by https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/ThreadManager. If your test app is not a frontend, as I'd expect given that the tests may take more than 60s to complete, then you should ThreadManager.backgroundThreadFactory().

@vam-google
Copy link
Contributor

vam-google commented Apr 7, 2017 via email

@rrch
Copy link

rrch commented Apr 7, 2017

Could you explain which App Engine APIs you need to call? If we brought their number down to zero, then you could run the client code in any thread.

@vam-google
Copy link
Contributor

vam-google commented Apr 7, 2017

We don't call any App Engine APIs, we don't even depend on App Engine Api explicitly. I thought that your previous comment for the issue 5 implied that we should switch to specific ThreadFactory when we create threads (thus we would have to add dependency on App Engine API). Currently we do not use it. google-cloud-java currently does not depend on App Engine API at all, but somehow we receive app engine api specific error, when running on GAE Std J8.

This error (issue 5) is not present on any other environment. On all platforms I was running 100% same code, without any modifications, except those configuration changes, which are env specific, but as for Java code itself it is 100% same everywhere.

Note, there could be some wierd transitive dependency on appengine-sdk, but I cannot find any. The only place where we use appengine-sdk as dependency is for google-cloud-appengine-flex-compat module, but it is a requirement fro java-compat environment, and is not related to GAE Std Java8 tests.

@rrch
Copy link

rrch commented Apr 7, 2017

Are you using java.net.HttpURLConnection by any chance?

@rrch
Copy link

rrch commented Apr 7, 2017

By default we redirect HttpURLConnection to the URLFetch API. This can overridden by adding this line to application-web.xml:
native

You should add it, but I think that we have a bug in Java 8 and that setting is not honored anyway. It'd be nice to verify this. If you can log the stack trace from the IOException where you use HttpURLConnection, I'd expect it to show some urlfetch API classes even when url-stream-handler is set to native.

@rrch
Copy link

rrch commented Apr 7, 2017

Correct line:
<url-stream-handler>native</url-stream-handler>

@vam-google
Copy link
Contributor

vam-google commented Apr 7, 2017

It seems having no impact. https://std-java8-dot-vam-veneer.appspot.com/ is currently deployed with the following appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>vam-veneer</application>
  <service>std-java8</service>
  <version>1</version>
  <runtime>java8</runtime>
  <threadsafe>true</threadsafe>
  <instance-class>B8</instance-class>
  <manual-scaling>
    <instances>1</instances>
  </manual-scaling>
  <url-stream-handler>native</url-stream-handler>
</appengine-web-app>

Running a test for com.google.cloud.datastore.testing.LocalDatastoreHelperTest on it gives same result as before: https://std-java8-dot-vam-veneer.appspot.com/test

@rrch
Copy link

rrch commented Apr 7, 2017

Thanks. It looks like we have to fix some bugs on our side before the metadata server can work.

In the meantime, could you set the "GOOGLE_CLOUD_PROJECT" system property in application-web.xml? Based on the link to the code you provided before, if the system property is set the client won't even try to use HttpURLConnection to retrieve the metadata.

@rrch
Copy link

rrch commented Apr 8, 2017

Sorry, I keep writing the descriptor name wrong. It's appengine-web.xml of course. Here's a snippet:

<system-properties>
  <property name="GOOGLE_CLOUD_PROJECT" value="TBD"/>
</system-properties>

@vam-google
Copy link
Contributor

That did not have impact on the issue 5, but it kind of fixes issue 3, and allows to run integration tests, with lots of NoClassDefFound, for example:

Running com.google.cloud.datastore.it.ITDatastoreTest

.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EEE
Time: 0.408
There were 33 failures:
1) testGet(com.google.cloud.datastore.it.ITDatastoreTest)
com.google.cloud.datastore.DatastoreException: java.lang.NoClassDefFoundError: com/google/appengine/api/urlfetch/HTTPMethod
	at com.google.cloud.datastore.DatastoreException.translateAndThrow(DatastoreException.java:71)
	at com.google.cloud.datastore.DatastoreImpl.commit(DatastoreImpl.java:408)
	at com.google.cloud.datastore.DatastoreImpl.commitMutation(DatastoreImpl.java:392)
	at com.google.cloud.datastore.DatastoreImpl.put(DatastoreImpl.java:352)
	at com.google.cloud.datastore.it.ITDatastoreTest.setUp(ITDatastoreTest.java:150)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)

@rrch
Copy link

rrch commented Apr 10, 2017

That's odd, because the API classes should always be available. Does the test infrastructure create any classloaders? Could you print out the classloader for one of the test classes, like ITDatastoreTest? If it's a URLClassLoader, please also print the result of getURLs().

@vam-google
Copy link
Contributor

Here it is:

Running com.google.cloud.datastore.it.ITDatastoreTest (loaded by java.net.URLClassLoader)
ClassLoader urls: 
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/classes/
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-services-dns-v1-rev7-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-pubsub-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/guice-4.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-trace-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/json-20151123.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/jackson-core-asl-1.9.11.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-vision-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-common-protos-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-http-client-jackson-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-services-compute-v1-rev103-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-trace-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/easymock-3.4.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-stub-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/datastore-v1-proto-client-1.3.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/aopalliance-1.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/protobuf-java-util-3.0.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-monitoring-v3-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/junit-4.12.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-transport-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-core-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/protobuf-java-3.0.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-pubsub-v1-0.1.6.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-speech-v1beta1-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-language-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-language-v1-0.1.6.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-services-bigquery-v2-rev330-1.22.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-resourcemanager-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-http-client-appengine-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-codec-http2-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-speech-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-context-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/commons-io-2.2.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-trace-v1-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-core-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/auto-value-1.2.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-protobuf-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-oauth-client-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/hamcrest-core-1.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-datastore-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/api-common-0.0.2.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-buffer-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/gax-0.8.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-handler-proxy-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-common-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/httpcore-4.0.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-logging-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-http-client-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/gson-2.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/commons-codec-1.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-monitoring-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/commons-fileupload-1.3.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-vision-v1-0.1.6.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-language-v1beta2-0.1.6.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-storage-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-compute-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-language-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-codec-http-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-auth-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-errorreporting-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-translate-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-handler-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-resolver-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-services-cloudresourcemanager-v1beta1-rev10-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/httpclient-4.0.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-error-reporting-v1beta1-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-bigquery-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/jsr305-1.3.9.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-auth-library-oauth2-http-0.6.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-dns-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-http-client-protobuf-1.20.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-logging-v2-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/javax.inject-1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-bigquery-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-auth-library-credentials-0.6.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-storage-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/guava-19.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-compute-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-services-storage-v1-rev100-1.22.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-datastore-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-tcnative-boringssl-static-1.1.33.Fork19.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/jackson-core-2.1.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-vision-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-resourcemanager-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-protobuf-lite-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-speech-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-client-1.21.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-netty-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/datastore-v1-protos-1.3.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-translate-0.12.1-beta-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-http-client-jackson2-1.19.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-codec-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-dns-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/commons-logging-1.1.1.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-api-services-translate-v2-rev47-1.22.0.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-cloud-speech-v1-0.1.6.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-errorreporting-0.12.1-alpha-SNAPSHOT.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/netty-codec-socks-4.1.6.Final.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/joda-time-2.9.2.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-core-1.0.3.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/grpc-google-iam-v1-0.1.5.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/objenesis-2.2.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-pubsub-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-logging-0.12.1-beta-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-monitoring-0.12.1-alpha-SNAPSHOT-tests.jar
file:/base/data/home/apps/s~vam-veneer/std-java8:1.400477007343946424/WEB-INF/lib/google-cloud-managed-test-0.12.1-alpha-SNAPSHOT.jar
file:/base/java8_runtime/conscrypt.jar

.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EEE
Time: 0.424
There were 33 failures:
1) testGet(com.google.cloud.datastore.it.ITDatastoreTest)
com.google.cloud.datastore.DatastoreException: java.lang.NoClassDefFoundError: com/google/appengine/api/urlfetch/HTTPMethod
	at com.google.cloud.datastore.DatastoreException.translateAndThrow(DatastoreException.java:71)
	at com.google.cloud.datastore.DatastoreImpl.commit(DatastoreImpl.java:408)
	at com.google.cloud.datastore.DatastoreImpl.commitMutation(DatastoreImpl.java:392)
	at com.google.cloud.datastore.DatastoreImpl.put(DatastoreImpl.java:352)
	at com.google.cloud.datastore.it.ITDatastoreTest.setUp(ITDatastoreTest.java:150)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: com/google/appengine/api/urlfetch/HTTPMethod
	at com.google.api.client.extensions.appengine.http.UrlFetchTransport.buildRequest(UrlFetchTransport.java:121)
	at com.google.api.client.extensions.appengine.http.UrlFetchTransport.buildRequest(UrlFetchTransport.java:50)
	at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:863)
	at com.google.datastore.v1.client.RemoteRpc.call(RemoteRpc.java:87)
	at com.google.datastore.v1.client.Datastore.commit(Datastore.java:84)
	at com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.commit(HttpDatastoreRpc.java:152)
	at com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:402)
	at com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:399)
	at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:92)
	at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:47)
	at com.google.cloud.datastore.DatastoreImpl.commit(DatastoreImpl.java:398)
	... 16 more
Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.urlfetch.HTTPMethod
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

@vam-google
Copy link
Contributor

If I add the sdk explicitly in app's pom as dependency, then I get another set of errors:

.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EE.EEE
Time: 37.757
There were 33 failures:
1) testGet(com.google.cloud.datastore.it.ITDatastoreTest)
com.google.cloud.datastore.DatastoreException: I/O error
	at com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.translate(HttpDatastoreRpc.java:128)
	at com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.commit(HttpDatastoreRpc.java:154)
	at com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:402)
	at com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:399
```) 

@ludoch
Copy link
Contributor

ludoch commented Apr 11, 2017

Right, adding the GAE SDK API jar in the pom dependency is the temporary solution to address
ClassNotFoundException: com.google.appengine.api.urlfetch.HTTPMethod

Soon, a new Java8 GAE Standard runtime will make this addition irrelevant, but this is what you need to do for now.
Now, I am not sure about the next one (com.google.cloud.datastore.DatastoreException: I/O error) but seems more Google Cloud APIs related than GAE Standard...

garrettjonesgoogle pushed a commit that referenced this issue Apr 11, 2017
* updating 'PubSubExample' to latest api (#1808)

* updating pubsub sample to latest api

* Pubsub update (#1818)

* Update GAPIC layer
* Manual updates to support pubsub changes

* Update spi classes (#1817)

* Update README.md (#1825) [ci skip]

* Add DURABLE_REDUCED_AVAILABILITY storage class (#1834)

Otherwise we crash when servers return this value.

* logging: make flush wait for writes (#1815)

This PR still isn't completely correct,
since it does not force any RPC to immediately be issued.
However, flush should now correctly wait for RPCs
representing prior calls to publish to complete
and any failures to be reported to ErrorManager
before returning.

* use new PartitionKey implementation (#1841)

bumping gax version to 0.8.0 for the new implementation.
reflects googleapis/gapic-generator#1153 .

* Release 0.11.0

* Updating version in README files. [ci skip]

* Update version to 0.11.1-SNAPSHOT (#1843)

* Added a missing @test annotation (#1842)

* pubsub: make Subscriber use ApiService (#1824)

Fixes #1761.

* SPI: Adding @experimentalapi back to logging client classes (#1844)

* Bumping NL, Translate to beta (#1848)

* Release 0.11.1

* Updating version in README files. [ci skip]

* Update version to 0.11.2-SNAPSHOT (#1852)

* pubsub: remove obsolete doc references (#1823)

This PR removes references to the deprecated code of the docs.
The emulator section is rewritten.

Fixes #1789.

* adding functions to manage life cycle of resources in ITComputeTest (#1768)

*adding functions to ITComputeTest, in order to make sure resources
created during tests can be properly deleted even if tests fail or
become timed out.
* refactor and incorporate feedbacks
* implement `add` function with compile-time type checking
* add `remove` method to remove a resource from managed resources
* use Id's as handles to resources
* fix copyright header
* rename class name
* modify remove function, pass delete function to each add method
* address comments

* Add Speech v1. (#1858)

* Make logging overrides the default channel provider (#1820)

* Added more unit tests for SessionPool (#1862)

* Rename Translate title to Translation [ci skip] (#1867)

* Release 0.11.2

* Updating version in README files. [ci skip]

* Update pom.xml version to 0.11.3-SNAPSHOT (#1870)

* pubsub: acquire FlowController before releasing (#1831)

* Revert "pubsub: acquire FlowController before releasing (#1831)" (#1872)

This reverts commit 3717ac6.

This change brings up another serious bug.
If the number of messages we pull in one RPC is greater than the number size of the semaphore, we deadlock forever.
Will redo this later.

* pubsub: make deprecated methods package-private (#1861)

add back mistakenly deleted test

Fixes #1828.

* pubsub: rename newBuilder to defaultBuilder (#1873)

Fixes #1853.

* GAE (Flex_Java/Flex_Custom/Flex_Compat/Std_Java8), GCE, GKE testing app for gcj (#1859)

Appengine tests for #1752

* Replace a constant of type Set with ImmutableSet (#1876)

* Language v1beta2 Release (#1878)

* Language v1beta2 Release
* Language v1 update

* Regenerating SPI: use setEndpoint (#1879)

Reflects googleapis/gapic-generator#1172.
Updates #1835.

* remove last use of setPort/setServiceAddress (#1880)

Fixes #1835.

* new code snippet  for push subscription + cleanup of deprecated snippets (#1875)

* cleaning up PubSubExample
adding snippet for creating a subscription with a push endpoint

* updating start, end tags for snippets,
adding async pull snippet tag

* Release 0.12.0

* Updating version in README files. [ci skip]

* Update version to 0.12.1-SNAPSHOT (#1886)

* Update version of google-auth-java to 0.6.1 (#1888)

* Update version of google-auth-java to 0.6.1

Latest version of google-auth-java contains a fix for auth token refresh failures.

* Remove harcoded auth dependencies

* Don't use `UrlFetchTransport` in App Engine Flex environment  (#1893)

* Don't use `UrlFetchTransport` in App Engine Flex environment #1492

* Add annotations to specify GCP launch stage (#1889)

The Google Cloud Platform launch stage
(https://cloud.google.com/terms/launch-stages) is a signifier of the level of
access and support that can be expected of a particular feature. These
annotations will be used to clearly demarcate features as being in a state
other than General Availability to help set user expectations accordingly.

* Add Identity Access Management (IAM) to the Storage API (#1812)

Adds support for bucket-level IAM (currently in limited alpha). More information
about IAM in Google Cloud Storage can be found at
https://cloud.google.com/storage/docs/access-control/iam
@vam-google
Copy link
Contributor

vam-google commented Apr 13, 2017

Testing is completed, closing the issue.

The discovered issues fixing for GAE Std Java8 will be tracked by #1918.

The memory issue will be tracked by: #1907

suztomo pushed a commit that referenced this issue Feb 1, 2023
…mplates/java_library/.kokoro (#1752) (#1079)

* build(deps): bump protobuf from 3.20.1 to 3.20.2 in /synthtool/gcp/templates/java_library/.kokoro (#1752)

build(deps): bump protobuf

Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 3.20.1 to 3.20.2.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py)
- [Commits](protocolbuffers/protobuf@v3.20.1...v3.20.2)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Source-Link: googleapis/synthtool@239f962
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:d5da32501662e4e53365220cc14cfb1d3b9446585397d57dac50171d92556ae7

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alice <65933803+alicejli@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: datastore Issues related to the Datastore API. api: logging Issues related to the Cloud Logging API. api: storage Issues related to the Cloud Storage API. running on app engine
Projects
None yet
Development

No branches or pull requests

6 participants