Skip to content

S3 Multipart Upload: s3w+https, s3w+http, s3w works in 1.22.1 fails 1.23 #1979

@cariaso

Description

@cariaso

while similar to
#477

I'm seeing what I believe to be a regression.
I have a very automated build procedure.
This command line

samtools view --fai-reference /path/GRCh38.fna -o s3://bucket/path/my.bam /path/src.cram /path/src.cram.crai

is successful under

samtools 1.22.1
Using htslib 1.22.1
Copyright (C) 2025 Genome Research Ltd.

Samtools compilation details:
Features: build=configure curses=no
CC: gcc
CPPFLAGS:
CFLAGS: -Wall -g -O2
LDFLAGS:
HTSDIR: htslib-1.22.1
LIBS:
CURSES_LIB:

HTSlib compilation details:
Features: build=configure libcurl=yes S3=yes GCS=yes libdeflate=no lzma=yes bzip2=yes plugins=no htscodecs=1.6.4
CC: gcc
CPPFLAGS:
CFLAGS: -Wall -g -O2 -fvisibility=hidden
LDFLAGS: -fvisibility=hidden

HTSlib URL scheme handlers present:
built-in: file, data, preload
S3 Multipart Upload: s3w+https, s3w+http, s3w
Amazon S3: s3+https, s3, s3+http
Google Cloud Storage: gs+http, gs+https, gs
libcurl: ftps, ftp, http, https
crypt4gh-needed: crypt4gh
mem: mem

but fails when built as

samtools 1.23-3-g893eed1
Using htslib 1.23-2-g6dd0d7d0
Copyright (C) 2025 Genome Research Ltd.

Samtools compilation details:
Features: build=configure curses=yes
CC: gcc
CPPFLAGS:
CFLAGS: -Wall -g -O2
LDFLAGS:
HTSDIR: ../htslib
LIBS:
CURSES_LIB: -lncursesw

HTSlib compilation details:
Features: build=configure libcurl=yes S3=yes GCS=yes libdeflate=yes lzma=yes bzip2=yes plugins=yes plugin-path=/usr/libexec/htslib: htscodecs=1.6.5
CC: gcc
CPPFLAGS:
CFLAGS: -Wall -g -O2 -fvisibility=hidden
LDFLAGS: -fvisibility=hidden -rdynamic

HTSlib URL scheme handlers present:
built-in: file, data, preload
Amazon S3: s3+https, s3, s3+http
Google Cloud Storage: gs+http, gs+https, gs
libcurl: ftps, ftp, http, https
crypt4gh-needed: crypt4gh
mem: mem

with the error

[E::hts_open_format] Failed to open file "s3://bucket/path/my.bam" : Resource temporarily unavailable
samtools view: failed to open "s3://bucket/path/my.bam" for writing: Resource temporarily unavailable

The likely suspect is the presence / absence of

S3 Multipart Upload:         s3w+https, s3w+http, s3w

but my build procedure hasn't changed except for the version number. Does anything about the 1.23 release explain what I'm no longer seeing?

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