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

Gcloud NIO permissions bug introduced in 0.90.0 #5

Closed
lbergelson opened this issue Jul 25, 2019 · 12 comments
Closed

Gcloud NIO permissions bug introduced in 0.90.0 #5

lbergelson opened this issue Jul 25, 2019 · 12 comments
Assignees
Labels
api: storage Issues related to the googleapis/java-storage-nio API. priority: p2 Moderately-important priority. Fix may not be included in next release. 🚨 This issue needs some love. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns.

Comments

@lbergelson
Copy link
Contributor

Environment details

  1. API: gcloud-nio
  2. OS type and version: ubuntu 14
  3. Java version: 8
  4. google-cloud-java version(s): 0.90.0-alpha:shaded+
  5. environment: running on a travis-ci node which runs on google cloud

Steps to reproduce

  1. update dependencies to use gcloud-nio 0.90.0+
  2. run tests which authenticate as a service account and access gs:// files on travis-ci
  3. 403

Explanation and theory

We encountered a new 403 error when using nio to access files in gcs after attempting to update from 0.81.0 -> anything 0.90.0 or greater.

This error occurs only when we run our test suite in travis-ci. Notably, travis-ci runs it's worker nodes on google cloud.

Our tests authenticate using a service account:

gcloud config set project broad-dsde-dev
gcloud auth activate-service-account --key-file servicekey.json

Prior to v0.90.0 everything worked fine. After updating to 0.90.0 we started getting this error:

 com.google.cloud.storage.StorageException: 806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835.

The service account listed is our authenticated account. However the project ID is NOT the project we are attempting to access and it's not a project we own. After a bit of digging we discovered that the project belongs to travis-ci.

So it seems like some change between 0.89.0 and 0.90.0 is causing it to incorrectly make a request against the project that the host machine belongs to, rather than the account that is logged in.

Stack trace

The Project
Example travis log
Example test report

Example stack trace:

com.google.cloud.storage.StorageException: 806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835.
	at com.google.cloud.storage.spi.v1.HttpStorageRpc.translate(HttpStorageRpc.java:226)
	at com.google.cloud.storage.spi.v1.HttpStorageRpc.list(HttpStorageRpc.java:367)
	at com.google.cloud.storage.StorageImpl$8.call(StorageImpl.java:355)
	at com.google.cloud.storage.StorageImpl$8.call(StorageImpl.java:352)
	at shaded.cloud_nio.com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:105)
	at com.google.cloud.RetryHelper.run(RetryHelper.java:76)
	at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)
	at com.google.cloud.storage.StorageImpl.listBlobs(StorageImpl.java:351)
	at com.google.cloud.storage.StorageImpl.list(StorageImpl.java:307)
	at com.google.cloud.storage.contrib.nio.CloudStoragePath.seemsLikeADirectoryAndUsePseudoDirectories(CloudStoragePath.java:107)
	at com.google.cloud.storage.contrib.nio.CloudStorageFileSystemProvider.readAttributes(CloudStorageFileSystemProvider.java:810)
	at java.nio.file.Files.readAttributes(Files.java:1737)
	at java.nio.file.Files.isRegularFile(Files.java:2229)
	at htsjdk.samtools.SamFiles.lookForIndex(SamFiles.java:74)
	at htsjdk.samtools.SamFiles.findIndex(SamFiles.java:40)
	at htsjdk.samtools.SamReaderFactory.open(SamReaderFactory.java:103)
	at org.broadinstitute.hellbender.engine.ReadsDataSource.<init>(ReadsDataSource.java:227)
	at org.broadinstitute.hellbender.engine.ReadsDataSource.<init>(ReadsDataSource.java:162)
	at org.broadinstitute.hellbender.engine.GATKTool.initializeReads(GATKTool.java:446)
	at org.broadinstitute.hellbender.engine.GATKTool.onStartup(GATKTool.java:695)
	at org.broadinstitute.hellbender.engine.ReadWalker.onStartup(ReadWalker.java:50)
	at org.broadinstitute.hellbender.cmdline.CommandLineProgram.runTool(CommandLineProgram.java:137)
	at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMainPostParseArgs(CommandLineProgram.java:191)
	at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:210)
	at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:162)
	at org.broadinstitute.hellbender.Main.instanceMain(Main.java:148)
	at org.broadinstitute.hellbender.Main.instanceMain(Main.java:189)
	at org.broadinstitute.hellbender.engine.ReadWalkerGCSSupportIntegrationTest.testBAMReferenceAndIntervalsOnGCS(ReadWalkerGCSSupportIntegrationTest.java:86)
	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:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.privateRun(TestRunner.java:744)
	at org.testng.TestRunner.run(TestRunner.java:602)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
	at org.testng.SuiteRunner.run(SuiteRunner.java:289)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
	at org.testng.TestNG.runSuites(TestNG.java:1144)
	at org.testng.TestNG.run(TestNG.java:1115)
	at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests(TestNGTestClassProcessor.java:141)
	at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop(TestNGTestClassProcessor.java:90)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
	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:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
	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:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:175)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:157)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
