1. 15 Apr, 2021 3 commits
  2. 09 Feb, 2021 1 commit
  3. 04 Feb, 2021 1 commit
    • Hervé Beraud's avatar
      Correctly handle missing RabbitMQ queues · 4937949d
      Hervé Beraud authored
      Currently, setting the '[oslo_messaging] direct_mandatory_flag' config
      option to 'True' (the default) will result in a 'MessageUndeliverable'
      exception being raised when sending a reply if a RabbitMQ queue is
      missing [1]. It was the responsibility of the application to handle
      this exception, however, many applications are not doing so. This has
      resulted in a number of bug reports.
      
      Start handling this error condition, using a retry loop to attempt to
      resend the message and work around any temporary glitches. Since
      attempting to send a reply will will no longer raise an exception,
      there is little benefit in retaining the '[oslo_messaging]
      direct_mandatory_flag' config option: users setting this to False will
      simply not benefit from the retry logic and improved logging added
      here. This option is already deprecated though and will be fully
      removed in a future release.
      
      [1] https://www.rabbitmq.com/channels.html
      
      Change-Id: Id5cddbefbe24ef100f1cc522f44430df77d217cb
      Closes-Bug: #1905965
      4937949d
  4. 03 Feb, 2021 3 commits
  5. 01 Feb, 2021 2 commits
  6. 18 Jan, 2021 1 commit
  7. 08 Jan, 2021 2 commits
  8. 06 Jan, 2021 1 commit
  9. 03 Jan, 2021 1 commit
  10. 02 Jan, 2021 1 commit
    • xuanyandong's avatar
      Remove six · 5560e8e6
      xuanyandong authored
      Change-Id: I9ac8671d9a37c218cb0e5546eb6dbcec7a7a764e
      5560e8e6
  11. 22 Dec, 2020 1 commit
    • Ben Nemec's avatar
      Fix type of direct_mandatory_flag opt · b8f8b170
      Ben Nemec authored
      An IntOpt with a default of True is invalid. I'm a little surprised
      this doesn't fail a defaults check somewhere, but it needs to be
      fixed regardless.
      
      Looking at where it is used, it appears the boolean type is correct.
      This just changes the opt type to BoolOpt to match.
      
      Change-Id: I01a38754a31c891f2b3b9c7f8135690693df5d13
      Closes-Bug: 1909036
      b8f8b170
  12. 18 Dec, 2020 1 commit
  13. 16 Dec, 2020 1 commit
  14. 11 Dec, 2020 1 commit
  15. 04 Dec, 2020 1 commit
  16. 04 Nov, 2020 2 commits
  17. 16 Oct, 2020 1 commit
    • Thomas Goirand's avatar
      Python 3.9: isAlive is removed · 0c4203bb
      Thomas Goirand authored
      The Threading method isAlive was deprecated a long time ago, in the favor
      of is_alive(). Though in Python 3.9, isAlive is removed. We must switch
      to it. Note that is_alive() is available at least in Python 3.5 (I tried)
      and probably even earlier, so switching to is_alive() is not a problem
      for the Python interpreter versions currently supported by OpenStack.
      
      Change-Id: I9d671abcd2cea9c0c726edaddcd65e1093d96731
      0c4203bb
  18. 15 Oct, 2020 1 commit
  19. 13 Oct, 2020 1 commit
    • Sean Mooney's avatar
      add min of 1 to rpc_conn_pool_size · 00d15eae
      Sean Mooney authored
      This change add a min value of 1 to
      [oslo_messaging_rabbit]/rpc_conn_pool_size
      such that there is always at least 1 connection avaiable.
      
      This change add a runtime check to ensure that
      [oslo_messaging_rabbit]/rpc_conn_pool_size is greater than
      or equal too [oslo_messaging_rabbit]/conn_pool_min_size
      
      Change-Id: I2ad4b9f1d012c9f0586a932ac27d96da1bcc4e4c
      Closes-Bug: #1899533
      00d15eae
  20. 22 Sep, 2020 1 commit
    • Hervé Beraud's avatar
      Adding pre-commit · a997f09e
      Hervé Beraud authored
      Introduced changes:
      - pre-commit config and rules
      - Add pre-commit to pep8 gate, Flake8 is covered in the pre-commit hooks.
      - Applying fixes for pre-commit compliance in all code.
      
      Also commit hash will be used instead of version tags in pre-commit to
      prevend arbitrary code from running in developer's machines.
      
      pre-commit will be used to:
      - trailing whitespace;
      - Replaces or checks mixed line ending (mixed-line-ending);
      - Forbid files which have a UTF-8 byte-order marker (check-byte-order-marker);
      - Checks that non-binary executables have a proper
        shebang (check-executables-have-shebangs);
      - Check for files that contain merge conflict strings (check-merge-conflict);
      - Check for debugger imports and py37+ breakpoint()
        calls in python source (debug-statements);
      - Attempts to load all yaml files to verify syntax (check-yaml);
      - Run flake8 checks (flake8) (local)
      
      For further details about tests please refer to:
      https://github.com/pre-commit/pre-commit-hooks
      
      
      
      Change-Id: Ibd0c3d64fdc5c293d9d676d33eab828d9fde971f
      Co-authored-by: default avatarMoisés Guimarães de Medeiros <moguimar@redhat.com>
      a997f09e
  21. 11 Sep, 2020 3 commits
  22. 10 Sep, 2020 1 commit
  23. 28 Aug, 2020 1 commit
  24. 27 Aug, 2020 1 commit
    • Hervé Beraud's avatar
      Run rabbitmq heartbeat in python thread by default · add5ab4e
      Hervé Beraud authored
      Removing the experimental nature of this feature and activating it by default.
      Now to run heartbeat in a green thread users should set this option to False.
      
      Also deprecating this option to prepare future removal and force to always run
      heartbeat in a python thread whatever the context.
      
      Change-Id: I32a6c4ad0a456282ec02b5e4c8309489b3c17553
      add5ab4e
  25. 18 Aug, 2020 1 commit
    • Arnaud Morin's avatar
      Add a ping endpoint to RPC dispatcher · 82492442
      Arnaud Morin authored
      
      
      The purpose of this patch is to add an endpoint directly in RPC
      dispatcher, so this endpoint will always be available, in a cross
      project manner, without the need for projects to manage it by themself.
      
      This endpoint stay disabled by default, so this change is harmless
      without a specific configuration option.
      
      To enable this ping endpoint, an operator will just have to add a new
      parameter in the [DEFAULT] section, alongside with rpc_response_timeout
      [DEFAULT]
      rpc_ping_enabled=true  # default is false
      
      The purpose of this new endpoint is to help operators do a RPC call (a
      ping) toward a specific RPC callback (e.g. a nova-compute, or a
      neutron-agent).
      This is helping a lot for monitoring agents (for example, if agents are
      deployed in a kubernetes pod).
      
      The endpoint is named oslo_rpc_server_ping.
      
      Change-Id: I51cf67e060f240e6eb82260e70a057fe599f9063
      Signed-off-by: default avatarArnaud Morin <arnaud.morin@corp.ovh.com>
      82492442
  26. 01 Aug, 2020 1 commit
  27. 30 Jul, 2020 1 commit
    • shenjiatong's avatar
      Cancel consumer if queue down · 196fa877
      shenjiatong authored
      Previously, we have switched to use default exchanges
      to avoid excessive amounts of exchange not found messages.
      But it does not actually solve the problem because
      reply_* queue is already gone and agent will not receive callbacks.
      
      after some debugging, I found under some circumstances
      seems rabbitmq consumer does not receive basic cancel
      signal when queue is already gone. This might due to
      rabbitmq try to restart consumer when queue is down
      (for example when split brain). In such cases,
      it might be better to fail early.
      
      by reading the code, seems like x-cancel-on-ha-failover
      is not dedicated to mirror queues only, https://github.com/rabbitmq/rabbitmq-server/blob/master/src/rabbit_channel.erl#L1894,
      https://github.com/rabbitmq/rabbitmq-server/blob/master/src/rabbit_channel.erl#L1926.
      
      By failing early, in my own test setup,
      I could solve a certain case of exchange not found problem.
      
      Change-Id: I2ae53340783e4044dab58035bc0992dc08145b53
      Related-bug: #1789177
      196fa877
  28. 28 Jul, 2020 2 commits
  29. 25 Jul, 2020 1 commit
  30. 20 Jul, 2020 1 commit