Segfault in clustered broker where ttl is used in conjunction with lvq

Solution Unverified - Updated -

Environment

  • Red Hat Enterprise MRG 1.1.6
  • messaging-broker-c++

Issue

  • All brokers in cluster segfault simultaneously
  • Segfault in clustered broker where ttl is used in conjunction with lvq. Entries in /var/log/messages are

    Aug 18 10:00:00 host1 kernel: qpidd[11051]: segfault at 0000000000444958 rip 00000035d9cb7672 rsp 00000000464f0b38 error 6
    Aug 18 10:00:00 host2 kernel: qpidd[1720]: segfault at 0000000000000017 rip 0000003fb9ab7672 rsp 000000004894bb38 error 6
    

Resolution

Upgrade to Red Hat Enterprise MRG 1.2. List of packages is available at

Root Cause

Messages with a time to live (TTL) value were sent to a last value queue (LVQ) on a clustered broker, and replaced older messages also with a TTL set. When it happens the broker would experience a segfault and crash.

Diagnostic Steps

  • Steps to Reproduce,

    start clustered broker node
    qpid-config add queue test-queue --order lvq
    for i in `seq 1 10`; do echo "my-value-$i"; done | sender --ttl 5000 --lvq-match-value my-key
    
  • After about 5 seconds the broker crashes with a segfault.



This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments