Skip to content

fix: Remove recursive repr call#29314

Merged
villebro merged 2 commits into
apache:masterfrom
jessie-ross:fix/recursive-repr
Jun 21, 2024
Merged

fix: Remove recursive repr call#29314
villebro merged 2 commits into
apache:masterfrom
jessie-ross:fix/recursive-repr

Conversation

@jessie-ross
Copy link
Copy Markdown
Contributor

@jessie-ross jessie-ross commented Jun 20, 2024

SUMMARY

This repr call is recursive:

  File \"/opt/superset/lib/python3.11/site-packages/superset/commands/exceptions.py\", line 31, in __repr__
    return repr(self)
           ^^^^^^^^^^
  File \"/opt/superset/lib/python3.11/site-packages/superset/commands/exceptions.py\", line 31, in __repr__
    return repr(self)
           ^^^^^^^^^^
  File \"/opt/superset/lib/python3.11/site-packages/superset/commands/exceptions.py\", line 31, in __repr__
    return repr(self)
           ^^^^^^^^^^
  [Previous line repeated 321 more times]"}

Causing the error not to be printed.

TESTING INSTRUCTIONS

Demonstration:

>>> class Parent():
...     def __init__(self, x):
...         self.x = x
...     def __repr__(self):
...         return 'Parent: ' + self.x
>>> Parent('0')
Parent: 0

>>> class Child(Parent):
...     def __repr__(self):
...         return repr(self)
>>> Child('1')
Traceback (most recent call last):
  File "<stdin>", line 3, in __repr__
  File "<stdin>", line 3, in __repr__
  File "<stdin>", line 3, in __repr__
  [Previous line repeated 2495 more times]
RecursionError: maximum recursion depth exceeded


>>> class Child(Parent):
...     def __repr__(self):
...         return super().__repr__()
>>> Child('2')
Parent: 2

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@@ -28,7 +28,7 @@ class CommandException(SupersetException):
def __repr__(self) -> str:
if self._exception:
return repr(self._exception)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this line also be updated?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't recursive, as it is calling repr on a separate object

@villebro
Copy link
Copy Markdown
Member

@jessie-ross thanks for the illustrative example in the description! ❤️ LGTM

@villebro villebro merged commit 9444c6b into apache:master Jun 21, 2024
@michael-s-molina michael-s-molina added the v4.0 Label added by the release manager to track PRs to be included in the 4.0 branch label Jun 21, 2024
michael-s-molina pushed a commit that referenced this pull request Jun 26, 2024
@mistercrunch mistercrunch added 🍒 4.0.2 Cherry-picked to 4.0.2 🏷️ bot A label used by `supersetbot` to keep track of which PR where auto-tagged with release labels labels Jul 24, 2024
eschutho pushed a commit that referenced this pull request Jul 24, 2024
@mistercrunch mistercrunch added the 🚢 4.1.0 First shipped in 4.1.0 label Nov 27, 2024
ratuldawar11 pushed a commit to grofers/superset that referenced this pull request Apr 14, 2026
* fix(permalink): adding anchor to dashboard permalink generation (apache#28744)

* fix: filters not updating with force update when caching is enabled (apache#29291)

(cherry picked from commit 527f1d2)

* fix(sqllab): invalid empty state on switch tab (apache#29278)

* fix(metastore-cache): prune before add (apache#29301)

(cherry picked from commit 172ddb4)

* fix: Remove recursive repr call (apache#29314)

(cherry picked from commit 9444c6b)

* fix: Cannot delete empty column inside a tab using the dashboard editor (apache#29346)

(cherry picked from commit ee52277)

* fix(explore): restored hidden field values has discarded (apache#29349)

(cherry picked from commit 160cece)

* chore: Rename Totals to Summary in table chart (apache#29360)

* fix(revert 27883): Excess padding in horizontal Bar charts (apache#29345)

(cherry picked from commit 708afb7)

* fix(explore): don't respect y-axis formatting (apache#29367)

* fix: adds the ability to disallow SQL functions per engine (apache#28639)

* chore: Adds 4.0.2 RC2 data to CHANGELOG.md

* fixes

* frontend fixes

* fix: cache api

---------

Co-authored-by: Jack <41238731+fisjac@users.noreply.github.com>
Co-authored-by: ka-weihe <k@weihe.dk>
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
Co-authored-by: Jessie R <j@scjr.me>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
Co-authored-by: Daniel Vaz Gaspar <danielvazgaspar@gmail.com>
Co-authored-by: Michael S. Molina <michael.s.molina@gmail.com>
qfcwell pushed a commit to qfcwell/superset that referenced this pull request May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🏷️ bot A label used by `supersetbot` to keep track of which PR where auto-tagged with release labels size/XS v4.0 Label added by the release manager to track PRs to be included in the 4.0 branch 🍒 4.0.2 Cherry-picked to 4.0.2 🚢 4.1.0 First shipped in 4.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants