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

Multipart transfer error AssertionError: File size <= 0 0 on AWS #503

Closed
sarahwooders opened this issue Aug 28, 2022 · 0 comments · Fixed by #519
Closed

Multipart transfer error AssertionError: File size <= 0 0 on AWS #503

sarahwooders opened this issue Aug 28, 2022 · 0 comments · Fixed by #519
Assignees
Labels
bug Something isn't working

Comments

@sarahwooders
Copy link
Contributor

I ran a transfer with the command

skyplane cp s3://sarah-skylark-us-west-1/big_file.txt/big_file.txt s3://sarah-skylark-us-east-1/big_file.txt --multipart
 Traceback (most recent call last) ────────────────────────────────╮
│ /Users/sarahwooders/.pyenv/versions/3.8.8/lib/python3.8/site-packages/skyplane/cli/cli.py:157 in │
│ cp                                                                                               │
│                                                                                                  │
│   154 │   │   │   job=job,                                                                       │
│   155 │   │   │   ask_to_confirm_transfer=not confirm,                                           │
│   156 │   │   )                                                                                  │
│ ❱ 157 │   │   stats = launch_replication_job(                                                    │
│   158 │   │   │   topo=topo,                                                                     │
│   159 │   │   │   job=job,                                                                       │
│   160 │   │   │   debug=debug,                                                                   │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │                       bucket_dst = 'sarah-skylark-us-east-1'                                 │ │
│ │                       bucket_src = 'sarah-skylark-us-west-1'                                 │ │
│ │                           clouds = {                                                         │ │
│ │                                    │   's3': 'aws:infer',                                    │ │
│ │                                    │   'gs': 'gcp:infer',                                    │ │
│ │                                    │   'azure': 'azure:infer'                                │ │
│ │                                    }                                                         │ │
│ │                          confirm = False                                                     │ │
│ │                            debug = False                                                     │ │
│ │                              dst = 's3://sarah-skylark-us-east-1/big_file.txt'               │ │
│ │                       dst_client = <skyplane.obj_store.s3_interface.S3Interface object at    │ │
│ │                                    0x11ee33700>                                              │ │
│ │                       dst_region = 'aws:us-east-1'                                           │ │
│ │                      error_local = <function cp.<locals>.error_local at 0x11e78e0d0>         │ │
│ │                              job = ReplicationJob(                                           │ │
│ │                                    │   source_region='aws:us-west-1',                        │ │
│ │                                    │   source_bucket='sarah-skylark-us-west-1',              │ │
│ │                                    │   dest_region='aws:us-east-1',                          │ │
│ │                                    │   dest_bucket='sarah-skylark-us-east-1',                │ │
│ │                                    │   transfer_pairs=[                                      │ │
│ │                                    │   │   (                                                 │ │
│ │                                    │   │   │   S3Object(                                     │ │
│ │                                    │   │   │   │   provider='s3',                            │ │
│ │                                    │   │   │   │   bucket='sarah-skylark-us-west-1',         │ │
│ │                                    │   │   │   │   key='big_file.txt/big_file.txt',          │ │
│ │                                    │   │   │   │   size=73400320000,                         │ │
│ │                                    │   │   │   │   last_modified=datetime.datetime(2022, 5,  │ │
│ │                                    25, 5, 30, 22, tzinfo=tzutc())                            │ │
│ │                                    │   │   │   ),                                            │ │
│ │                                    │   │   │   ObjectStoreObject(                            │ │
│ │                                    │   │   │   │   provider='aws',                           │ │
│ │                                    │   │   │   │   bucket='sarah-skylark-us-east-1',         │ │
│ │                                    │   │   │   │   key='big_file.txt',                       │ │
│ │                                    │   │   │   │   size=None,                                │ │
│ │                                    │   │   │   │   last_modified=None                        │ │
│ │                                    │   │   │   )                                             │ │
│ │                                    │   │   )                                                 │ │
│ │                                    │   ],                                                    │ │
│ │                                    │   chunk_requests=None,                                  │ │
│ │                                    │   random_chunk_size_mb=None                             │ │
│ │                                    )                                                         │ │
│ │                    max_instances = 1                                                         │ │
│ │                        multipart = True                                                      │ │
│ │                         path_dst = 'big_file.txt'                                            │ │
│ │                         path_src = 'big_file.txt/big_file.txt'                               │ │
│ │                     provider_dst = 's3'                                                      │ │
│ │                     provider_src = 's3'                                                      │ │
│ │                        recursive = False                                                     │ │
│ │                   reuse_gateways = False                                                     │ │
│ │                            solve = False                                                     │ │
│ │ solver_required_throughput_gbits = 4.0                                                       │ │
│ │           solver_throughput_grid = PosixPath('/Users/sarahwooders/.pyenv/versions/3.8.8/lib… │ │
│ │                   solver_verbose = False                                                     │ │
│ │                              src = 's3://sarah-skylark-us-west-1/big_file.txt/big_file.txt'  │ │
│ │                       src_client = <skyplane.obj_store.s3_interface.S3Interface object at    │ │
│ │                                    0x11e7952b0>                                              │ │
│ │                       src_region = 'aws:us-west-1'                                           │ │
│ │                             topo = <skyplane.replicate.replication_plan.ReplicationTopology  │ │
│ │                                    object at 0x11e785fa0>                                    │ │
│ │                   transfer_pairs = [                                                         │ │
│ │                                    │   (                                                     │ │
│ │                                    │   │   S3Object(                                         │ │
│ │                                    │   │   │   provider='s3',                                │ │
│ │                                    │   │   │   bucket='sarah-skylark-us-west-1',             │ │
│ │                                    │   │   │   key='big_file.txt/big_file.txt',              │ │
│ │                                    │   │   │   size=73400320000,                             │ │
│ │                                    │   │   │   last_modified=datetime.datetime(2022, 5, 25,  │ │
│ │                                    5, 30, 22, tzinfo=tzutc())                                │ │
│ │                                    │   │   ),                                                │ │
│ │                                    │   │   ObjectStoreObject(                                │ │
│ │                                    │   │   │   provider='aws',                               │ │
│ │                                    │   │   │   bucket='sarah-skylark-us-east-1',             │ │
│ │                                    │   │   │   key='big_file.txt',                           │ │
│ │                                    │   │   │   size=None,                                    │ │
│ │                                    │   │   │   last_modified=None                            │ │
│ │                                    │   │   )                                                 │ │
│ │                                    │   )                                                     │ │
│ │                                    ]                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /Users/sarahwooders/.pyenv/versions/3.8.8/lib/python3.8/site-packages/skyplane/cli/cli_impl/cp_r │
│ eplicate.py:255 in launch_replication_job                                                        │
│                                                                                                  │
│   252 │   │   │   logger.fs.info(f"Log URLs for {gw.uuid()} ({node.region}:{node.instance})")    │
│   253 │   │   │   logger.fs.info(f"\tLog viewer: {gw.gateway_log_viewer_url}")                   │
│   254 │   │   │   logger.fs.info(f"\tAPI: {gw.gateway_api_url}")                                 │
│ ❱ 255 │   │   job = rc.run_replication_plan(                                                     │
│   256 │   │   │   job,                                                                           │
│   257 │   │   │   multipart_enabled=multipart_enabled,                                           │
│   258 │   │   │   multipart_max_chunk_size_mb=multipart_max_chunk_size_mb,                       │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │          aws_instance_class = 'm5.8xlarge'                                                   │ │
│ │        azure_instance_class = 'Standard_D32_v4'                                              │ │
│ │                       debug = False                                                          │ │
│ │        gateway_docker_image = 'public.ecr.aws/s6m1p0n8/skyplane:0.0.1a0.dev1'                │ │
│ │          gcp_instance_class = 'n2-standard-32'                                               │ │
│ │     gcp_use_premium_network = True                                                           │ │
│ │                          gw = AWSServer(region_tag=aws:us-west-1,                            │ │
│ │                               instance_id=i-04691dda638199eba)                               │ │
│ │                         job = ReplicationJob(                                                │ │
│ │                               │   source_region='aws:us-west-1',                             │ │
│ │                               │   source_bucket='sarah-skylark-us-west-1',                   │ │
│ │                               │   dest_region='aws:us-east-1',                               │ │
│ │                               │   dest_bucket='sarah-skylark-us-east-1',                     │ │
│ │                               │   transfer_pairs=[                                           │ │
│ │                               │   │   (                                                      │ │
│ │                               │   │   │   S3Object(                                          │ │
│ │                               │   │   │   │   provider='s3',                                 │ │
│ │                               │   │   │   │   bucket='sarah-skylark-us-west-1',              │ │
│ │                               │   │   │   │   key='big_file.txt/big_file.txt',               │ │
│ │                               │   │   │   │   size=73400320000,                              │ │
│ │                               │   │   │   │   last_modified=datetime.datetime(2022, 5, 25,   │ │
│ │                               5, 30, 22, tzinfo=tzutc())                                     │ │
│ │                               │   │   │   ),                                                 │ │
│ │                               │   │   │   ObjectStoreObject(                                 │ │
│ │                               │   │   │   │   provider='aws',                                │ │
│ │                               │   │   │   │   bucket='sarah-skylark-us-east-1',              │ │
│ │                               │   │   │   │   key='big_file.txt',                            │ │
│ │                               │   │   │   │   size=None,                                     │ │
│ │                               │   │   │   │   last_modified=None                             │ │
│ │                               │   │   │   )                                                  │ │
│ │                               │   │   )                                                      │ │
│ │                               │   ],                                                         │ │
│ │                               │   chunk_requests=None,                                       │ │
│ │                               │   random_chunk_size_mb=None                                  │ │
│ │                               )                                                              │ │
│ │              log_interval_s = 1.0                                                            │ │
│ │           multipart_enabled = True                                                           │ │
│ │ multipart_max_chunk_size_mb = 8                                                              │ │
│ │                        node = ReplicationTopologyGateway(region='aws:us-west-1', instance=0) │ │
│ │                          rc = <skyplane.replicate.replicator_client.ReplicatorClient object  │ │
│ │                               at 0x120ef64c0>                                                │ │
│ │              reuse_gateways = False                                                          │ │
│ │                       stats = {}                                                             │ │
│ │          time_limit_seconds = None                                                           │ │
│ │                        topo = <skyplane.replicate.replication_plan.ReplicationTopology       │ │
│ │                               object at 0x11e785fa0>                                         │ │
│ │                     use_bbr = True                                                           │ │
│ │             use_compression = True                                                           │ │
│ │                    use_e2ee = True                                                           │ │
│ │              use_socket_tls = False                                                          │ │
│ │            verify_checksums = True                                                           │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /Users/sarahwooders/.pyenv/versions/3.8.8/lib/python3.8/site-packages/skyplane/replicate/replica │
│ tor_client.py:346 in run_replication_plan                                                        │
│                                                                                                  │
│   343 │   │   │   │   │   │   for chunk in range(num_chunks):                                    │
│   344 │   │   │   │   │   │   │   # size is min(chunk_size, remaining data)                      │
│   345 │   │   │   │   │   │   │   file_size_bytes = min(chunk_size_bytes, src_object.size - of   │
│ ❱ 346 │   │   │   │   │   │   │   assert file_size_bytes > 0, f"File size <= 0 {file_size_byte   │
│   347 │   │   │   │   │   │   │   chunks.append(                                                 │
│   348 │   │   │   │   │   │   │   │   Chunk(                                                     │
│   349 │   │   │   │   │   │   │   │   │   src_key=src_object.key,                                │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │                 assign_jobs = []                                                             │ │
│ │                       chunk = 8750                                                           │ │
│ │            chunk_size_bytes = 8388608                                                        │ │
│ │                      chunks = [                                                              │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=0,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=0,                                   │ │
│ │                               │   │   part_number=1,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=1,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=8388608,                             │ │
│ │                               │   │   part_number=2,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=2,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=16777216,                            │ │
│ │                               │   │   part_number=3,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=3,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=25165824,                            │ │
│ │                               │   │   part_number=4,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=4,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=33554432,                            │ │
│ │                               │   │   part_number=5,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=5,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=41943040,                            │ │
│ │                               │   │   part_number=6,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=6,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=50331648,                            │ │
│ │                               │   │   part_number=7,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=7,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=58720256,                            │ │
│ │                               │   │   part_number=8,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=8,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=67108864,                            │ │
│ │                               │   │   part_number=9,                                         │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   Chunk(                                                     │ │
│ │                               │   │   src_key='big_file.txt/big_file.txt',                   │ │
│ │                               │   │   dest_key='big_file.txt',                               │ │
│ │                               │   │   chunk_id=9,                                            │ │
│ │                               │   │   chunk_length_bytes=8388608,                            │ │
│ │                               │   │   md5_hash=None,                                         │ │
│ │                               │   │   file_offset_bytes=75497472,                            │ │
│ │                               │   │   part_number=10,                                        │ │
│ │                               │   │                                                          │ │
│ │                               upload_id='d7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdP… │ │
│ │                               │   ),                                                         │ │
│ │                               │   ... +8740                                                  │ │
│ │                               ]                                                              │ │
│ │                 dest_object = ObjectStoreObject(                                             │ │
│ │                               │   provider='aws',                                            │ │
│ │                               │   bucket='sarah-skylark-us-east-1',                          │ │
│ │                               │   key='big_file.txt',                                        │ │
│ │                               │   size=None,                                                 │ │
│ │                               │   last_modified=None                                         │ │
│ │                               )                                                              │ │
│ │             file_size_bytes = 0                                                              │ │
│ │                 gateway_ips = {                                                              │ │
│ │                               │   AWSServer(region_tag=aws:us-east-1,                        │ │
│ │                               instance_id=i-06fa2e183ce33f544): '34.236.187.90',             │ │
│ │                               │   AWSServer(region_tag=aws:us-west-1,                        │ │
│ │                               instance_id=i-04691dda638199eba): '54.176.105.31'              │ │
│ │                               }                                                              │ │
│ │                         idx = 8750                                                           │ │
│ │                         job = ReplicationJob(                                                │ │
│ │                               │   source_region='aws:us-west-1',                             │ │
│ │                               │   source_bucket='sarah-skylark-us-west-1',                   │ │
│ │                               │   dest_region='aws:us-east-1',                               │ │
│ │                               │   dest_bucket='sarah-skylark-us-east-1',                     │ │
│ │                               │   transfer_pairs=[                                           │ │
│ │                               │   │   (                                                      │ │
│ │                               │   │   │   S3Object(                                          │ │
│ │                               │   │   │   │   provider='s3',                                 │ │
│ │                               │   │   │   │   bucket='sarah-skylark-us-west-1',              │ │
│ │                               │   │   │   │   key='big_file.txt/big_file.txt',               │ │
│ │                               │   │   │   │   size=73400320000,                              │ │
│ │                               │   │   │   │   last_modified=datetime.datetime(2022, 5, 25,   │ │
│ │                               5, 30, 22, tzinfo=tzutc())                                     │ │
│ │                               │   │   │   ),                                                 │ │
│ │                               │   │   │   ObjectStoreObject(                                 │ │
│ │                               │   │   │   │   provider='aws',                                │ │
│ │                               │   │   │   │   bucket='sarah-skylark-us-east-1',              │ │
│ │                               │   │   │   │   key='big_file.txt',                            │ │
│ │                               │   │   │   │   size=None,                                     │ │
│ │                               │   │   │   │   last_modified=None                             │ │
│ │                               │   │   │   )                                                  │ │
│ │                               │   │   )                                                      │ │
│ │                               │   ],                                                         │ │
│ │                               │   chunk_requests=None,                                       │ │
│ │                               │   random_chunk_size_mb=None                                  │ │
│ │                               )                                                              │ │
│ │           multipart_enabled = True                                                           │ │
│ │ multipart_max_chunk_size_mb = 8                                                              │ │
│ │                  num_chunks = 8751                                                           │ │
│ │         obj_store_interface = <skyplane.obj_store.s3_interface.S3Interface object at         │ │
│ │                               0x120b39820>                                                   │ │
│ │                      offset = 73400320000                                                    │ │
│ │                    part_num = 8751                                                           │ │
│ │                       parts = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ... +8740]                     │ │
│ │                prepare_task = 0                                                              │ │
│ │                    progress = <rich.progress.Progress object at 0x123193b80>                 │ │
│ │                        self = <skyplane.replicate.replicator_client.ReplicatorClient object  │ │
│ │                               at 0x120ef64c0>                                                │ │
│ │                  src_object = S3Object(                                                      │ │
│ │                               │   provider='s3',                                             │ │
│ │                               │   bucket='sarah-skylark-us-west-1',                          │ │
│ │                               │   key='big_file.txt/big_file.txt',                           │ │
│ │                               │   size=73400320000,                                          │ │
│ │                               │   last_modified=datetime.datetime(2022, 5, 25, 5, 30, 22,    │ │
│ │                               tzinfo=tzutc())                                                │ │
│ │                               )                                                              │ │
│ │                   upload_id = 'd7e51O9FZbE1XrM1XSySAuT3v_M6xXe3RWxPzRrKK6f7AXrWdPbHVobGWLRS… │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AssertionError: File size <= 0 0

I believe the docs are also out of date for enabling multipart uploads.

@sarahwooders sarahwooders added the bug Something isn't working label Aug 28, 2022
@sarahwooders sarahwooders changed the title Multipart transfer error Multipart transfer error AssertionError: File size <= 0 0 on AWS Aug 28, 2022
@sarahwooders sarahwooders self-assigned this Aug 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants