Public issue detail

Runaway CPU investigation for postgres: futex lock contention at next_uptodate_folio

postgres is stuck in a likely futex lock contention loop: 1.15% of sampled CPU passed through next_uptodate_folio, with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1

Last seen: 2026-10-16 06:55 UTC. Public JSON: /v1/issues/01a0f865-24de-7563-be71-c35751e1391f

Technical snapshot

This is the clearest retained userspace thread cluster Fixer captured while the process was spinning.

Representative thread backtrace

  • Command: /usr/lib/postgresql/18/bin/postgres -D /var/lib/postgresql/18/main -c config_file=/etc/postgresql/18/main/postgresql.conf
  • Why Fixer classified it this way: Multiple captured threads converge on futex or pthread mutex paths, which suggests user-space lock contention or a lock convoy.
  • Thread summary: thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103
  • Contention signals: futex-lock-contention, gdb-stderr: gdb: warning: Couldn't determine a path for the index cache directory. warning: .dynamic section for "target:<path>" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "target:<path>" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "target:<path>" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "target:<path>" is not at the expected address (wrong library or version mismatch?) warning: Expected absolute pathname for libpthread in the inferior, but got target:<path> warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available. warning: 103 .<path>: No such file or directory
  • Repeated loop: read -> read -> read
  • Top syscalls: read x54, close x12, rt_sigaction x11, openat x9
  • Package: postgresql-18 18.6-3
  • Kernel: 7.1.8+deb14.1-amd64
  • Distribution: debian
0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103
0x0000000000000000 in ?? ()

Possible duplicates

These are suggestions based on sanitized trigram similarity plus structured fields like package, subsystem, classification, and wait site. They are not auto-merged.

postgres is stuck in a likely futex lock contention loop: 2.60% of sampled CPU passed through cfree, with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1similarity: 99%

Why this looks related: same classification, same package, same source package, same subsystem, same target, same wait site, very similar public summary

Last seen: 2026-10-21 03:40 UTC. Public page: /issues/01a15c7a-3458-7a73-8182-e0e16aa271d0. Public JSON: /v1/issues/01a15c7a-3458-7a73-8182-e0e16aa271d0

postgres is stuck in a likely futex lock contention loop: 2.17% of sampled CPU passed through hash_search_with_hash_value, with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1similarity: 99%

Why this looks related: same classification, same package, same source package, same subsystem, same target, same wait site, very similar public summary

Last seen: 2026-10-20 03:52 UTC. Public page: /issues/01a1573c-f6a7-7f31-9405-5dff41cd85eb. Public JSON: /v1/issues/01a1573c-f6a7-7f31-9405-5dff41cd85eb

postgres is stuck in a likely futex lock contention loop: 1.61% of sampled CPU passed through ext4_match, with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1similarity: 99%

Why this looks related: same classification, same package, same source package, same subsystem, same target, same wait site, very similar public summary

Last seen: 2026-10-13 07:39 UTC. Public page: /issues/01a133ed-accc-7102-9a4e-7af3bd291bed. Public JSON: /v1/issues/01a133ed-accc-7102-9a4e-7af3bd291bed

postgres is stuck in a likely futex lock contention loop: 2.64% of sampled CPU passed through _dl_map_new_object, with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1similarity: 99%

Why this looks related: same classification, same package, same source package, same subsystem, same target, same wait site, very similar public summary

Last seen: 2026-10-13 06:02 UTC. Public page: /issues/01a0faf7-676a-70a3-9cf2-63d0f9d56063. Public JSON: /v1/issues/01a0faf7-676a-70a3-9cf2-63d0f9d56063

postgres is stuck in a likely futex lock contention loop: 5.65% of sampled CPU passed through geos::noding::MCIndexNoder::intersectChains(), with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1similarity: 99%

Why this looks related: same classification, same package, same source package, same subsystem, same target, same wait site, very similar public summary

Last seen: 2026-10-13 02:53 UTC. Public page: /issues/01a12f59-3401-7d23-8f10-0ec7a525ba06. Public JSON: /v1/issues/01a12f59-3401-7d23-8f10-0ec7a525ba06

postgres is stuck in a likely futex lock contention loop: 100.00% of sampled CPU passed through __schedule, with repeated thread backtraces show 1 thread(s) around 0x00007fa0aa49bca2 in __futex_abstimed_wait_common (futex_word=..., expected=..., clockid=..., abstime=..., private=..., cancel=...) at .<path>:103.

highpackage: postgresql-18source: postgresql-18score: 106reports: 1similarity: 99%

Why this looks related: same classification, same package, same source package, same subsystem, same target, same wait site, very similar public summary

Last seen: 2026-09-30 11:46 UTC. Public page: /issues/01a0f200-6749-7d62-8739-62db6d88b0b8. Public JSON: /v1/issues/01a0f200-6749-7d62-8739-62db6d88b0b8

Published attempts

No public attempts have been published for this issue yet.