[ClusterLabs] [EXT] [EXT] Can stalled libqb SHM I/O delay Pacemaker's operation timer?
Windl, Ulrich
u.windl at ukr.de
Thu Oct 22 09:36:49 UTC 2026
Hi!
I don’t really have an answer for your question, but POSIX.4 (real time) suggests to lock memory that is involved in time-critical processes, or the other way round: It makes little sense to use real-time scheduling when the process to schedule may be paged out.
Also I think that Linux does not page out shared memory early, so you may have some memory pressure on your system.
Several years ago I played with cgroups and restricting the RAM a process may use, and it worked. Maybe postgres can be restricted in RAM use also (if that causes the problem).
For RAIDs: We were using FibreChannel based MD-RAID1, using disks located in two buildings, and the MD-RAID preferred reading the closer disk, even though the difference in delay was tiny (a few microseconds). So I’m kind of surprised that your RAID delays reads; are you sure that aren’t writes?
Kind regards,
Ulrich
From: Users <users-bounces at clusterlabs.org> On Behalf Of Brian Cosgrove
Sent: Monday, August 10, 2026 10:03 PM
To: users at clusterlabs.org
Subject: [EXT] [EXT] [ClusterLabs] Can stalled libqb SHM I/O delay Pacemaker's operation timer?
Sicherheits-Hinweis: Diese E-Mail wurde von einer Person außerhalb des UKR gesendet. Seien Sie vorsichtig vor gefälschten Absendern, wenn Sie auf Links klicken, Anhänge öffnen oder weitere Aktionen ausführen, bevor Sie die Echtheit überprüft haben.
Could Pacemaker’s controller block on a stalled block-device read while faulting in a swapped-
out libqb SHM page, before it receives the executor reply and starts the operation timer?
Would that behavior be expected?
I'm investigating a lockup where the PostgreSQL primary and Pacemaker DC were on the same node when a degraded RAID array caused reads to appear unbounded without returning errors. Pacemaker did not stop the PostgreSQL resource or promote a standby. crm_mon showed the DC as standby (with active resources).
Testing that simulates the incident reproduces that production Pacemaker behavior. In that setup a libqb SHM page is swapped out and controller blocks in shmem_fault() before the executor reply and operation timer. The surviving production logs (such as the crm_mon output) match. Corosync membership remained intact in both the incident and the test.
--
Brian Cosgrove
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clusterlabs.org/pipermail/users/attachments/20261022/b3610461/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5581 bytes
Desc: not available
URL: <https://lists.clusterlabs.org/pipermail/users/attachments/20261022/b3610461/attachment.p7s>
More information about the Users
mailing list