Skip to content

bug (destination plugin mysql): Unknown table when migrating #11793

@chr-b

Description

@chr-b

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Using CloudQuery with AWS source plugin. The first table in the list is aws_apigateway_rest_apis.
Destination plugin is MySQL.

When running the sync for the first time for AWS accounts, the following error occurs Error 1051 (42S02): Unknown table 'my_database.aws_apigateway_rest_apis'" module=cli and CloudQuery exits.

The database my_database exists in the DB server (MariaDB 10.11.4) and is empty.

Expected Behavior

CloudQuery is able to succesfully sync and pull all AWS asset information.

CloudQuery (redacted) config

kind: destination
spec:
  name: "assetdb_my_database"
  registry: "github"
  path: "cloudquery/mysql"
  version: "v2.2.1"
  write_mode: "overwrite-delete-stale"
  migrate_mode: "forced"
  spec:
    connection_string: "user:pass@(database-server-dns)/my_database"       
kind: source
spec:
  name: "aws_my_database"
  path: "cloudquery/aws"
  version: "v18.1.0"
  concurrency: 2500
  tables: ["aws_apigateway_rest_apis", "aws_cloudfront_distributions", "aws_ec2_eips", "aws_ec2_instances", "aws_ec2_nat_gateways", "aws_ec2_transit_gateways", "aws_ecr_registries", "aws_ecr_repositories", "aws_ecs_clusters", "aws_eks_clusters", "aws_elasticache_clusters", "aws_elasticsearch_domains", "aws_elbv1_load_balancers", "aws_elbv2_load_balancers", "aws_emr_clusters", "aws_iam_users", "aws_iam_user_access_keys", "aws_lambda_functions", "aws_organizations_accounts", "aws_organizations_organizational_units", "aws_s3_buckets"]
  skip_dependent_tables: true
  destinations: ["assetdb_my_database"]
  spec:
    org:
      admin_account:
        local_profile: "my-profile"
      member_role_name: MyAWSRole
    regions: ['*']
    aws_debug: true

Steps To Reproduce

./cloudquery sync ./ --telemetry-level none --log-level debug

CloudQuery (redacted) logs

2023-06-28T12:16:07Z INF Loading spec(s) args=["./"] module=cli
2023-06-28T12:16:07Z INF Source plugin server listening address=/tmp/cq-IZZBwDsMPZjdlxRG.sock module=cli
2023-06-28T12:16:08Z INF Destination plugin server listening address=/tmp/cq-fGpxNaefFrJavQtj.sock module=cli
2023-06-28T12:16:09Z INF Destination plugin server listening address=/tmp/cq-rMRSImxJvrFIBXWp.sock module=cli
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=GetVersions grpc.method_type=unary grpc.service=cloudquery.discovery.v0.Discovery grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.025 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=GetVersions grpc.method_type=unary grpc.service=cloudquery.discovery.v0.Discovery grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.045 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=GetVersions grpc.method_type=unary grpc.service=cloudquery.discovery.v0.Discovery grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.034 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=GetVersions grpc.method_type=unary grpc.service=cloudquery.discovery.v0.Discovery grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.052 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=GetVersions grpc.method_type=unary grpc.service=cloudquery.discovery.v0.Discovery grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.019 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=GetVersions grpc.method_type=unary grpc.service=cloudquery.discovery.v0.Discovery grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.046 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF Start sync destinations=["assetdb_my_database ([email protected])","file_json_my_database ([email protected])"] module=cli source="aws_my_database ([email protected])" sync_time=2023-06-28T12:16:10Z
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=Init grpc.method_type=unary grpc.service=cloudquery.source.v2.Source grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.012 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=Init grpc.method_type=unary grpc.service=cloudquery.source.v2.Source grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=13.504 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=GetDynamicTables grpc.method_type=unary grpc.service=cloudquery.source.v2.Source grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.019 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=GetDynamicTables grpc.method_type=unary grpc.service=cloudquery.source.v2.Source grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=2.361 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=Configure grpc.method_type=unary grpc.service=cloudquery.destination.v1.Destination grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.02 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=Configure grpc.method_type=unary grpc.service=cloudquery.destination.v1.Destination grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.217 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=Configure grpc.method_type=unary grpc.service=cloudquery.destination.v1.Destination grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.025 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF finished call grpc.code=OK grpc.component=server grpc.method=Configure grpc.method_type=unary grpc.service=cloudquery.destination.v1.Destination grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.25 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:10Z INF started call grpc.code=OK grpc.component=server grpc.method=Migrate grpc.method_type=unary grpc.service=cloudquery.destination.v1.Destination grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=0.012 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:11Z INF Migrating table module=mysql table=aws_apigateway_rest_apis
2023-06-28T12:16:11Z INF Table exists, force migration required module=mysql table=aws_apigateway_rest_apis
2023-06-28T12:16:11Z ERR finished call grpc.code=Unknown grpc.component=server grpc.error="Error 1051 (42S02): Unknown table 'my_database.aws_apigateway_rest_apis'" grpc.method=Migrate grpc.method_type=unary grpc.service=cloudquery.destination.v1.Destination grpc.start_time=2023-06-28T12:16:10Z grpc.time_ms=410.731 module=cli peer.address=@ protocol=grpc
2023-06-28T12:16:11Z INF End sync destinations=["assetdb_my_database ([email protected])","file_json_my_database ([email protected])"] module=cli source="aws_my_database ([email protected])" sync_time=2023-06-28T12:16:10Z
2023-06-28T12:16:11Z DBG sending interrupt signal to source plugin module=cli
2023-06-28T12:16:11Z INF waiting for source plugin to terminate module=cli
2023-06-28T12:16:11Z INF Got stop signal. Destination plugin server shutting down address=/tmp/cq-fGpxNaefFrJavQtj.sock module=cli signal=interrupt
2023-06-28T12:16:11Z DBG sending interrupt signal to source plugin module=cli
2023-06-28T12:16:11Z INF waiting for source plugin to terminate module=cli
2023-06-28T12:16:11Z INF Got stop signal. Destination plugin server shutting down address=/tmp/cq-rMRSImxJvrFIBXWp.sock module=cli signal=interrupt
2023-06-28T12:16:11Z DBG sending interrupt signal to source plugin module=cli
2023-06-28T12:16:11Z INF waiting for source plugin to terminate module=cli
2023-06-28T12:16:11Z INF Got stop signal. Source plugin server shutting down address=/tmp/cq-IZZBwDsMPZjdlxRG.sock module=cli signal=interrupt
2023-06-28T12:16:11Z ERR exiting with error error="failed to sync v2 source aws_my_database: rpc error: code = Unknown desc = Error 1051 (42S02): Unknown table 'my_database.aws_apigateway_rest_apis'" module=cli

CloudQuery version

cloudquery version 3.5.4

Additional Context

This configuration works fine for another AWS organization and only fails for one AWS organization.
The config files are generated automatically for both use cases, so there is no difference in the destination config, except for the database names.

Pull request (optional)

  • I can submit a pull request

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions