nextflow-io / nextflow-io/nextflow

Very large Ceph RadosGW S3 object staging bug

Open
#4,682 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

executor/k8s storage/aws
Dominant language
Groovy
Stars
3.5k
Forks
811
Avg merge
2d 11h
Merged PRs (30d)
61

Description

Bug report

Expected behavior and actual behavior

I am running a pipeline using the k8s executor from inside a k8s pod (I know this isn't generally recommended but it actually works very well) and use an S3 URI (S3 API mocked via Ceph RadosGW) as a file input. Before any k8s pods are deployed the S3 URI is staged to the work directory at which point for very large objects (> ~120G from my testing) an extremely generic java aws exception is raised killing the pipeline: com.amazonaws.SdkClientException: Unable to store object contents to disk: Connection reset by peer.

Smaller files stage absolutely fine which is the expected behaviour.

I'm not 100% certain this is actually a problem with nextflow or the nf-amazon plugin but I was hoping you might be able to shed some light

Steps to reproduce the problem

No complex reproduction script required, simply try to stage an extremely large file (if you cannot reproduce that would be valuable too since it would indicate the issue is something to do with our setup)

Program output

Lightly redacted nextflow.log available below
nextflow-Copy1 (1).log

Environment
  • Nextflow version: 23.10.0
  • Java version: openjdk 21.0.1 2023-10-17
  • Operating system: Linux
  • Bash version: GNU bash, version 5.2.21(1)-release (x86_64-alpine-linux-musl)
Additional context

The pipe is also being executed as a python subprocess, I'm aware this sounds horrendous but again, it actually works extremely reliably.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing S3 URI staging through the k8s executor with a very large object in Ceph RadosGW, then inspect the attached nextflow log and the AWS exception. Done means the object stages successfully, or the failure is narrowed to Nextflow, the nf-amazon plugin, AWS SDK, or the Ceph setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, java, kubernetes
Domain
cloud, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.