Skip to content

Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 in /artipie-main#7

Closed
dependabot[bot] wants to merge 189 commits into
masterfrom
dependabot/maven/artipie-main/org.postgresql-postgresql-42.7.2
Closed

Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 in /artipie-main#7
dependabot[bot] wants to merge 189 commits into
masterfrom
dependabot/maven/artipie-main/org.postgresql-postgresql-42.7.2

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Jan 19, 2026

Bumps org.postgresql:postgresql from 42.7.1 to 42.7.2.

Release notes

Sourced from org.postgresql:postgresql's releases.

v42.7.2

Security

CVE-2024-1597 and Security Advisory addressed. The vulnerability occurs only in non-default preferQueryMode=simple mode and only if a negative place holder -? is used. See the security advisory for details

What's Changed

Full Changelog: pgjdbc/pgjdbc@REL42.7.1...REL42.7.2

Changelog

Sourced from org.postgresql:postgresql's changelog.

[42.7.2] (2024-02-21 08:23:00 -0500)

Security

  • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.

Changed

Added

Commits

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

ChGen and others added 30 commits December 14, 2023 10:33
* feat: removed ppom usage

* correct release settings
* feat: move asto

* revert s3 update

* fix: corrected docs
* fix: release version 17
* simplify composer AstoRepositoryAddJsonTest
* feat: move asto

* revert s3 update

* correct docker ubuntu release script

* fix: correct release scripts and description
* deps: update vulnerable guava
* feat: move asto

* revert s3 update

* correct docker ubuntu release script

* fix: removed unused servlet slice

* correct npm test
* Conda adapter uploading tests with S3 storage

* Fix possible crash due to NPE

* Conda S3 tests data

* Core review fixes

* Cache test image, like in conan IT tests in artipie-main

* added asto-s3 in test scope

---------

