)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"45d64476b98f30ee4ba8dec2d6e17c34a6a96aa2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dbf0a617_acc7333e","updated":"2023-07-15 16:13:24.000000000","message":"recheck more data needed","commit_id":"0099d1812d0c018be65c47c5f1eb6e98b56cbf99"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8dd8af3e93495eb76f44a5b3954a18217ce45844","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"13416401_8d4fb645","updated":"2023-07-17 13:04:50.000000000","message":"recheck need a loaded CI to try and reproduce the failure.","commit_id":"0099d1812d0c018be65c47c5f1eb6e98b56cbf99"}],"ironic/cmd/conductor.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"782a0fc7f04ffa2373b0dd4f261105a8981169ad","unresolved":true,"context_lines":[{"line_number":50,"context_line":"    if utils.is_ironic_using_sqlite():"},{"line_number":51,"context_line":"        LOG.warning(\u0027Ironic has been configured to utilize SQLite. \u0027"},{"line_number":52,"context_line":"                    \u0027This has some restrictions and impacts. You must run \u0027"},{"line_number":53,"context_line":"                    \u0027as as a single combined ironic process, and some \u0027"},{"line_number":54,"context_line":"                    \u0027internal mechanisms do not execute such as the hash \u0027"},{"line_number":55,"context_line":"                    \u0027ring will remain static and the conductor\\\u0027s \u0027"},{"line_number":56,"context_line":"                    \u0027``last_updated`` field will also not update. This is \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"859a928f_56e66a7b","line":53,"range":{"start_line":53,"start_character":21,"end_line":53,"end_character":23},"updated":"2023-07-18 08:44:11.000000000","message":"nit: remove \u0027as\u0027","commit_id":"0099d1812d0c018be65c47c5f1eb6e98b56cbf99"}],"ironic/common/hash_ring.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"522224fff918666a44e92c39594d0ba99dc515e6","unresolved":true,"context_lines":[{"line_number":50,"context_line":"        hash_rings, updated_at \u003d self.__class__._hash_rings"},{"line_number":51,"context_line":"        if (hash_rings is not None"},{"line_number":52,"context_line":"            and (updated_at \u003e\u003d limit"},{"line_number":53,"context_line":"                 or CONF.hash_ring_reset_interval \u003d\u003d 0)):"},{"line_number":54,"context_line":"            return hash_rings"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        with self._lock:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9157fd5b_85bdcd8b","line":53,"updated":"2023-07-14 08:00:35.000000000","message":"The hash ring code is mostly used in the API, your override will run in the conductor. That works for Metal3 but will break if someone decided to split API and conductor.\n\n... they\u0027re probably pretty broken anyway. Maybe we should update the docs and put up a release note saying \"if you\u0027re running sqlite, you MUST run the all-in-one executable\".","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a8bd755f81bac758f70d00f0778166317b0364d7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        hash_rings, updated_at \u003d self.__class__._hash_rings"},{"line_number":51,"context_line":"        if (hash_rings is not None"},{"line_number":52,"context_line":"            and (updated_at \u003e\u003d limit"},{"line_number":53,"context_line":"                 or CONF.hash_ring_reset_interval \u003d\u003d 0)):"},{"line_number":54,"context_line":"            return hash_rings"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        with self._lock:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1023655f_96e7c415","line":53,"in_reply_to":"0cdf95ee_f452fb39","updated":"2023-07-16 20:22:18.000000000","message":"Done","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d33f710ac7df3335e087b7f3d2aa797ec2cbda4e","unresolved":true,"context_lines":[{"line_number":50,"context_line":"        hash_rings, updated_at \u003d self.__class__._hash_rings"},{"line_number":51,"context_line":"        if (hash_rings is not None"},{"line_number":52,"context_line":"            and (updated_at \u003e\u003d limit"},{"line_number":53,"context_line":"                 or CONF.hash_ring_reset_interval \u003d\u003d 0)):"},{"line_number":54,"context_line":"            return hash_rings"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        with self._lock:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0cdf95ee_f452fb39","line":53,"in_reply_to":"9157fd5b_85bdcd8b","updated":"2023-07-14 13:32:21.000000000","message":"Yeah, I\u0027m thinking that is definitely the case.","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"}],"ironic/conductor/base_manager.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"522224fff918666a44e92c39594d0ba99dc515e6","unresolved":true,"context_lines":[{"line_number":206,"context_line":"                     \u0027Ironic is using SQLite for database storage.\u0027)"},{"line_number":207,"context_line":"            setattr(CONF, \u0027hash_ring_reset_interval\u0027, 0)"},{"line_number":208,"context_line":"            setattr(CONF.conductor, \u0027heartbeat_interval\u0027, 0)"},{"line_number":209,"context_line":"            setattr(CONF.conductor, \u0027heartbeat_timeout\u0027, 0)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Spawn a dedicated greenthread for the keepalive"},{"line_number":212,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"a901a4bb_025ef66a","line":209,"updated":"2023-07-14 08:00:35.000000000","message":"Rather than overriding CONF, I\u0027d probably just use utils.is_ironic_using_sqlite() wherever is needed.","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d33f710ac7df3335e087b7f3d2aa797ec2cbda4e","unresolved":true,"context_lines":[{"line_number":206,"context_line":"                     \u0027Ironic is using SQLite for database storage.\u0027)"},{"line_number":207,"context_line":"            setattr(CONF, \u0027hash_ring_reset_interval\u0027, 0)"},{"line_number":208,"context_line":"            setattr(CONF.conductor, \u0027heartbeat_interval\u0027, 0)"},{"line_number":209,"context_line":"            setattr(CONF.conductor, \u0027heartbeat_timeout\u0027, 0)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Spawn a dedicated greenthread for the keepalive"},{"line_number":212,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"c78ef86e_ca63642a","line":209,"in_reply_to":"a901a4bb_025ef66a","updated":"2023-07-14 13:32:21.000000000","message":"I guess I could do the compare once, and cache the result then. I want to keep us from doing a string contents check each time.","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a8bd755f81bac758f70d00f0778166317b0364d7","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                     \u0027Ironic is using SQLite for database storage.\u0027)"},{"line_number":207,"context_line":"            setattr(CONF, \u0027hash_ring_reset_interval\u0027, 0)"},{"line_number":208,"context_line":"            setattr(CONF.conductor, \u0027heartbeat_interval\u0027, 0)"},{"line_number":209,"context_line":"            setattr(CONF.conductor, \u0027heartbeat_timeout\u0027, 0)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Spawn a dedicated greenthread for the keepalive"},{"line_number":212,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0a8f43cb_e9b87c2c","line":209,"in_reply_to":"c78ef86e_ca63642a","updated":"2023-07-16 20:22:18.000000000","message":"Done","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"}],"ironic/db/sqlalchemy/api.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"522224fff918666a44e92c39594d0ba99dc515e6","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                 .filter(models.Conductor.updated_at \u003e\u003d limit))"},{"line_number":363,"context_line":"    else:"},{"line_number":364,"context_line":"        query \u003d query.filter(models.Conductor.online.is_(True))"},{"line_number":365,"context_line":"        LOG.debug(\u0027Only filtering on online conductors.\u0027)"},{"line_number":366,"context_line":"    return query"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"97ca8d75_8fdf16b3","line":365,"updated":"2023-07-14 08:00:35.000000000","message":"You already have a useful info(), I think this will just spam the logs (remember: most deployers run with debug on).","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a8bd755f81bac758f70d00f0778166317b0364d7","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                 .filter(models.Conductor.updated_at \u003e\u003d limit))"},{"line_number":363,"context_line":"    else:"},{"line_number":364,"context_line":"        query \u003d query.filter(models.Conductor.online.is_(True))"},{"line_number":365,"context_line":"        LOG.debug(\u0027Only filtering on online conductors.\u0027)"},{"line_number":366,"context_line":"    return query"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"8465c745_bd24f7cc","line":365,"in_reply_to":"6bd07c43_434b4bb6","updated":"2023-07-16 20:22:18.000000000","message":"Done","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d33f710ac7df3335e087b7f3d2aa797ec2cbda4e","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                 .filter(models.Conductor.updated_at \u003e\u003d limit))"},{"line_number":363,"context_line":"    else:"},{"line_number":364,"context_line":"        query \u003d query.filter(models.Conductor.online.is_(True))"},{"line_number":365,"context_line":"        LOG.debug(\u0027Only filtering on online conductors.\u0027)"},{"line_number":366,"context_line":"    return query"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"6bd07c43_434b4bb6","line":365,"in_reply_to":"97ca8d75_8fdf16b3","updated":"2023-07-14 13:32:21.000000000","message":"The debugging was more for me to try and see where things were lining up (if at all).","commit_id":"7581e222a9ed0ceee1aa6a5fd7bda07acf94db84"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"782a0fc7f04ffa2373b0dd4f261105a8981169ad","unresolved":true,"context_lines":[{"line_number":356,"context_line":"    if interval is None:"},{"line_number":357,"context_line":"        interval \u003d CONF.conductor.heartbeat_timeout"},{"line_number":358,"context_line":"    if not utils.is_ironic_using_sqlite() and interval \u003e 0:"},{"line_number":359,"context_line":"        # Check for greater than zero becaues if the value is zero,"},{"line_number":360,"context_line":"        # then the logic makes no sense."},{"line_number":361,"context_line":"        limit \u003d timeutils.utcnow() - datetime.timedelta(seconds\u003dinterval)"},{"line_number":362,"context_line":"        query \u003d (query.filter(models.Conductor.online.is_(True))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a476b8c_767f989f","line":359,"range":{"start_line":359,"start_character":38,"end_line":359,"end_character":45},"updated":"2023-07-18 08:44:11.000000000","message":"nit: because","commit_id":"0099d1812d0c018be65c47c5f1eb6e98b56cbf99"}],"releasenotes/notes/not-heartbeat-the-conductor-with-sqlite-7cfc71e717d69bc5.yaml":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"782a0fc7f04ffa2373b0dd4f261105a8981169ad","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The use of a SQLite database with mutli-process (i.e. ``ironic-api`` and"},{"line_number":5,"context_line":"    ``ironic-conductor`` services) is not supported, and the ability to launch"},{"line_number":6,"context_line":"    a dedicated ``ironic-api`` process with a SQLite database backend will"},{"line_number":7,"context_line":"    be an error in the future. In this case, the single process combined"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"254856fb_4b219dda","line":4,"range":{"start_line":4,"start_character":38,"end_line":4,"end_character":43},"updated":"2023-07-18 08:44:11.000000000","message":"nit: multi","commit_id":"0099d1812d0c018be65c47c5f1eb6e98b56cbf99"}]}
