You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "waterWang (via GitHub)" <gi...@apache.org> on 2026/08/08 20:59:10 UTC

[PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

waterWang opened a new pull request, #42920:
URL: https://github.com/apache/superset/pull/42920

   ## Description
   
   Closes #42912.
   
   `import_tag` catches `SQLAlchemyError` after a query-triggered autoflush
   failure (e.g. a concurrent unique-constraint violation) and continues
   using the same SQLAlchemy Session without rolling back or isolating the
   failed operation. The Session enters a pending-rollback state, and the
   next operation raises `PendingRollbackError`.
   
   ### Fix
   
   Wrap each per-tag operation in a `db_session.begin_nested()` SAVEPOINT.
   When a conflict occurs:
   
   - The SAVEPOINT is rolled back โ€” only the failed tag's partial work is
     discarded
   - The outer session remains usable for subsequent tags
   - Other tags in the same import continue to succeed
   
   ### Test
   
   Added `test_import_tag_savepoint_keeps_session_usable` which simulates a
   unique-constraint violation on the first tag and verifies that:
   - The second tag is still imported successfully
   - The session is not left in a pending-rollback state
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #42920:
URL: https://github.com/apache/superset/pull/42920#issuecomment-5228139459

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #42920:
URL: https://github.com/apache/superset/pull/42920#issuecomment-5262352321

   ### <span aria-hidden="true">โœ…</span> Deploy Preview for *superset-docs-preview* ready!
   
   
   |  Name | Link |
   |:-:|------------------------|
   |<span aria-hidden="true">๐Ÿ”จ</span> Latest commit | 23a27d9529eec104c72447308277f29e2cc44a31 |
   |<span aria-hidden="true">๐Ÿ”</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/6a7bf877515f6d0008327c85 |
   |<span aria-hidden="true">๐Ÿ˜Ž</span> Deploy Preview | [https://deploy-preview-42920--superset-docs-preview.netlify.app](https://deploy-preview-42920--superset-docs-preview.netlify.app) |
   |<span aria-hidden="true">๐Ÿ“ฑ</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTQyOTIwLS1zdXBlcnNldC1kb2NzLXByZXZpZXcubmV0bGlmeS5hcHAifQ.3GYtKFOA4O_TCnaC_6kbJLb9BGJt4r1RL4HrOLFGcWg)<br /><br />_Use your smartphone camera to open QR code link._</details> |
   |<span aria-hidden="true">๐Ÿค–</span> Make changes | [Run an agent on this branch](https://app.netlify.com/projects/superset-docs-preview/agent-runs#DcrRDkAgFADQf7nPmkSKP_AZNxVt6C7NmPl3vZ2H8wKluFOGEaACk_CY12If7jrsFFNmGRd24uUohiOzTgyNKNM62uIz2XJ7VMZrpWQjfW8557oVatYSvh8) |
   ---
   <!-- [superset-docs-preview Preview](https://deploy-preview-42920--superset-docs-preview.netlify.app) -->
   _To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "rusackas (via GitHub)" <gi...@apache.org>.
rusackas commented on code in PR #42920:
URL: https://github.com/apache/superset/pull/42920#discussion_r3763628875


##########
superset/commands/importers/v1/utils.py:
##########
@@ -318,28 +318,35 @@ def import_tag(
 
     for tag_name in target_tag_names:
         try:
-            tag = existing_tags.get(tag_name)
-
-            # If tag does not exist, create it
-            if tag is None:
-                description = tag_descriptions.get(tag_name, None)
-                tag = Tag(name=tag_name, description=description, type="custom")
-                db_session.add(tag)
-                existing_tags[tag_name] = tag  # Update the existing_tags dictionary
-
-            # Ensure the association with the object
-            tagged_object = (
-                db_session.query(TaggedObject)
-                .filter_by(object_id=object_id, object_type=object_type, tag_id=tag.id)
-                .first()
-            )
-            if not tagged_object:
-                new_tagged_object = TaggedObject(
-                    tag_id=tag.id, object_id=object_id, object_type=object_type
+            # Isolate each tag operation in a SAVEPOINT so a failure (e.g. a
+            # concurrent unique-constraint violation) rolls back only the failed
+            # tag and leaves the session usable for the remaining tags, instead
+            # of poisoning the session with a pending-rollback state.
+            with db_session.begin_nested():
+                tag = existing_tags.get(tag_name)
+
+                # If tag does not exist, create it
+                if tag is None:
+                    description = tag_descriptions.get(tag_name, None)
+                    tag = Tag(name=tag_name, description=description, type="custom")
+                    db_session.add(tag)
+                    existing_tags[tag_name] = tag  # Update the existing_tags dictionary
+
+                # Ensure the association with the object
+                tagged_object = (
+                    db_session.query(TaggedObject)
+                    .filter_by(
+                        object_id=object_id, object_type=object_type, tag_id=tag.id
+                    )
+                    .first()
                 )
-                db_session.add(new_tagged_object)
+                if not tagged_object:
+                    new_tagged_object = TaggedObject(
+                        tag_id=tag.id, object_id=object_id, object_type=object_type
+                    )
+                    db_session.add(new_tagged_object)
 
-            new_tag_ids.append(tag.id)
+                new_tag_ids.append(tag.id)

Review Comment:
   Confirmed, thanks โ€” this was a real bug. `new_tag_ids.append(tag.id)` ran *inside* the `begin_nested()` block, before the SAVEPOINT's implicit flush (which is what actually persists the pending `TaggedObject` row, via `SessionTransaction._prepare_impl` calling `Session.flush()` on a clean exit) had succeeded. If that flush failed โ€” e.g. a concurrent import racing to create the same association and tripping the `uix_tagged_object` unique constraint โ€” the SAVEPOINT correctly rolled back the DB write, but the id stayed in the returned list, so the stale-association cleanup below would treat the failed tag as imported.
   
   Fixed in 23a27d9529 by moving the append to after the `with` block, so it's only reached once the nested transaction has committed without raising. Verified by reverting just that change locally and confirming the (strengthened, see the other thread) regression test fails without it.



##########
tests/unit_tests/charts/commands/importers/v1/import_test.py:
##########
@@ -506,3 +507,54 @@ def test_import_tag_logic_for_charts(session_with_schema: Session):
             .all()
         )
         assert len(associated_tags) == 0
+
+
+def test_import_tag_savepoint_keeps_session_usable(
+    mocker: MockerFixture, session_with_schema: Session
+) -> None:
+    """
+    When a single tag operation fails with a SQLAlchemyError (e.g. a unique
+    constraint violation from a concurrent import), the per-tag SAVEPOINT
+    isolates the failure so the session is not left in a pending-rollback
+    state, and the remaining tags still import successfully.
+    """
+    contents = {
+        "tags.yaml": yaml.dump(
+            {
+                "tags": [
+                    {"tag_name": "tag_1", "description": "Description for tag_1"},
+                    {"tag_name": "tag_2", "description": "Description for tag_2"},
+                ]
+            }
+        )
+    }
+
+    object_id = 1
+    object_type = "chart"
+
+    # Simulate a unique-constraint violation on the first TaggedObject insert.
+    # The second tag must still be imported, and the session must not be left
+    # in a pending-rollback state (which would raise PendingRollbackError on
+    # the next operation).
+    original_add = session_with_schema.add
+    add_count = 0
+
+    def flaky_add(obj: object) -> None:
+        nonlocal add_count
+        if isinstance(obj, TaggedObject):
+            add_count += 1
+            if add_count == 1:
+                raise SQLAlchemyError("UNIQUE constraint failed: tagged_object")

Review Comment:
   Fair point, and it's a genuine improvement โ€” I reworked the test to inject the failure via `Session.flush()` instead of `Session.add()`. `begin_nested()`'s implicit commit-on-exit (`SessionTransaction._prepare_impl`) calls `self.session.flush()` directly, so mocking `flush` (rather than `add`) now fails at the exact call the production SAVEPOINT release goes through, closer to the real flush-time constraint-violation path than the original mock. I also verified this matters in practice: with the sibling fix in the other thread reverted, this strengthened test now fails (it passed before against the buggy code, since the id was appended prior to the point of failure either way) โ€” so it's now actually load-bearing as a regression guard for that fix, not just for general session-isolation.
   
   I kept the check driven by session state (`is a TaggedObject for the first tag still pending when flush is called`) rather than a raw call-count, so it stays correct regardless of how many autoflushes happen elsewhere in the function. Pushed in 23a27d9529.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #42920:
URL: https://github.com/apache/superset/pull/42920#issuecomment-5263849822

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #42920:
URL: https://github.com/apache/superset/pull/42920#discussion_r3741647496


##########
superset/commands/importers/v1/utils.py:
##########
@@ -318,28 +318,35 @@ def import_tag(
 
     for tag_name in target_tag_names:
         try:
-            tag = existing_tags.get(tag_name)
-
-            # If tag does not exist, create it
-            if tag is None:
-                description = tag_descriptions.get(tag_name, None)
-                tag = Tag(name=tag_name, description=description, type="custom")
-                db_session.add(tag)
-                existing_tags[tag_name] = tag  # Update the existing_tags dictionary
-
-            # Ensure the association with the object
-            tagged_object = (
-                db_session.query(TaggedObject)
-                .filter_by(object_id=object_id, object_type=object_type, tag_id=tag.id)
-                .first()
-            )
-            if not tagged_object:
-                new_tagged_object = TaggedObject(
-                    tag_id=tag.id, object_id=object_id, object_type=object_type
+            # Isolate each tag operation in a SAVEPOINT so a failure (e.g. a
+            # concurrent unique-constraint violation) rolls back only the failed
+            # tag and leaves the session usable for the remaining tags, instead
+            # of poisoning the session with a pending-rollback state.
+            with db_session.begin_nested():
+                tag = existing_tags.get(tag_name)
+
+                # If tag does not exist, create it
+                if tag is None:
+                    description = tag_descriptions.get(tag_name, None)
+                    tag = Tag(name=tag_name, description=description, type="custom")
+                    db_session.add(tag)
+                    existing_tags[tag_name] = tag  # Update the existing_tags dictionary
+
+                # Ensure the association with the object
+                tagged_object = (
+                    db_session.query(TaggedObject)
+                    .filter_by(
+                        object_id=object_id, object_type=object_type, tag_id=tag.id
+                    )
+                    .first()
                 )
-                db_session.add(new_tagged_object)
+                if not tagged_object:
+                    new_tagged_object = TaggedObject(
+                        tag_id=tag.id, object_id=object_id, object_type=object_type
+                    )
+                    db_session.add(new_tagged_object)
 
-            new_tag_ids.append(tag.id)
+                new_tag_ids.append(tag.id)

Review Comment:
   **Suggestion:** `new_tag_ids` is mutated before the nested transaction flushes and releases its SAVEPOINT. If the association insert or SAVEPOINT release raises a `SQLAlchemyError`, the database work is rolled back but this ID remains in the returned list, causing old-association cleanup to treat the failed tag as successfully imported. Append the ID only after the nested context exits successfully. [logic error]
   
   <details>
   <summary><b>Severity Level:</b> Minor ๐Ÿงน</summary>
   
   ```mdx
   - โš ๏ธ Returned tag IDs can include rolled-back associations.
   - โš ๏ธ Import cleanup can retain stale tag relationships.
   - โš ๏ธ Concurrent tagged-object conflicts can trigger this path.
   ```
   </details>
   
   [![Fix in Cursor](https://new-codeant-butcket.s3.us-west-1.amazonaws.com/badges/fix-in-cursor-flat.svg)](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=05254bdfde1140d3bc3062df8e02d5f0&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [![Fix in VSCode Claude](https://new-codeant-butcket.s3.us-west-1.amazonaws.com/badges/fix-in-vscode-claude-flat.svg)](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=05254bdfde1140d3bc3062df8e02d5f0&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
   
   *(Use Cmd/Ctrl + Click for best experience)*
   <details>
   <summary><b>Prompt for AI Agent ๐Ÿค– </b></summary>
   
   ```mdx
   This is a comment left during a code review.
   
   **Path:** superset/commands/importers/v1/utils.py
   **Line:** 349:349
   **Comment:**
   	*Logic Error: `new_tag_ids` is mutated before the nested transaction flushes and releases its SAVEPOINT. If the association insert or SAVEPOINT release raises a `SQLAlchemyError`, the database work is rolled back but this ID remains in the returned list, causing old-association cleanup to treat the failed tag as successfully imported. Append the ID only after the nested context exits successfully.
   
   Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
   Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
   ```
   </details>
   <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F42920&comment_hash=fb43dac12f76df0b6338e83cd6a9a6eb1ba1f9c3fdc2977d085c2d7af16afe8f&reaction=like'>๐Ÿ‘</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F42920&comment_hash=fb43dac12f76df0b6338e83cd6a9a6eb1ba1f9c3fdc2977d085c2d7af16afe8f&reaction=dislike'>๐Ÿ‘Ž</a>



##########
tests/unit_tests/charts/commands/importers/v1/import_test.py:
##########
@@ -506,3 +507,54 @@ def test_import_tag_logic_for_charts(session_with_schema: Session):
             .all()
         )
         assert len(associated_tags) == 0
+
+
+def test_import_tag_savepoint_keeps_session_usable(
+    mocker: MockerFixture, session_with_schema: Session
+) -> None:
+    """
+    When a single tag operation fails with a SQLAlchemyError (e.g. a unique
+    constraint violation from a concurrent import), the per-tag SAVEPOINT
+    isolates the failure so the session is not left in a pending-rollback
+    state, and the remaining tags still import successfully.
+    """
+    contents = {
+        "tags.yaml": yaml.dump(
+            {
+                "tags": [
+                    {"tag_name": "tag_1", "description": "Description for tag_1"},
+                    {"tag_name": "tag_2", "description": "Description for tag_2"},
+                ]
+            }
+        )
+    }
+
+    object_id = 1
+    object_type = "chart"
+
+    # Simulate a unique-constraint violation on the first TaggedObject insert.
+    # The second tag must still be imported, and the session must not be left
+    # in a pending-rollback state (which would raise PendingRollbackError on
+    # the next operation).
+    original_add = session_with_schema.add
+    add_count = 0
+
+    def flaky_add(obj: object) -> None:
+        nonlocal add_count
+        if isinstance(obj, TaggedObject):
+            add_count += 1
+            if add_count == 1:
+                raise SQLAlchemyError("UNIQUE constraint failed: tagged_object")

Review Comment:
   **Suggestion:** This test raises `SQLAlchemyError` directly from the mocked `Session.add` method, before SQLAlchemy performs an INSERT, autoflush, SAVEPOINT creation, or SAVEPOINT release. Consequently it does not exercise the database failure mode the production change targets and would still pass if rollback behavior during an actual flush or context-manager exit were broken. Trigger the violation during flush or configure the test database with a real conflicting unique row instead of raising from `add`. [possible bug]
   
   <details>
   <summary><b>Severity Level:</b> Minor ๐Ÿงน</summary>
   
   ```mdx
   - โš ๏ธ Regression coverage misses actual database constraint handling.
   - โš ๏ธ Broken flush-time rollback could pass this test.
   - โš ๏ธ Import concurrency behavior remains insufficiently tested.
   ```
   </details>
   
   [![Fix in Cursor](https://new-codeant-butcket.s3.us-west-1.amazonaws.com/badges/fix-in-cursor-flat.svg)](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=a6c59a6f696d4b3ebe1b499c47c2ebc0&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [![Fix in VSCode Claude](https://new-codeant-butcket.s3.us-west-1.amazonaws.com/badges/fix-in-vscode-claude-flat.svg)](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=a6c59a6f696d4b3ebe1b499c47c2ebc0&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
   
   *(Use Cmd/Ctrl + Click for best experience)*
   <details>
   <summary><b>Prompt for AI Agent ๐Ÿค– </b></summary>
   
   ```mdx
   This is a comment left during a code review.
   
   **Path:** tests/unit_tests/charts/commands/importers/v1/import_test.py
   **Line:** 545:547
   **Comment:**
   	*Possible Bug: This test raises `SQLAlchemyError` directly from the mocked `Session.add` method, before SQLAlchemy performs an INSERT, autoflush, SAVEPOINT creation, or SAVEPOINT release. Consequently it does not exercise the database failure mode the production change targets and would still pass if rollback behavior during an actual flush or context-manager exit were broken. Trigger the violation during flush or configure the test database with a real conflicting unique row instead of raising from `add`.
   
   Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
   Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
   ```
   </details>
   <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F42920&comment_hash=b2c08082b5a53395bc752dc177784a640e97b8572cf64e978a039a111cd7997b&reaction=like'>๐Ÿ‘</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F42920&comment_hash=b2c08082b5a53395bc752dc177784a640e97b8572cf64e978a039a111cd7997b&reaction=dislike'>๐Ÿ‘Ž</a>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "rusackas (via GitHub)" <gi...@apache.org>.
rusackas merged PR #42920:
URL: https://github.com/apache/superset/pull/42920


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(import): isolate per-tag import in a SAVEPOINT to avoid poisoned session (#42912) [superset]

Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #42920:
URL: https://github.com/apache/superset/pull/42920#issuecomment-5228162794

   ## [Codecov](https://app.codecov.io/gh/apache/superset/pull/42920?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :x: Patch coverage is `0%` with `13 lines` in your changes missing coverage. Please review.
   :white_check_mark: Project coverage is 57.14%. Comparing base ([`a75665b`](https://app.codecov.io/gh/apache/superset/commit/a75665b014f142e3ae778b8d31c6f8c20860d278?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`c13bed2`](https://app.codecov.io/gh/apache/superset/commit/c13bed2d630b5478a94c70412e0bba8f3dab45b9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/superset/pull/42920?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
   |---|---|---|
   | [superset/commands/importers/v1/utils.py](https://app.codecov.io/gh/apache/superset/pull/42920?src=pr&el=tree&filepath=superset%2Fcommands%2Fimporters%2Fv1%2Futils.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvY29tbWFuZHMvaW1wb3J0ZXJzL3YxL3V0aWxzLnB5) | 0.00% | [13 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/42920?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   > :exclamation:  There is a different number of reports uploaded between BASE (a75665b) and HEAD (c13bed2). Click for more details.
   > 
   > <details><summary>HEAD has 19 uploads less than BASE</summary>
   >
   >| Flag | BASE (a75665b) | HEAD (c13bed2) |
   >|------|------|------|
   >|hive|3|1|
   >|python|17|2|
   >|presto|3|1|
   ></details>
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #42920      +/-   ##
   ==========================================
   - Coverage   66.41%   57.14%   -9.28%     
   ==========================================
     Files        2858     2858              
     Lines      161342   161343       +1     
     Branches    37162    37162              
   ==========================================
   - Hits       107161    92204   -14957     
   - Misses      52154    68286   +16132     
   + Partials     2027      853    -1174     
   ```
   
   | [Flag](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage ฮ” | |
   |---|---|---|
   | [hive](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `38.24% <0.00%> (-0.01%)` | :arrow_down: |
   | [mysql](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [postgres](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [presto](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `40.19% <0.00%> (-0.01%)` | :arrow_down: |
   | [python](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `40.25% <0.00%> (-18.97%)` | :arrow_down: |
   | [sqlite](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [unit](https://app.codecov.io/gh/apache/superset/pull/42920/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
   </details>
   
   [:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/superset/pull/42920?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org