Co-authored-by: Alena <olena.gerasimova@gmail.com>
* Rollback ServletSliceWrap
* Changes for cloudArtifact
* docker-perm: expose image name
MIKRAU and others added 20 commits May 7, 2024 01:39
fix for missing dependencies httpcore5/httpcore5-h2 (artipie#1447)
Disable some hexpm-adapter tests due to the issue
pypi adapter - implementation of delete artifacts
ASTO S3 - added aws sts dependency
Auto1 Fork - Technical Feature Summary 

Database & Infrastructure
PostgreSQL Migration

Migrated metadata storage from file-based to PostgreSQL
Added ARM64 architecture support for Docker images
Storage Layouts

Implemented configurable storage layouts for repositories
Allows custom path structures for artifact organization
S3 Express Support

Added support for S3 Express One Zone storage class
~10x lower latency for single-AZ workloads
Authentication & Authorization
Bearer Token Authentication

Enabled Bearer auth across all repository types
Configurable log.level in settings
Okta OIDC Integration

Full Okta authentication with MFA support (TOTP + push)
Domain-based routing for multi-tenant setups
JWT token validation and refresh
Keycloak Setup

Complete Keycloak integration for OAuth/OIDC
Environment variable substitution in configuration
Repository Features
Dynamic Repository Creation

REST API for creating, updating, and deleting repositories at runtime
No restart required for configuration changes
Virtual Repository (Group)

Aggregate multiple local and proxy repositories
Single endpoint for unified artifact access
Global Prefixes

Configure path prefixes across repositories
Supports migration scenarios
Cooldown System (Supply Chain Security)
Core Implementation

Blocks package versions newer than configurable age (default: 72h)
Prevents supply chain attacks via fresh package injection
Per-Adapter Support

NPM, Maven, PyPI, Docker, Go, Composer, Gradle
Release date extraction from upstream metadata
Metadata Filtering

Filters blocked versions from package listings
Binary search optimization for large version sets
3-tier cache (L1 in-memory, L2 Redis, L3 PostgreSQL)
Negative Cache

Caches "allowed" decisions to reduce upstream calls
Token generation enhancement for cache keys
Package Manager Adapters
NPM

Full CLI compatibility (install, publish, audit, search)
Semver resolution fixes
Request deduplication for high-concurrency scenarios
Security audit and vulnerability checks for proxy
PyPI

PEP 503 (Simple Repository API) implementation
Proxy optimizations
Maven

Basic auth and anonymous access fixes
Checksum validation (MD5, SHA-1, SHA-256, SHA-512)
Metadata and plugin artifact handling
PHP Composer

Complete Composer adapter implementation
Satis support for private packages
Go Modules

Go module proxy implementation
GOPROXY protocol support
Gradle

Gradle plugin repository support
Performance tuning for parallel builds
Docker

Revamped Docker adapter
Streaming optimization for large layers
Multi-platform manifest support
Import CLI (Rust)
Rust Migration

Migrated import CLI from Java to Rust for performance
~10x faster bulk imports
Features

Bulk artifact import from upstream registries
Retry mechanism with exponential backoff
S3 multipart upload optimization
Performance Optimizations
Reactive Streams Backpressure

Proper backpressure handling for large file transfers
Prevents memory exhaustion under load
File Streaming

Streaming downloads without full buffering
Large file download fixes (>2GB)
Connection reset handling
S3 Storage

Memory-optimized multipart uploads
Parallel downloads with configurable chunk size
Retry improvements for transient failures
HikariCP Connection Pool

Database connection pooling
Configurable pool size and timeouts
Cache Optimization

Removed blocking calls during cache writes
Enhanced cooldown filtering performance
Version sorting optimizations
Thread Pool Tuning

Configurable worker thread pools
Optimized for high-concurrency workloads
HTTP Server
HTTP/2 Support

HTTP/2 over TLS (h2)
HTTP/2 over cleartext (h2c) for AWS NLB
HTTP/3 Support

QUIC protocol support (experimental)
Fixes for HTTP/3 edge cases
Jetty 12.1.x Upgrade

Upgraded to Jetty 12.1.x
Improved connection handling
Vert.x Connection Leak Fix

Fixed resource leaks in HTTP client
Proper connection cleanup on errors
Observability
Elastic APM Integration

Distributed tracing for requests
Transaction and span tracking
Error capture and reporting
Prometheus Metrics

Request counts, latencies, cache hit rates
Cooldown block counts
JVM and system metrics
ECS JSON Logging

Structured logging for Elasticsearch/Kibana
Configurable log levels
Request correlation IDs
Operations
Directory Listing Performance

Optimized large directory listings
Pagination support
Config Watcher

Content-based change detection for hot reload
Avoids unnecessary reloads on file touch
Testcontainers Upgrade

Updated integration test framework
Improved test reliability
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.1 to 42.7.2.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](pgjdbc/pgjdbc@REL42.7.1...REL42.7.2)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Jan 19, 2026
@aydasraf aydasraf closed this Mar 29, 2026
@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Mar 29, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot Bot deleted the dependabot/maven/artipie-main/org.postgresql-postgresql-42.7.2 branch March 29, 2026 22:07
aydasraf added a commit that referenced this pull request May 13, 2026
The PrefetchDispatcher/Coordinator chain fires N upstream GETs per cache
write recursively (one per direct dep in a POM / packument). With per-host
caps of 16 (maven) / 32 (npm) and no requests-per-second gate, a cold-cache
walk amplifies outbound RPS ~5× above the foreground client's rate, tripping
Maven Central's per-IP rate limiter (RCA in analysis/03-findings.md #1, #7).

Removed across the stack:

  pantera-main/.../prefetch/ — Coordinate, PrefetchTask, PrefetchMetrics,
    PrefetchCircuitBreaker, PrefetchCoordinator, PrefetchDispatcher,
    parser/ subpackage (7 files: MavenPomParser, NpmCompositeParser,
    NpmPackumentParser, NpmPackageParser, NpmMetadataLookup,
    CachedNpmMetadataLookup, PrefetchParser).

  pantera-main/.../api/v1/PrefetchStatsHandler — the 24h sliding-window
    /api/v1/prefetch/stats endpoint that read PrefetchMetrics. AsyncApiVerticle
    no longer takes the metrics ref through its constructor chain.

  pantera-main/.../settings/runtime/PrefetchTuning + CircuitBreakerTuning —
    typed snapshots whose only consumers were the deleted PrefetchCoordinator
    and PrefetchCircuitBreaker. SettingsKey enum trimmed to the three
    http_client.* keys that still have live consumers. SettingsHandler
    validateRuntime falls through any prefetch.* key (no longer in catalog).

  RuntimeSettingsCache — Snapshot trimmed to {http, raw}; prefetchTuning() and
    circuitBreakerTuning() accessors removed.

  RepoConfig.prefetchEnabled + RepositorySlices.{prefetchEnabledFor,
    upstreamUrlOf, repoTypeOf, npmProxyStorages} — accessors whose only
    consumer was the dispatcher.

  VertxMain.installPrefetch — boot wiring (~190 LOC) deleted; the
    PrefetchCoordinator/Dispatcher shutdown blocks removed; field declarations
    replaced with an M2 comment. The CacheWriteCallbackRegistry.clear() call
    is kept so a future Phase 4c observed-coordinate prewarming hook can
    install a consumer without leaking it across restarts.

  NpmProxyAdapter — NpmCacheWriteBridge removed; the NpmProxy ctor now
    receives null for cacheWriteHook + packumentWriteHook. The hook surface
    on NpmProxy is retained for the same future-prewarming reason.

