Graphcool / graphcool-framework

Apache License 2.0
1.78k stars 130 forks source link

Export - Download Fails - Using Wrong Cluster #454

Closed marktani closed 6 years ago

marktani commented 6 years ago

Issue by troysandal Tuesday Jan 09, 2018 at 22:13 GMT Originally opened as https://github.com/graphcool/prisma/issues/1564


For bug reports, please fill in the next sections:

Current behavior When trying to export my project's data it fails with the message The download of nodes failed. You may get fragmented data. Request ID: us-west-2:simple:.... My target is NOT located in us-west-2, it's in us-west-1 which appears to be the issue.

Reproduction

~$ cd graphcool-project
~/graphcool-projects$ gcf deploy -t foo
> shared-eu-west-1
> foo

~/graphcool-projects$ gcf export -t foo
Downloading nodes... ✔
 ▸    The download of nodes failed. You may get fragmented data. Request ID: us-west-2:simple:....

Downloading lists... ✔
 ▸    The download of lists failed. You may get fragmented data. Request ID: us-west-2:....

Downloading relations... ✔
 ▸    The download of relations failed. You may get fragmented data. Request ID: us-west-2:...

Zipping export...
Zipping export... 36ms
Exported service to export-2018-01-09T21:38:37Z.zip

If your problem can be reproduced with a certain service definition, please create a new GitHub repository with the reproduction instructions.

Expected behavior? Try the above steps but select shared-eu-west-2 instead and the export will succeed.

marktani commented 6 years ago

Comment by marktani Wednesday Jan 10, 2018 at 10:23 GMT


Can you consistently reproduce this when deploying to shared-us-west-2, or does it only occur for your original project?

marktani commented 6 years ago

Comment by troysandal Wednesday Jan 10, 2018 at 23:05 GMT


@marktani just tried it with a new project and I still get a fail but only on the nodes. See output below.

~/code/test/gc$ gcf init
Creating a new Graphcool service in .... ✔

Written files:
├─ types.graphql
├─ src
│  ├─ hello.js
│  └─ hello.graphql
├─ graphcool.yml
└─ package.json

To deploy your Graphcool service:
  graphcool deploy

To start your local Graphcool cluster:
  graphcool local up

To add facebook authentication to your service:
  graphcool add-template auth/facebook

You can find further instructions in the graphcool.yml file,
which is the central project configuration.

~/code/test/gc$ gcf deploy -t foo

? Please choose the cluster you want to deploy to

shared-eu-west-1
Creating service foo in cluster shared-eu-west-1... ✔
Bundling functions... 2.2s
Deploying... 974ms

Success! Created the following service:

Types

  User
   + A new type with the name `User` is created.
   ├─ +  A new field with the name `name` and type `String` is created.
   └─ +  A new field with the name `dateOfBirth` and type `DateTime` is created.

Resolver Functions

  hello
   + A new resolver function with the name `hello` is created.

Permissions

  Wildcard Permission
   ? The wildcard permission for all operations is added.

Here are your GraphQL Endpoints:

  Simple API:        https://api.graph.cool/simple/v1/cjc9o9fp101x40197zdwyyd40
  Relay API:         https://api.graph.cool/relay/v1/cjc9o9fp101x40197zdwyyd40
  Subscriptions API: wss://subscriptions.graph.cool/v1/cjc9o9fp101x40197zdwyyd40
~/code/test/gc$ gcf export -t foo
Downloading nodes... ✔
 ▸    The download of nodes failed. You may get fragmented data. Request ID: us-west-2:simple:cjc9o9q7a1jg50192gtuqa055

Downloading lists... 373ms
Downloading relations... 228ms
Zipping export...
Zipping export... 41ms
Exported service to export-2018-01-10T23:04:25.991Z.zip
You can import it to a new service with
  $ graphcool-framework import --source export-2018-01-10T23:04:25.991Z.zip --target target-name
~/code/test/gc$
marktani commented 6 years ago

Comment by kaizau Friday Jan 12, 2018 at 03:51 GMT


I'm having a similar issue, where export seems the think the cluster is in us-west-2 when it's not.

This is the case even when using the raw export API for the project ID:

{ requestId: 'us-west-2:simple:....',
  error: 'Whoops. Looks like an internal server error. Please contact us from the Console (https://console.graph.cool) or via email (support@graph.cool) and include your Request ID: us-west-2:simple:....' }

Not sure if it's relevant, but my project was cloned from a pre-graphcool-framework project from a couple months back.

marktani commented 6 years ago

Comment by Kisepro Friday Jan 12, 2018 at 13:47 GMT


Same issue than #1570

steve-a-jones commented 6 years ago

Receiving same error here.. services on us-west-2 and export returns The download of nodes failed. You may get fragmented data. Request ID: eu-west-1:simple....

steve-a-jones commented 6 years ago

Update: Receiving similar errors when I curl the raw export api directly. For a cluster in us region I get ..


{"requestId":"eu-west-1:simple:xxxx","error":"Whoops. Looks like an internal server error. Please contact us from the Console (https://console.graph.cool) or via email (support@graph.cool) and include your Request ID: eu-west-1:simple:xxxx"}```
troysandal commented 6 years ago

I still cannot export my data. Looks like I'll have to write a work around, haven't had a backup in 2 week. Any updates @do4gr @marktani ? Thanks in advance for all the hard work.

marktani commented 6 years ago

Hey @troysandal, your problem looks identical to this one: https://github.com/graphcool/graphcool-framework/issues/456.

I'm copying my answer here:

[A]fter further investigation, this seems to be a problem when you're trying to export data "across regions". So if you're trying to export data from a project in shared-eu-west-1, try to send the export request from a european IP.

This might help you work around this issue until it's fixed from our side 🙂

Did you try that approach already?

troysandal commented 6 years ago

Thanks, that worked, I'll get our backups working over this and switch us to a new cluster.

marktani commented 6 years ago

Great, thanks for the confirmation!

I'll close this issue for now. Let's have further discussions in #456 🙂