def METHOD_NAME(
    bodhi_container, ipsilon_container, db_container, rabbitmq_container
):
    def find_update():
        query = (
            "SELECT alias "
            "FROM updates u "
            "JOIN releases r ON u.release_id = r.id "
            "JOIN users us ON u.user_id = us.id "
            "WHERE r.state != 'archived' AND r.composed_by_bodhi = TRUE "
            # Recent EPEL releases are more complex and lead to flakiness. Example:
            # Cannot find release associated with build: netatalk-3.1.12-27.el9,
            # tags: ['el9-updates-candidate', 'el9', 'el9-updates-testing']
            "AND r.id_prefix = 'FEDORA' "
            "AND u.locked = FALSE AND u.status IN ('pending', 'testing') "
            "AND u.type != 'security' "
            "AND u.from_tag IS NULL "
            "AND us.name NOT LIKE '%packagerbot%' "
            "ORDER BY u.date_submitted DESC LIMIT 1"
        )
        db_ip = db_container.get_IPv4s()[0]
        conn = psycopg2.connect("dbname=bodhi2 user=postgres host={}".format(db_ip))
        with conn:
            with conn.cursor() as curs:
                curs.execute(query)
                result = curs.fetchone()
                assert result is not None
                update_alias = result[0]
        conn.close()
        return update_alias
    def find_bug():
        base_query = [
            "SELECT bug_id",
            "FROM bugs b",
            "WHERE TRUE",
            "LIMIT 1"
        ]
        db_ip = db_container.get_IPv4s()[0]
        conn = psycopg2.connect("dbname=bodhi2 user=postgres host={}".format(db_ip))
        with conn:
            with conn.cursor() as curs:
                curs.execute(" ".join(base_query))
                result = curs.fetchone()
                assert result is not None
                bug_id = result[0]
        conn.close()
        return str(bug_id)
    update_alias = find_update()
    bug_id = find_bug()
    # Remove previous task results
    bodhi_container.execute(["find", "/srv/celery-results", "-type", "f", "-delete"])
    result = run_cli(
        bodhi_container,
        [
            "updates",
            "edit",
            "--debug",
            "--bugs",
            bug_id,
            "--stable-karma",
            "1",
            update_alias,
        ]
    )
    if result.exit_code != 0:
        with read_file(bodhi_container, "/httpdir/errorlog") as log:
            print(log.read())
        assert False, result.output
    try:
        bodhi_container.execute(["wait-for-file", "-d", "/srv/celery-results"])
    except ConuException as e:
        print(f"Waiting for celery results failed, relevant update: {update_alias}")
        print("Apache logs:")
        with read_file(bodhi_container, "/httpdir/errorlog") as log:
            print(log.read())
        print("Celery logs:")
        with read_file(bodhi_container, "/tmp/celery.log") as log:
            print(log.read())
        raise e
    result = {"status": "RETRY"}
    while result["status"] == "RETRY":
        results = get_task_results(bodhi_container)
        assert len(results) > 0
        result = results[-1]
        time.sleep(1)
    try:
        assert result["status"] == "SUCCESS", result
    except AssertionError as ex:
        print(result["traceback"])
        raise ex
    assert result["traceback"] is None