DB:
  V128__drop_prefetch_settings_keys.sql — DELETE FROM settings WHERE
    key LIKE 'prefetch.%'. Removes any rows the v2.1.x SettingsBootstrap or
    admin PATCHes left behind so the /settings/runtime listing does not
    surface dangling keys with no consumer.

UI:
  Deleted: PrefetchPanel.vue (+ test), api/prefetch.ts.
  RepoEditView no longer mounts PrefetchPanel; settings.prefetch read/write
    logic removed.
  SettingsView Pre-fetch card deleted; PREFETCH_KEYS / RUNTIME_INT_RANGES /
    RUNTIME_LABELS / RUNTIME_HELP slimmed to the three http_client.* keys.
  api/runtimeSettings.ts: RuntimeSettingKey union and SPEC_DEFAULTS trimmed;
    test rewritten to match.
  Upstream-failure circuit-breaker card's subtitle no longer references the
    deleted pre-fetch drop-rate breaker (the two were always distinct).

Cache pipeline (preserved):
  BaseCachedProxySlice/ProxyCacheWriter retain the onCacheWrite hook surface
    backed by CacheWriteCallbackRegistry's NO_OP sentinel. Javadoc updated
    to call out the prefetch consumer's removal and reserve the slot for
    Phase 4c (2.3.0).

Tests:
  RuntimeSettingsCacheTest, SettingsKeyTest, RepoConfigTest,
  SettingsHandlerRuntimeTest, RepositoryHandlerTest, BaseCachedProxySliceHookTest,
  ProxyCacheWriterHookTest — prefetch-specific assertions deleted; remaining
  assertions still cover the foreground behaviour they shipped to pin.
  pantera-main unit tests pass (22 in the impacted set); pantera-core hook
  tests pass (11).

Scope per analysis/plan/v1/PLAN.md M2 + user's 2026-05-13 explicit greenfield
authorization for v2.2.0 major-version cleanup.
aydasraf added a commit that referenced this pull request May 13, 2026
… gate

