RustFS 1.0.4
This patch updates certificate verification and bundled trust roots, removes the distrusted emSign ECC Root CA - G3 from container trust stores, and retains the dependency refresh.
- chore(deps): refresh dependencies and pin Pulsar 6.9.0 by @houseme in https://github.com/rustfs/rustfs/pull/8923
- fix(test): backport scanner wait correction for 1.0.4 by @overtrue in https://github.com/rustfs/rustfs/pull/8930
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.3...1.0.4
RustFS 1.0.4-preview.1 (preview)
This patch updates certificate verification and bundled trust roots, removes the distrusted emSign ECC Root CA - G3 from container trust stores, and retains the dependency refresh.
- chore(deps): refresh dependencies and pin Pulsar 6.9.0 by @houseme in https://github.com/rustfs/rustfs/pull/8923
- fix(test): backport scanner wait correction for 1.0.4 by @overtrue in https://github.com/rustfs/rustfs/pull/8930
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.3...1.0.4-preview.1
1.2.0
Full documentation can be found at https://docs.janusgraph.org/
<dependency>
<groupId>org.janusgraph</groupId>
<artifactId>janusgraph-core</artifactId>
<version>1.2.0</version>
</dependency>
For more information on features and bug fixes in 1.2.0, see this GitHub milestone.
Upgrade instructions are provided in the changelog of the release: https://docs.janusgraph.org/master/changelog/#upgrade-instructions
- Upgrade to Apache TinkerPop 3.8.2 (breaking: TinkerPop 3.8 changes Gremlin semantics, see the upgrade instructions)
- Java 11 is now the minimum supported Java version (support for Java 8 is dropped); added support for Java 17, 21 and 25
- Support for Apache Cassandra 5.0. The pre-packaged distribution now bundles Cassandra 5.0.9
- CQL storage backend transitioned from the DataStax Java Driver to the Apache Cassandra Java Driver
- Support for Elasticsearch 9
- Support for OpenSearch 2 and 3 through the
elasticsearchindex backend - Support for Solr 9 (Solr 8 is deprecated) and upgrade to Apache Lucene 9
- Elasticsearch 6.0 is no longer supported (Elasticsearch 6.1 and newer still are)
- CDC-based mixed index synchronization: mixed indexes can be kept eventually consistent with the graph through Cassandra Change-Data-Capture and the new
janusgraph-cdcworker (opt-in) - New
WRITE_ONLY_ENABLEDindex state: reindex an index without enabling it, or stop using an enabled index for queries while it keeps receiving updates - New
REMOVE_STALE_ENTRIESschema action to remove the entries of deleted elements from composite and mixed indexes - Reindex a given subset of vertices instead of scanning the whole graph (CQL)
- Management APIs that decode vertex ids and composite index keys from their hex strings, for debugging
- Optional automatic closing of unreachable (zombie) instances during index status updates
- Recurring transaction recovery and failure statistics for transaction recovery
- Ordering by
LISTproperties through a mixed index textContainsPhrasesupport for Solr- Much faster mixed index reindex and OLAP scans: batched document restores, signal-based row hand-off between scan threads, opt-in parallel token-range scans, a scan-only page size and
PER PARTITION LIMITpushdown for CQL, and scan progress logging - Removing a vertex deletes its whole storage row in one operation, which drastically reduces tombstones when removing super-nodes on CQL
- Ordered traversals such as
g.V().order().by('name').limit(10)are answered by a mixed index which holds the order keys; orders which the index backend can't sort by are sorted by JanusGraph - Faster reads of large index results: Elasticsearch point-in-time paging (adaptive by default), scroll contexts only for results larger than a page, larger pages for limited results beyond 10,000 hits, and Solr results read in growing pages
- More resilient Elasticsearch backend: transient read and write failures are retried by default instead of failing the traversal or dropping the index mutation, missing documents are recreated whole, configurable connection pool (up to 30 connections to a single host) and lighter bulk requests
- The Gremlin pool of JanusGraph Server can run on virtual threads (Java 24 and newer)
- Core and storage performance improvements: relations without properties are parsed once, composite index lookups of several values read their index rows together, CQL reads more properties of a vertex per query and marks its write batches idempotent, ID blocks of different partitions are claimed in parallel, lock-free sampling of metrics
- A graph runs its background work on fewer, bounded threads which end when the graph closes
- BerkeleyJE now enforces
LOCKconsistency - Schema changes committed by ordinary transactions now reach the other JanusGraph instances
- Consistent query results whether an index backend or JanusGraph itself orders and filters the elements: strings are ordered and compared by code point and UUIDs by their string form; as in TinkerPop, ordered traversals leave out the elements without a value of the order key, and the
limit(),range()andorder()steps ofor()branches apply to each element; plus many fixes to decimal ranges, text predicates andSETkeys on Lucene, Solr and Elasticsearch
- Apache Cassandra 3.11.10, 4.0.6, 5.0.8
- Apache HBase 2.6.0
- Oracle BerkeleyJE 7.5.11
- ScyllaDB 6.2.0
- Elasticsearch 6.6.0, 7.17.8, 8.15.3, 9.5.4
- OpenSearch 2.19.6, 3.9.0
- Apache Lucene 9.12.3
- Apache Solr 8.11.4, 9.10.1
- Apache TinkerPop 3.8.2
- Java 11, 17, 21, 25 (OLAP with Apache Spark: Java 11 and 17 only)
- Cassandra 5.0.9
- Elasticsearch 7.17.29
$ git shortlog -sn v1.1.0..v1.2.0
141 Oleksandr Porunov
11 Balmukund Trivedi *
6 Natalia Tisseyre
3 Boxuan Li
3 Heyko Oelrichs *
3 dblugeon *
3 pm-osc
2 Ashish Jain *
2 Paul Lartigau *
1 Allan Clements
1 Henrique Lourenço *
1 Rian-Ismael *
1 Taewoon Kim *
1 Ying Xiao *
1 pedro_Simoes *
* denotes first-time contributor
// excluding dependabot and merging same authors' statistics
4.50
- filer: do not stall startup waiting out the leader-settle window by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11972
- volume: drop stale index entries that resolve to a different needle by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11948
- s3 lifecycle: route version-file writes to current-version expiration by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11956
- s3: end a catalog-vended session with the access key it was vended for by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11945
- fuse integration: run posix suites on weed mini and allow allow_other mounts by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11984
- ci: cancel superseded workflow runs on PR pushes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11979
- ci: build test binaries once, share them across shard jobs by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11981
- ci: cache docker build layers for container_dev by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11980
- ci: skip setup-go cache on self-hosted runners by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11985
- ci: skip actions/cache on self-hosted runners by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11986
- helm: fix bucket hook treating an existing bucket as missing by @bati-valensas in https://github.com/seaweedfs/seaweedfs/pull/11982
- test: stop EC integration tests from pinning default master port 9333 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11988
- test/fuse: fix cluster startup in the fuse test framework by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11977
- shell: retry filer discovery until a filer registers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11994
- tests: pin weed mini admin ports and disable unused aux services by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11997
- volume: also listen on localhost like other components by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11995
- server: skip local unix sockets that cannot be bound by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12000
- command: keep filer, s3, and sftp up when the local unix socket cannot bind by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11999
- ci: gate go/java/python tool caches to github-hosted runners by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12001
- master: cap writable volumes per collection via -maxWritableVolumes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11923
- s3: gate POST Object acl fields behind PutObjectAcl by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11939
- iam: GetUserPolicy returns NoSuchEntity for a policy name the user does not have by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11944
- ec.encode: require shard placement to meet -shardReplicaPlacement by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11947
- ci: set up Go for CodeQL autobuild by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12007
- test: raise mini-server startup wait from 30s to 90s in Makefiles by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12005
- test: gofmt s3tables test files by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12011
- s3: url-encode ListMultipartUploads results for encoding-type=url by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11998
- volume.fsck: run all filer-entry purges through the shared worker pool by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11960
- ci: make docker registry and compose steps idempotent on self-hosted runners by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12012
- filer: bootstrap a timestamp-less peer entry onto a missing local path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11975
- test: skip catalog client images that cannot execute on the host CPU by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12014
- ci: install fuse3 when runners lack fusermount3 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12013
- docker: build RocksDB v11.1.2 for grocksdb v1.11.1 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12002
- filer.backup: process metadata events through the concurrent processor by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11951
- operation: euthanize pooled upload conns that stall far below a fast host by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12003
- filer.conf: merge fsync on presence like worm by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11953
- iceberg maintenance: match percent-decoded keys when checking file references by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11978
- test(s3 remote cache): wait for the master to list the filer before shell commands by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12018
- ci: isolate S3 lifecycle mini from LAN clusters by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12022
- test: handle unsupported catalog clients in S3 Tables CI by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12023
- master: cap parallel vacuums per rack via master.vacuum.max_parallel_per_rack by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11935
- filer.remote.sync: dispatch an update event by the side of the mount it touches instead of slicing the mount prefix off a path outside it by @jsas in https://github.com/seaweedfs/seaweedfs/pull/11958
- build(deps): bump github.com/go-chi/chi/v5 from 5.3.1 to 5.4.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/12004
- shell: retry filer discovery until master knows a filer by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11989
- iceberg maintenance: a merged file with null row ids names no first_row_id by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11973
- ci: invoke pip via python -m in s3tests clone steps by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12010
- s3api: support s3:RequestObjectTagKeys in bucket policies by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11993
- notification: named webhook targets for per-path event routing by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11925
- release: digest-bound provenance and SBOM attestations for container images by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12024
- s3api: write the null version's object-lock metadata to the plain entry by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12033
- master: never auto-admit raft peers on a single-node configuration by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12021
- s3: evaluate bucket CORS for path-style OPTIONS on the bucket root by @wleeaf in https://github.com/seaweedfs/seaweedfs/pull/12028
- topology: mark replica quarantined before recording the pair by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11983
- iam/oidc: wrap the jti replay cache in its own type by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12017
- filer: let NewChunkStreamReaderFromFiler fall back to the master on a cache miss by @niko4464 in https://github.com/seaweedfs/seaweedfs/pull/11964
- s3: allow up to 50 tags in a bucket tag set by @wleeaf in https://github.com/seaweedfs/seaweedfs/pull/12030
- volume: keep a below-minimum fsync batch open for stragglers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12016
- filer: match If-Match and If-None-Match against "*" and ETag lists by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/12026
- master: read the writable-volumes cap from master.toml by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12009
- volume: check If-None-Match before If-Modified-Since and match ETag lists by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/12027
- topology: stop a stale duplicate-vid report from re-quarantining the survivor by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12032
- s3: accept a self-copy that changes the storage class by @wleeaf in https://github.com/seaweedfs/seaweedfs/pull/12031
- feat: Free Volume Deadband (M) for EC shard placement by @CHEPURNOV-S-S in https://github.com/seaweedfs/seaweedfs/pull/12029
- ci: clean up stale FUSE mounts before running tests by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12020
- mq/kafka: wait for a filer to register instead of panicking on an empty list by @pingqiu in https://github.com/seaweedfs/seaweedfs/pull/12019
- s3: make ListObjectsV2 continuation tokens round-trip XML-unsafe keys by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11996
- test(fuse): raise mini/filer and mount readiness waits to 90s by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12037
- s3: fix wildcard matcher skipping '*' targets in policy patterns by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12034
- filer.backup: retry a failed checkpoint read instead of replaying from the epoch by @AdzerKI in https://github.com/seaweedfs/seaweedfs/pull/12036
- remote_storage/s3: send only real object tags to the remote by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12039
- ci: run s3-go-tests on remote_storage changes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12043
- shell: run volume.configure.replication in parallel per volume server by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/12041
- helm: remove filer.redirectOnRead, which weed filer does not accept by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/12040
- redis2: pipeline entry reads when listing a directory by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/12042
- test: mismatched If-None-Match serves the object over If-Modified-Since by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12045
- s3: authorize POST policy uploads through the shared object check by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12047
- volume: overlap the local needle write with the replica fan-out by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10074
- filer: fix prefixed listing when the resume point sorts below the prefix by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12049
- test: bound trino container memory + dump logs when it exits before ready by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/12044
- @bati-valensas made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11982
- @wleeaf made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/12028
- @niko4464 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11964
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.49...4.50
v8.0.3
Special thanks to the following individuals for their excellent contributions:
- @Bruno6974
- @leleuj
- @mmoayyed
v8.1.0-RC3
Special thanks to the following individuals for their excellent contributions:
- @mmoayyed
- @leleuj
- @Bruno6974
- @Sahitya0805
OpenSSL 4.1.0
OpenSSL 4.1.0 is a feature release adding significant new functionality to OpenSSL.
This release incorporates the following potentially significant or incompatible changes:
-
Added
VC-WIN32-MSVC2013andVC-WIN64A-MSVC2013build targets to provide internal functions for bridging the gaps in C99 standard support that are present in MSVC 2013. -
Added optimized ML-DSA and ML-KEM NTT operations on
ppc64le; optimized ML-DSA operations onx86_64; AVX-512-optimized SHAKE x4 operations for ML-DSA onx86_64; AVX-512 and VAES optimizations for AES-CBC decryption onx86_64. -
Changed
tsgetutility to useNet::Curl::Easy(from theNet-CurlCPAN distribution) instead of the abandonedWWW::Curl::Easy. Users who rely ontsgetshould installNet::Curl::Easybefore upgrading. -
Dropped Windows-on-Itanium (
VC-WIN64I) and Windows CE (VC-CE) targets from Configurations. -
Dropped
no-ecdsaandno-ecdhoptions fromConfigure, as these options did not really disable the implementations. Useno-ecto disable the elliptic curve support.
This release adds the following new features:
-
Support for DTLS 1.3 (RFC 9147). Refer to the
ossl-guide-dtlsv13(7)manual page for details. -
Support for RFC 8701 GREASE (Generate Random Extensions And Sustain Extensibility).
-
DTLS support in the SSL listener API.
-
Support for IKEV2 KDF.
-
Initial support for the Elbrus2000 (
e2k) architecture.
Known issues in 4.1.0:
-
https://github.com/openssl/openssl/issues/32878 When a DTLS 1.3 KeyUpdate is received, all other outstanding post-handshake records are dropped from the retransmission buffer. This means post-handshake records still awaiting an ACK (such as a NewSessionTicket) will no longer be retransmitted if the original transmission is lost. A fix is in progress and planned for a future release.
-
https://github.com/openssl/openssl/issues/33277 A permanent receive failure on a DTLS listener can be reported as
SSL_ERROR_WANT_READon an accepted connection. Polling and subsequent accept calls may also fail to report the error, causing applications to continue waiting after a permanent failure. -
https://github.com/openssl/openssl/issues/33278 A retryable write failure on a nonblocking connection accepted from a DTLS listener can be reported as
SSL_ERROR_SYSCALLinstead ofSSL_ERROR_WANT_WRITE. Applications treating this result as fatal may close a connection that is still usable. -
https://github.com/openssl/openssl/issues/33242 DTLS 1.3 servers may abort handshakes with an
unexpected_messagealert when a client acknowledges part or all of the server's first flight before sending its response. This can occur after packet loss or while the client is preparing its authentication response.