Caused by: shaded.cloud_nio.com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835.",
    "reason" : "forbidden"
  } ],
  "message" : "806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835."
}
	at shaded.cloud_nio.com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:150)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:451)
	at shaded.cloud_nio.com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1089)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:549)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:482)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:599)
	at com.google.cloud.storage.spi.v1.HttpStorageRpc.list(HttpStorageRpc.java:357)
	... 76 more
@lbergelson
Copy link
Contributor Author

Putting together an easily sharable example failure is a bit tricky since I've only been able to repeat it on travis and you need to provide an account, but if it would be helpful I can probably set up a tiny github project which would exhibit the failure.

@lbergelson
Copy link
Contributor Author

@jean-philippe-martin If you have any time to look into this it would be useful.

@lbergelson
Copy link
Contributor Author

Is there anything I can do to help move this along? It's blocking us from upgrading to newer versions of the library that have important bug fixes.

@jean-philippe-martin
Copy link
Contributor

Yes, some small repro where I have enough permissions to get Travis to run and to look at its logs would help!

@lbergelson
Copy link
Contributor Author

lbergelson commented Aug 16, 2019

@jean-philippe-martin

I've created a branch in the gatk project that is a much more precise repro. I just deleted almost everything from the repo and hacked it down to just be a test while keeping all the authentication stuff the same.

The branch is lb_nio_bug_test . You have permissions to push to the repo, feel free to either copy the branch or work with that one directly.

The test which fails is

    @Test
    public void testIsRegularFileOnNonexistant() throws URISyntaxException {
        Files.isRegularFile(Paths.get(new URI("gs://hellbender/nonexistant")));
    }

It fails with the following exception:

com.google.cloud.storage.StorageException: 806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835.
	at com.google.cloud.storage.spi.v1.HttpStorageRpc.translate(HttpStorageRpc.java:227)
	at com.google.cloud.storage.spi.v1.HttpStorageRpc.list(HttpStorageRpc.java:368)
	at com.google.cloud.storage.StorageImpl$8.call(StorageImpl.java:355)
	at com.google.cloud.storage.StorageImpl$8.call(StorageImpl.java:352)
	at shaded.cloud_nio.com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:105)
	at com.google.cloud.RetryHelper.run(RetryHelper.java:76)
	at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)
	at com.google.cloud.storage.StorageImpl.listBlobs(StorageImpl.java:351)
	at com.google.cloud.storage.StorageImpl.list(StorageImpl.java:307)
	at com.google.cloud.storage.contrib.nio.CloudStoragePath.seemsLikeADirectoryAndUsePseudoDirectories(CloudStoragePath.java:107)
	at com.google.cloud.storage.contrib.nio.CloudStorageFileSystemProvider.readAttributes(CloudStorageFileSystemProvider.java:809)
	at java.nio.file.Files.readAttributes(Files.java:1737)
	at java.nio.file.Files.isRegularFile(Files.java:2229)
	at gatk.NioBugRepro.testIsRegularFileOnNonexistant(NioBugRepro.java:114)
	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:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.privateRun(TestRunner.java:648)
	at org.testng.TestRunner.run(TestRunner.java:505)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
	at org.testng.SuiteRunner.run(SuiteRunner.java:364)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
	at org.testng.TestNG.runSuites(TestNG.java:1049)
	at org.testng.TestNG.run(TestNG.java:1017)
	at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests(TestNGTestClassProcessor.java:141)
	at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop(TestNGTestClassProcessor.java:90)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
	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:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
	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:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:175)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:157)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
Caused by: shaded.cloud_nio.com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835.",
    "reason" : "forbidden"
  } ],
  "message" : "806222273987-uilktks3j6i7962rp0v7nusveer58497@developer.gserviceaccount.com does not have serviceusage.services.use access to project 685190392835."
}
	at shaded.cloud_nio.com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:150)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:401)
	at shaded.cloud_nio.com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1089)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:499)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:432)
	at shaded.cloud_nio.com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:549)
	at com.google.cloud.storage.spi.v1.HttpStorageRpc.list(HttpStorageRpc.java:358)
	... 62 more

That branch sets up a matrix of travis builds of different versions of the library. You can see that it starts failing at version 0.90.0:

https://travis-ci.com/broadinstitute/gatk/builds/123451910

I also noticed that in version 0.90.0+ you get an NPE due to a null project when callings isRegularFile in the case where you have authenticated on the local machine using personal credentials but NEVER set a default project. I've been unable to reproduce it again after setting a default project though, even if I unset my default.

I also got in a weird state where the same method failed with different permission issues saying that accessing that file requires you to be authenticated because it's set as requester pays. However, that bucket is not set as requester pays so it seems wrong...

gsutil requesterpays get gs://hellbender
gs://hellbender: Disabled

I can try to track down the exact causes of those other error modes, but they aren't blockers for us at the moment.

In any case, it seems like something changed in 0.90.0 which makes checking isRegularFile on a non-existent file into a minefield of edge cases.

@lbergelson
Copy link
Contributor Author

@jean-philippe-martin Also, I think you know this already, but you can get the test results after the travis build, it outputs the path it's going to upload the reports too.

Screen Shot 2019-08-15 at 9 57 11 PM

@lbergelson
Copy link
Contributor Author

Looking at the commits in 0.90.0 it seems very likely to me that the bug was introduced here:
googleapis/google-cloud-java#4996

@lbergelson
Copy link
Contributor Author

Looking deeper, I think the bug is here:

I suspect the project being picked corresponds to the app engine project that travis is running instead of the service account project that I've authenticated as.

https://github.com/googleapis/google-cloud-java/blob/1daf76a8538d923205dcd40a9caad36af22c5a63/google-cloud-clients/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java#L336-L362

@lbergelson
Copy link
Contributor Author

Yup... that seems to be it.

GOOGLE_CLOUD_PROJECT property: null
GCLOUD_PROJECT property:       null
App Engine Project ID:         travis-ci-prod-2
Service Account Project ID:    broad-dsde-dev
Google Cloud Project ID:       broad-dsde-dev

@jean-philippe-martin
Copy link
Contributor

👍 awesome!

lbergelson referenced this issue in broadinstitute/gatk Sep 11, 2019
* Updating google-cloud-nio  0.81.0-alpha:shaded -> 0.107.0-alpha:shaded
* Update picard version 2.20.5 -> 2.20.7
* Fixes #5935 
* Exclude transitive dependencies from shaded dependencies.  The shaded poms seem to include copies of the dependencies that were shaded which means we get multiple confusing copies of the same class.  
* Added a workaround on travis https://github.com/googleapis/google-cloud-java/issues/5884, an issue introduced in gcloud 0.90.0-alpha.  This required redundantly specifying the google project through an environment variable in addition to logging in.
@chingor13 chingor13 transferred this issue from googleapis/google-cloud-java Jan 7, 2020
@chingor13 chingor13 added priority: p2 Moderately-important priority. Fix may not be included in next release. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns. labels Jan 7, 2020
@yoshi-automation yoshi-automation added the 🚨 This issue needs some love. label Jan 21, 2020
@frankyn
Copy link
Member

frankyn commented Jan 29, 2020

Hi @lbergelson,

Are you still seeing this issue? Apologies for the delay in response.

If it is, could you do me a favor and provide request logs by following these instruction.

Thank you.

@google-cloud-label-sync google-cloud-label-sync bot added the api: storage Issues related to the googleapis/java-storage-nio API. label Jan 30, 2020
@frankyn
Copy link
Member

frankyn commented Jan 31, 2020

IIUC, setting environment variable GOOGLE_CLOUD_PROJECT will help resolve this issue.

I'm closing due to inactivity. If the issue still persists please don't hesitate to reopen.

@frankyn frankyn closed this as completed Jan 31, 2020
@frankyn frankyn removed the 🚨 This issue needs some love. label Jan 31, 2020
@yoshi-automation yoshi-automation added the 🚨 This issue needs some love. label Apr 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the googleapis/java-storage-nio API. priority: p2 Moderately-important priority. Fix may not be included in next release. 🚨 This issue needs some love. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Projects
None yet
Development

No branches or pull requests

6 participants