)]}'
{"oslo_messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"857ae32f1b304ae8057d78b61b8bf63768a7256c","unresolved":false,"context_lines":[{"line_number":913,"context_line":"                timeout \u003d min(heartbeat_timeout, timeout)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        try:"},{"line_number":916,"context_line":"            sock \u003d self.channel.connection.sock"},{"line_number":917,"context_line":"        except AttributeError as e:"},{"line_number":918,"context_line":"            # Level is set to debug because otherwise we would spam the logs"},{"line_number":919,"context_line":"            LOG.debug(\u0027[%s] Failed to get socket attribute: %s\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_c4ee8eec","line":916,"range":{"start_line":916,"start_character":19,"end_line":916,"end_character":47},"updated":"2016-12-09 19:38:23.000000000","message":"I think that doesn\u0027t work anymore.","commit_id":"892e7d3c899ac8b23eae2db80c84eb25b04f7733"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c7a516a29429565940565a1f8db3cbbbe2887451","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                        _raise_timeout, exc, maximum\u003dself._poll_timeout)"},{"line_number":1074,"context_line":"                except self.connection.channel_errors as exc:"},{"line_number":1075,"context_line":"                    if exc.code \u003d\u003d 406 or exc.method_name \u003d\u003d \u0027Basic.ack\u0027:"},{"line_number":1076,"context_line":"                        # NOTE(gordc): occasionally multiple workers will grab"},{"line_number":1077,"context_line":"                        # same message and acknowledge it. if it happens, meh."},{"line_number":1078,"context_line":"                        raise self.connection.recoverable_channel_errors[0]"},{"line_number":1079,"context_line":"                    raise"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"        with self._connection_lock:"}],"source_content_type":"text/x-python","patch_set":14,"id":"da4df55a_0bd39e39","line":1078,"range":{"start_line":1076,"start_character":24,"end_line":1078,"end_character":24},"updated":"2016-12-22 09:30:48.000000000","message":"Come on rabbit ...","commit_id":"aef9e9ada4e4bfe8924b9970b9f869ac1bda0bbe"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e681055e50db6ceacd62e7f6638f66051238a019","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                        _raise_timeout, exc, maximum\u003dself._poll_timeout)"},{"line_number":1074,"context_line":"                except self.connection.channel_errors as exc:"},{"line_number":1075,"context_line":"                    if exc.code \u003d\u003d 406 or exc.method_name \u003d\u003d \u0027Basic.ack\u0027:"},{"line_number":1076,"context_line":"                        # NOTE(gordc): occasionally multiple workers will grab"},{"line_number":1077,"context_line":"                        # same message and acknowledge it. if it happens, meh."},{"line_number":1078,"context_line":"                        raise self.connection.recoverable_channel_errors[0]"},{"line_number":1079,"context_line":"                    raise"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"        with self._connection_lock:"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_460f192e","line":1078,"range":{"start_line":1076,"start_character":24,"end_line":1078,"end_character":24},"in_reply_to":"ba5201f7_35279d13","updated":"2017-01-04 01:59:07.000000000","message":"i should mention, i have no idea why it\u0027s double ack\u0027ing. right now, without this change i see periodic errors and any channelerror drops the connection... googling says, it\u0027s because i\u0027m double ack\u0027ing and amqp is strict ack once now. i\u0027m sort of guessing that it\u0027s safe to carry on but ideally we should figure out why it\u0027s raising error. all suggestions welcomed:\n\n2016-12-15 20:31:02.785 17497 ERROR oslo.messaging._drivers.impl_rabbit [-] Failed to consume message from queue: Basic.ack: (406) PRECONDITION_FAILED - unknown delivery tag 3647\n2016-12-15 20:31:02.789 17497 ERROR root [-] Unexpected exception occurred 1 time(s)... retrying.\n2016-12-15 20:31:02.789 17497 ERROR root Traceback (most recent call last):\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 250, in wrapper\n2016-12-15 20:31:02.789 17497 ERROR root     return infunc(*args, **kwargs)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/base.py\", line 302, in _runner\n2016-12-15 20:31:02.789 17497 ERROR root     batch_size\u003dself.batch_size, batch_timeout\u003dself.batch_timeout)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/base.py\", line 52, in wrapper\n2016-12-15 20:31:02.789 17497 ERROR root     msg \u003d func(in_self, timeout\u003dtimeout_watch.leftover(True))\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/amqpdriver.py\", line 211, in poll\n2016-12-15 20:31:02.789 17497 ERROR root     self.conn.consume(timeout\u003dtimeout)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/impl_rabbit.py\", line 1078, in consume\n2016-12-15 20:31:02.789 17497 ERROR root     error_callback\u003d_error_callback)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/impl_rabbit.py\", line 803, in ensure\n2016-12-15 20:31:02.789 17497 ERROR root     ret, channel \u003d autoretry_method()\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/kombu/connection.py\", line 494, in _ensured\n2016-12-15 20:31:02.789 17497 ERROR root     return fun(*args, **kwargs)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/kombu/connection.py\", line 570, in __call__\n2016-12-15 20:31:02.789 17497 ERROR root     return fun(*args, channel\u003dchannels[0], **kwargs), channels[0]\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/impl_rabbit.py\", line 792, in execute_method\n2016-12-15 20:31:02.789 17497 ERROR root     method()\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/opt/stack/new/oslo.messaging/oslo_messaging/_drivers/impl_rabbit.py\", line 1069, in _consume\n2016-12-15 20:31:02.789 17497 ERROR root     self.connection.drain_events(timeout\u003dpoll_timeout)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/kombu/connection.py\", line 301, in drain_events\n2016-12-15 20:31:02.789 17497 ERROR root     return self.transport.drain_events(self.connection, **kwargs)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/kombu/transport/pyamqp.py\", line 103, in drain_events\n2016-12-15 20:31:02.789 17497 ERROR root     return connection.drain_events(**kwargs)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/amqp/connection.py\", line 464, in drain_events\n2016-12-15 20:31:02.789 17497 ERROR root     return self.blocking_read(timeout)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/amqp/connection.py\", line 469, in blocking_read\n2016-12-15 20:31:02.789 17497 ERROR root     return self.on_inbound_frame(frame)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/amqp/method_framing.py\", line 68, in on_frame\n2016-12-15 20:31:02.789 17497 ERROR root     callback(channel, method_sig, buf, None)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/amqp/connection.py\", line 473, in on_inbound_method\n2016-12-15 20:31:02.789 17497 ERROR root     method_sig, payload, content,\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/amqp/abstract_channel.py\", line 142, in dispatch_method\n2016-12-15 20:31:02.789 17497 ERROR root     listener(*args)\n2016-12-15 20:31:02.789 17497 ERROR root   File \"/usr/local/lib/python2.7/dist-packages/amqp/channel.py\", line 293, in _on_close\n2016-12-15 20:31:02.789 17497 ERROR root     reply_code, reply_text, (class_id, method_id), ChannelError,\n2016-12-15 20:31:02.789 17497 ERROR root PreconditionFailed: Basic.ack: (406) PRECONDITION_FAILED - unknown delivery tag 3647\n2016-12-15 20:31:02.789 17497 ERROR root \n2016-12-15 20:31:03.821 17497 ERROR oslo.messaging._drivers.impl_rabbit [-] Failed to consume message from queue: Basic.ack: (406) PRECONDITION_FAILED - unknown delivery tag 3652","commit_id":"aef9e9ada4e4bfe8924b9970b9f869ac1bda0bbe"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6358e4c997dc19480631b9ed1a5c91fb9c844f07","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                        _raise_timeout, exc, maximum\u003dself._poll_timeout)"},{"line_number":1074,"context_line":"                except self.connection.channel_errors as exc:"},{"line_number":1075,"context_line":"                    if exc.code \u003d\u003d 406 or exc.method_name \u003d\u003d \u0027Basic.ack\u0027:"},{"line_number":1076,"context_line":"                        # NOTE(gordc): occasionally multiple workers will grab"},{"line_number":1077,"context_line":"                        # same message and acknowledge it. if it happens, meh."},{"line_number":1078,"context_line":"                        raise self.connection.recoverable_channel_errors[0]"},{"line_number":1079,"context_line":"                    raise"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"        with self._connection_lock:"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_35279d13","line":1078,"range":{"start_line":1076,"start_character":24,"end_line":1078,"end_character":24},"in_reply_to":"da4df55a_0bd39e39","updated":"2017-01-04 00:34:41.000000000","message":"Ya, that\u0027s whacky, lol.","commit_id":"aef9e9ada4e4bfe8924b9970b9f869ac1bda0bbe"}],"oslo_messaging/tests/drivers/test_impl_rabbit.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"58f8bc989e72f263d9bebb706930131e86011c22","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                          timeout\u003d1)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        fake_publish.assert_called_with("},{"line_number":221,"context_line":"            \u0027msg\u0027, expiration\u003d1,"},{"line_number":222,"context_line":"            exchange\u003dexchange_mock,"},{"line_number":223,"context_line":"            compression\u003dself.conf.oslo_messaging_rabbit.kombu_compression,"},{"line_number":224,"context_line":"            routing_key\u003d\u0027routing_key\u0027)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    @mock.patch(\u0027kombu.messaging.Producer.publish\u0027)"},{"line_number":227,"context_line":"    def test_send_no_timeout(self, fake_publish):"}],"source_content_type":"text/x-python","patch_set":21,"id":"7a3c09a3_607be8f5","line":224,"range":{"start_line":221,"start_character":0,"end_line":224,"end_character":38},"updated":"2017-01-17 06:49:44.000000000","message":"yes, we can remove the workaround code now, stable/mitaka has kombu \u003e3.0.25 https://github.com/openstack/oslo.messaging/blob/stable/mitaka/requirements.txt#L37.\n\nMaybe we need a separate patch for this change and this isn\u0027t related with kombu 4.0 :)","commit_id":"9e292557b295cb8c2f2bb4a4b6cadb39ec69c670"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a1434fae616ee712b0727dce8f894879b443966e","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                          timeout\u003d1)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        fake_publish.assert_called_with("},{"line_number":221,"context_line":"            \u0027msg\u0027, expiration\u003d1,"},{"line_number":222,"context_line":"            exchange\u003dexchange_mock,"},{"line_number":223,"context_line":"            compression\u003dself.conf.oslo_messaging_rabbit.kombu_compression,"},{"line_number":224,"context_line":"            routing_key\u003d\u0027routing_key\u0027)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    @mock.patch(\u0027kombu.messaging.Producer.publish\u0027)"},{"line_number":227,"context_line":"    def test_send_no_timeout(self, fake_publish):"}],"source_content_type":"text/x-python","patch_set":21,"id":"7a3c09a3_694742bc","line":224,"range":{"start_line":221,"start_character":0,"end_line":224,"end_character":38},"in_reply_to":"7a3c09a3_607be8f5","updated":"2017-01-17 14:14:59.000000000","message":"i could... but a good chunk of the changes are not compatible with \u003c4.0.0 so there\u0027s basically no compatibility to anything but \u003e\u003d4... i only made requirements patch \u003e\u003d3.0.25 so i could get it to pass. but it is suppose to be \u003e\u003d4.0","commit_id":"9e292557b295cb8c2f2bb4a4b6cadb39ec69c670"}],"requirements.txt":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"ab0376329681c5fa2ad584a08d3ece7a869821b2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# rabbit driver is the default"},{"line_number":34,"context_line":"# we set the amqp version to ensure heartbeat works"},{"line_number":35,"context_line":"amqp\u003e\u003d2.0 # LGPL"},{"line_number":36,"context_line":"kombu\u003e\u003d4.0.0 # BSD"},{"line_number":37,"context_line":"pika\u003e\u003d0.10.0 # BSD"},{"line_number":38,"context_line":"pika-pool\u003e\u003d0.1.3 # BSD"},{"line_number":39,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"1a6eadb0_02514fd8","line":36,"updated":"2016-12-14 23:05:18.000000000","message":"+1 To this stanza","commit_id":"bc89bb294f116ce437326e706af9fe6ff2597162"}],"tools/tox_install.sh":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"ab0376329681c5fa2ad584a08d3ece7a869821b2","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"pip install -c$localfile -U $*"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"pip install -U \u0027kombu\u003e\u003d4.0.0\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"exit $?"}],"source_content_type":"text/x-sh","patch_set":7,"id":"1a6eadb0_c24af725","line":31,"updated":"2016-12-14 23:05:18.000000000","message":"If this is needed the the requirements infrastructure is broken","commit_id":"bc89bb294f116ce437326e706af9fe6ff2597162"}],"tox.ini":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"f81907a3645beac1fd8bff224b49b29536b73031","unresolved":false,"context_lines":[{"line_number":10,"context_line":"passenv \u003d OS_*"},{"line_number":11,"context_line":"          ZUUL_CACHE_DIR"},{"line_number":12,"context_line":"          REQUIREMENTS_PIP_LOCATION"},{"line_number":13,"context_line":"install_command \u003d {toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}"},{"line_number":14,"context_line":"deps \u003d -r{toxinidir}/test-requirements.txt"},{"line_number":15,"context_line":"commands \u003d python setup.py testr --slowest --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-properties","patch_set":3,"id":"1a6eadb0_3146b2bf","side":"PARENT","line":13,"range":{"start_line":13,"start_character":79,"end_line":13,"end_character":160},"updated":"2016-12-14 14:19:32.000000000","message":"this is grabbed using curl? Depends-On does some magic to resolve this?","commit_id":"c805618d9ad99f0f76fc4abfd6313b590cba5cbb"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"9b066b992b5c469b9f6f92ebc3debf36cc3cc42e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"passenv \u003d OS_*"},{"line_number":11,"context_line":"          ZUUL_CACHE_DIR"},{"line_number":12,"context_line":"          REQUIREMENTS_PIP_LOCATION"},{"line_number":13,"context_line":"install_command \u003d {toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}"},{"line_number":14,"context_line":"deps \u003d -r{toxinidir}/test-requirements.txt"},{"line_number":15,"context_line":"commands \u003d python setup.py testr --slowest --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-properties","patch_set":3,"id":"1a6eadb0_38d75d4c","side":"PARENT","line":13,"range":{"start_line":13,"start_character":79,"end_line":13,"end_character":160},"in_reply_to":"1a6eadb0_3146b2bf","updated":"2016-12-14 21:38:40.000000000","message":"Yes.\n\nIn the gate environment the job setup grabs upper-constratints.txt from the requirements repo (honouring Depends-On as appropriate).  From there it copies it into the project repo and then sets the UPPER_CONSTRAINTS_FILE environment var to point to the file it just setup.\n\nSee the if statement at [1] for how this is handled\n\nThe devstack case is similar but obviously inline with devstack\u0027s requirements.\n\nSo if you create a change in openstack/requirements an then Depends-On it you\u0027re emulating what the world will look like once that change lands.\n\nIf the setup side doesn\u0027t work then that a bug somewhere in requirements or infra and I\u0027d be happy to chase it down.\n\nWith your permission I\u0027d like to setup the openstack/requirements change and modify this one to use it.  That has the added benefit that we can re-use the same openstack/requirements change to test the other projects that use kombu directly\n\n\n[1] http://git.openstack.org/cgit/openstack/oslo.messaging/tree/tools/tox_install.sh#n16","commit_id":"c805618d9ad99f0f76fc4abfd6313b590cba5cbb"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"453bb0788814951583db69993a6011ca60d1b526","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a6eadb0_d6ecb02b","updated":"2016-12-14 02:07:53.000000000","message":"Rather than do this you\u0027re better to create a chnage in openstack/requiremnets that sets that repo to look the way you want and then using Depends-On to make this all work.\n\nThat approach has the advantage that you can run full dsvm tests with the new library.\n\nYou can Depend-On several changes so you can build quite complex testing setups.","commit_id":"83e73de352036aa7be4cb08128fc5e64efb246cb"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"ab0376329681c5fa2ad584a08d3ece7a869821b2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    {[testenv]setenv}"},{"line_number":34,"context_line":"    TRANSPORT_DRIVER\u003drabbit"},{"line_number":35,"context_line":"    amqp\u003e\u003d2.0 # LGPL"},{"line_number":36,"context_line":"    kombu\u003e\u003d4.0.0 # BSD"},{"line_number":37,"context_line":"commands \u003d pifpaf run rabbitmq --  python setup.py testr --slowest --testr-args\u003d\u0027{posargs:oslo_messaging.tests.functional}\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"[testenv:py34-func-rabbit]"}],"source_content_type":"text/x-properties","patch_set":7,"id":"1a6eadb0_a2dfbb67","line":36,"updated":"2016-12-14 23:05:18.000000000","message":"You\u0027re in setenv and this isn\u0027t a valid environment variable.  You\u0027ve added these to requirements.txt so you shoudl also remove these 2 lines","commit_id":"bc89bb294f116ce437326e706af9fe6ff2597162"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"ab0376329681c5fa2ad584a08d3ece7a869821b2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    {[testenv]setenv}"},{"line_number":49,"context_line":"    TRANSPORT_DRIVER\u003drabbit"},{"line_number":50,"context_line":"    amqp\u003e\u003d2.0 # LGPL"},{"line_number":51,"context_line":"    kombu\u003e\u003d4.0.0 # BSD"},{"line_number":52,"context_line":"basepython \u003d python3.5"},{"line_number":53,"context_line":"commands \u003d pifpaf run rabbitmq --  python setup.py testr --slowest --testr-args\u003d\u0027{posargs:oslo_messaging.tests.functional}\u0027"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":7,"id":"1a6eadb0_62c843a9","line":51,"updated":"2016-12-14 23:05:18.000000000","message":"As above","commit_id":"bc89bb294f116ce437326e706af9fe6ff2597162"}],"upper-constraints-test.txt":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"453bb0788814951583db69993a6011ca60d1b526","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a6eadb0_36dec46d","updated":"2016-12-14 02:07:53.000000000","message":"See comment against tox.ini","commit_id":"83e73de352036aa7be4cb08128fc5e64efb246cb"}]}
