From f0fc99c58901b85d098c9f9bb0514ec2fadf7d62 Mon Sep 17 00:00:00 2001 From: Benedikt Bartscher Date: Mon, 25 Nov 2024 00:15:20 +0100 Subject: [PATCH] fix: state size was not checked for dill --- reflex/state.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/reflex/state.py b/reflex/state.py index 349dc59e9..01ce5902b 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -2171,11 +2171,9 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): Returns: The serialized state. """ + payload = b"" try: - pickle_state = pickle.dumps((self._to_schema(), self)) - if environment.REFLEX_PERF_MODE.get() != PerformanceMode.OFF: - self._check_state_size(len(pickle_state)) - return pickle_state + payload = pickle.dumps((self._to_schema(), self)) except HANDLED_PICKLE_ERRORS as og_pickle_error: error = ( f"Failed to serialize state {self.get_full_name()} due to unpicklable object. " @@ -2184,7 +2182,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): try: import dill - return dill.dumps((self._to_schema(), self)) + payload = dill.dumps((self._to_schema(), self)) except ImportError: error += ( f"Pickle error: {og_pickle_error}. " @@ -2192,8 +2190,10 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): ) except HANDLED_PICKLE_ERRORS as ex: error += f"Dill was also unable to pickle the state: {ex}" - console.warn(error) - return b"" + console.warn(error) + if environment.REFLEX_PERF_MODE.get() != PerformanceMode.OFF: + self._check_state_size(len(payload)) + return payload @classmethod def _deserialize(