Bug 2269381

Summary: RGW hangs when kafka broker is down for non-persistent notifications
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Yuval Lifshitz <ylifshit>
Component: RGWAssignee: Matt Benjamin (redhat) <mbenjamin>
Status: CLOSED ERRATA QA Contact: Madhavi Kasturi <mkasturi>
Severity: high Docs Contact: Akash Raj <akraj>
Priority: unspecified    
Version: 7.1CC: akraj, ceph-eng-bugs, cephqe-warriors, mbenjamin, mkasturi, tserlin, vereddy
Target Milestone: ---   
Target Release: 7.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ceph-18.2.1-64.el9cp Doc Type: Bug Fix
Doc Text:
.Default values for Kafka message and idle timeouts no longer cause hangs Previously, the default values for Kafka message and idle timeouts caused infrequent hangs while waiting for the Kafka broker. With this fix, the timeouts are adjusted and it no longer hangs.
Story Points: ---
Clone Of: 2269380 Environment:
Last Closed: 2024-06-13 14:29:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2269380    
Bug Blocks: 2267614, 2298578, 2298579    

Description Yuval Lifshitz 2024-03-13 14:26:36 UTC
+++ This bug was initially created as a clone of Bug #2269380 +++

Description of problem:
when non-persistent notification are used the notifications are sent syncronously with the S3 operation that triggered them.
if the kafka broker is down, the S3 request will not return until the kafka message timeout. since, by default, this time is 5min in librdkafka, all of the RGW connections will be waiting for the timeout and the RGW will not accept new connections.

Version-Release number of selected component (if applicable):


How reproducible: every time the kafka broker is down and non-persistent notifications are used


Steps to Reproduce:
https://gist.github.com/yuvalif/33487bff19883e3409caa8a843a0b353

Actual results:
all S3 requests return after 30 seconds.
the reason that they don't return after 5min, is the connection idleness timeout which is set to 30 sec (which should also made configurable and set to 5min default)

Expected results:
all S3 requests return after 5 seconds

Additional info:

--- Additional comment from RHEL Program Management on 2024-03-13 14:21:16 UTC ---

Please specify the severity of this bug. Severity is defined here:
https://bugzilla.redhat.com/page.cgi?id=fields.html#bug_severity.

Comment 2 Yuval Lifshitz 2024-03-13 17:22:22 UTC
commit 17d12ce848e0e137d3897df3fb6ff8e183206280
Author: Yuval Lifshitz <ylifshit>
Date:   Tue Mar 5 10:14:06 2024 +0000

    rgw/kafka: set message timeout to 5 seconds
    
    also increase the idle timeout to 30 seconds.
    test instructions:
    https://gist.github.com/yuvalif/33487bff19883e3409caa8a843a0b353
    
    Fixes: https://tracker.ceph.com/issues/64710
    
    Signed-off-by: Yuval Lifshitz <ylifshit>
    (cherry picked from commit 1c13850f24dbb90c33a12c6da338956c2e83811b)
    
    Resolves: rhbz#2269381
    
    Conflicts:
            src/common/options/rgw.yaml.in
            src/rgw/rgw_kafka.cc

Comment 7 errata-xmlrpc 2024-06-13 14:29:34 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Critical: Red Hat Ceph Storage 7.1 security, enhancements, and bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2024:3925