Adds a structural fix for the dominant amplification source the v2.2.0
investigation identified (analysis/03-findings.md #3, #7, #9 + RCA-7):
Pantera had no requests-per-second cap on its outbound traffic, so any
adapter could push past the per-IP budget Cloudflare-fronted registries
(Maven Central, npm public) enforce.

The new module wraps every per-host Jetty client slice — for every
adapter, for every caller_tag — with a token bucket plus a 429-and-
Retry-After gate. The bucket caps steady-state RPS; the gate fail-fasts
during the back-off window after upstream throttles us.

New module: http-client/.../ratelimit/

  RateLimitConfig
    - Per-host config: refill rate (tokens/sec) and burst capacity
    - Defaults:
        repo1.maven.org    20 req/s burst 40   — Cloudflare per-IP budget
                                                  starts 429-ing ~25-30 req/s
        registry.npmjs.org 30 req/s burst 60   — npm's CDN tolerates more
        any other host     10 req/s burst 20   — conservative default
    - Builder lets the perf harness inject test configs without touching
      production defaults

  UpstreamRateLimiter (interface + Default impl)
    - Per-host Bucket state via ConcurrentHashMap + AtomicReference CAS.
      O(1) hot-path; no locks.
    - tryAcquire(host): consumes a token if the gate is open and the
      bucket has > 1.0 tokens. Returns false in either failure mode so
      the caller can fail-fast.
    - recordRateLimit(host, retryAfter): closes the gate for retryAfter
      (defaults to 30 s when retryAfter is zero — for 429s with no
      header). Concurrent close attempts keep the LATER deadline so a
      burst of 429s does not shrink the window.
    - recordResponse(host, status, retryAfter): 429 always gates;
      503 only gates with Retry-After (503 without is treated as a
      transient server error, not a throttle signal).
    - gateOpenUntil(host) exposes the deadline so foreground responses
      can carry the right Retry-After through to the client.

  RetryAfter
    - Parses both RFC 7231 forms: delta-seconds and IMF-fixdate.
    - Malformed / blank / null → Duration.ZERO.
    - Past HTTP-date → Duration.ZERO (a deadline in the past is not a
      forward delay).

  RateLimitedClientSlice
    - Decorator that wraps any Slice (placed by JettyClientSlices around
      every per-host JettyClientSlice). Per outbound:
        1. Inspect the gate. Closed → synthesise 429 + Retry-After
           pointing at the gate deadline, do NOT call the wrapped slice.
        2. Otherwise tryAcquire. Empty bucket → synthesise 429 +
           Retry-After 1 s (the bucket refills continuously; the next
           attempt has a token within a fraction of a second).
        3. Token acquired → delegate. On the response, check status —
           a 429 / 503-with-Retry-After closes the gate.
    - Synthesised 429s carry X-Pantera-Rate-Limited: true so future
      cluster-wide propagation and the cache slice can distinguish
      self-imposed from upstream-imposed.

Wiring: JettyClientSlices.slice() now wraps every JettyClientSlice in
the rate-limited decorator. Loopback hosts (localhost, 127.x.x.x, ::1)
bypass the limiter — they are exclusively dev / test fixtures and the
limiter would otherwise throttle the harness. A second constructor
overload accepts an explicit UpstreamRateLimiter for tests / perf
harness injection; production callers use the existing 4-arg ctor
which constructs a JVM-default limiter from RateLimitConfig.defaults().

Metric:
  pantera_outbound_rate_limited_total{upstream_host, reason}
    reason ∈ {gate_closed, bucket_empty}

  Differs from pantera_proxy_429_total: this one fires when WE deny
  the outbound; the existing 429 counter fires when the upstream denies
  us. Operators want both — non-zero of either means somebody is
  throttling somebody.

Alert:
  PanteraOutboundGateStuckClosed — warn after 10 min of sustained
  gate_closed events on a host. Means our gate's back-off window is
  not opening, i.e., the upstream is still 429-ing through our limit.
  Operator action: drop the per-host token rate.

Foreground propagation: BaseCachedProxySlice already preserves 4xx
verbatim (status + Retry-After) — verified in pantera-core line
1189-1193. The synthesised 429 flows through to mvn/npm unchanged so
those tools honour their own back-off behaviour.

Tests (14 unit, all green):

  UpstreamRateLimiterTest
    - acquiresBurstTokensWithoutWaiting — burst drain
    - refillsAtConfiguredRate — 10/s rate with TestClock stepping
    - gateBlocksDespiteAvailableTokens — gate trumps tokens
    - recordRateLimitUsesDefaultDurationWhenAbsent — zero → 30 s
    - hostsAreIndependent — gating maven does not affect npm
    - recordResponseOnlyGatesOn429 — 200/503-no-RA never gate

  RetryAfterTest
    - parses delta-seconds, parses HTTP-date, past date → 0,
      null/blank → 0, malformed → 0

  RateLimitedClientSliceTest
    - gatedRequestNeverReachesWrappedSlice
    - upstream429ClosesTheGate (second call short-circuits)
    - emptyBucketSynthesises429WithOneSecondRetryAfter

  JettyClientSlicesTest
    - shouldProduce* now asserts RateLimitedClientSlice for non-
      loopback, JettyClientSlice for localhost — pins the new wrapping
      contract.

Toxiproxy-mediated integration / perf-fixture test is M6's scope per
analysis/plan/v1/PLAN.md (perf-gate CI workflow). The unit tests cover
the core behaviour; the integration test will exercise it end-to-end
against a rate-limited stub.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants