Files
superset2/tests/integration_tests/models/__init__.py
Maxime Beauchemin f57b5e03bb fix: improve temporarily_disconnect_db thread safety and reliability
The original implementation had critical threading issues:
- Global session reassignment (db.session = db.create_scoped_session())
  was catastrophic in multi-threaded environments
- Unnecessary connection state management fought Flask-SQLAlchemy
- Complex logic that was difficult to verify

This improved implementation:
- Only affects current thread (thread-safe via scoped_session)
- Works with NullPool to actually close connections
- Never mutates global state
- Lets Flask-SQLAlchemy handle session recreation automatically
- Comprehensive unit tests to verify behavior

The fix maintains the same public API and feature flag behavior
while eliminating race conditions and session corruption issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 22:14:57 -07:00

17 lines
785 B
Python

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.