bmschow opened a new issue, #28044:
URL: https://github.com/apache/superset/issues/28044

   ### Bug description
   
   We are running Superset via helm chart (version 0.12.9) and running aurora 
postgres on AWS as the database backend.  In the UI we are able to successfully 
test a connection.  However, when we click "Connect" we receive a "Fatal 
Error."  When we check the pod, we get this stack trace:
   ```
   Traceback (most recent call last):                                           
                                                                                
                                                                            │
   │ superset   File "/app/superset/commands/database/create.py", line 99, in 
run                                                                             
                                                                                
         │
   │ superset     db.session.commit()                                           
                                                                                
                                                                                
       │
   │ superset   File "<string>", line 2, in commit                              
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1435, 
in commit                                                                       
                                                                  │
   │ superset     self._transaction.commit(_to_root=self.future)                
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 829, 
in commit                                                                       
                                                                   │
   │ superset     self._prepare_impl()                                          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 808, 
in _prepare_impl                                                                
                                                                   │
   │ superset     self.session.flush()                                          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3367, 
in flush                                                                        
                                                                  │
   │ superset     self._flush(objects)                                          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3506, 
in _flush                                                                       
                                                                  │
   │ superset     with util.safe_reraise():                                     
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 
70, in __exit__                                                                 
                                                                   │
   │ superset     compat.raise_(                                                
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 207, 
in raise_                                                                       
                                                                   │
   │ superset     raise exception                                               
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3467, 
in _flush                                                                       
                                                                  │
   │ superset     flush_context.execute()                                       
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/unitofwork.py", line 
456, in execute                                                                 
                                                                     │
   │ superset     rec.execute(self)                                             
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/unitofwork.py", line 
630, in execute                                                                 
                                                                     │
   │ superset     util.preloaded.orm_persistence.save_obj(                      
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 
245, in save_obj                                                                
                                                                    │
   │ superset     _emit_insert_statements(                                      
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 
1238, in _emit_insert_statements                                                
                                                                    │
   │ superset     result = connection._execute_20(                              
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1631, 
in _execute_20                                                                  
                                                                  │
   │ superset     return meth(self, args_10style, kwargs_10style, 
execution_options)                                                              
                                                                                
                     │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 325, 
in _execute_on_connection                                                       
                                                                  │
   │ superset     return connection._execute_clauseelement(                     
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1498, 
in _execute_clauseelement                                                       
                                                                  │
   │ superset     ret = self._execute_context(                                  
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1725, 
in _execute_context                                                             
                                                                  │
   │ superset     self._handle_dbapi_exception(                                 
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2043, 
in _handle_dbapi_exception                                                      
                                                                  │
   │ superset     util.raise_(                                                  
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 207, 
in raise_                                                                       
                                                                   │
   │ superset     raise exception                                               
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1719, 
in _execute_context                                                             
                                                                  │
   │ superset     context = constructor(                                        
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
1091, in _init_compiled                                                         
                                                                     │
   │ superset     param = {                                                     
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
1092, in <dictcomp>                                                             
                                                                     │
   │ superset     key: processors[key](compiled_params[key])                    
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/type_api.py", line 
1631, in process                                                                
                                                                       │
   │ superset     return impl_processor(process_param(value, dialect))          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 471, in process_bind_param                                                
                                                     │
   │ superset     value = super().process_bind_param(value=value, 
dialect=dialect)                                                                
                                                                                
                     │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 397, in process_bind_param                                                
                                                     │
   │ superset     self._update_key()                                            
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 392, in _update_key                                                       
                                                     │
   │ superset     self.engine._update_key(key)                                  
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 52, in _update_key                                                        
                                                     │
   │ superset     digest.update(key)                                            
                                                                                
                                                                                
       │
   │ superset sqlalchemy.exc.StatementError: (builtins.TypeError) argument 
'data': a bytes-like object is required, not 'tuple'                            
                                                                                
            │
   │ superset [SQL: INSERT INTO dbs (uuid, created_on, changed_on, 
verbose_name, database_name, sqlalchemy_uri, password, cache_timeout, 
select_as_create_table_as, expose_in_sqllab, configuration_method, 
allow_run_async, allow_file_upload, allow_ │
   │ superset [parameters: [{'configuration_method': 
<ConfigurationMethod.DYNAMIC_FORM: 'dynamic_form'>, 'password': [redacted], 
'sqlalchemy_uri': 'postgresql+psycop ... (213 characters truncated) ... 
ows_virtual_table_explore":true}' │
   │ superset                                    
   ```
   
   We have gotten this in helm chart installs locally as well (without AWS 
hosted dbs) and have confirmed that the user can insert into the `dbs` table.  
This behavior has been seen in attempting to create connections to both 
Redshift and Postgres databases.
   
   ### How to reproduce the bug
   
   Go to "Settings" -> "Database Connections" in the UI, then click on 
"+Database".  
   
   Fill out the form to connect to a database, test the connection then press 
"Connect".  This is where the error pops up.
   
   ### Screenshots/recordings
   
   _No response_
   
   ### Superset version
   
   master / latest-dev
   
   ### Python version
   
   3.9
   
   ### Node version
   
   16
   
   ### Browser
   
   Chrome
   
   ### Additional context
   
   Traceback (most recent call last):                                           
                                                                                
                                                                            │
   │ superset   File "/app/superset/commands/database/create.py", line 99, in 
run                                                                             
                                                                                
         │
   │ superset     db.session.commit()                                           
                                                                                
                                                                                
       │
   │ superset   File "<string>", line 2, in commit                              
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1435, 
in commit                                                                       
                                                                  │
   │ superset     self._transaction.commit(_to_root=self.future)                
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 829, 
in commit                                                                       
                                                                   │
   │ superset     self._prepare_impl()                                          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 808, 
in _prepare_impl                                                                
                                                                   │
   │ superset     self.session.flush()                                          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3367, 
in flush                                                                        
                                                                  │
   │ superset     self._flush(objects)                                          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3506, 
in _flush                                                                       
                                                                  │
   │ superset     with util.safe_reraise():                                     
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 
70, in __exit__                                                                 
                                                                   │
   │ superset     compat.raise_(                                                
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 207, 
in raise_                                                                       
                                                                   │
   │ superset     raise exception                                               
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3467, 
in _flush                                                                       
                                                                  │
   │ superset     flush_context.execute()                                       
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/unitofwork.py", line 
456, in execute                                                                 
                                                                     │
   │ superset     rec.execute(self)                                             
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/unitofwork.py", line 
630, in execute                                                                 
                                                                     │
   │ superset     util.preloaded.orm_persistence.save_obj(                      
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 
245, in save_obj                                                                
                                                                    │
   │ superset     _emit_insert_statements(                                      
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 
1238, in _emit_insert_statements                                                
                                                                    │
   │ superset     result = connection._execute_20(                              
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1631, 
in _execute_20                                                                  
                                                                  │
   │ superset     return meth(self, args_10style, kwargs_10style, 
execution_options)                                                              
                                                                                
                     │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 325, 
in _execute_on_connection                                                       
                                                                  │
   │ superset     return connection._execute_clauseelement(                     
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1498, 
in _execute_clauseelement                                                       
                                                                  │
   │ superset     ret = self._execute_context(                                  
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1725, 
in _execute_context                                                             
                                                                  │
   │ superset     self._handle_dbapi_exception(                                 
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2043, 
in _handle_dbapi_exception                                                      
                                                                  │
   │ superset     util.raise_(                                                  
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 207, 
in raise_                                                                       
                                                                   │
   │ superset     raise exception                                               
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1719, 
in _execute_context                                                             
                                                                  │
   │ superset     context = constructor(                                        
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
1091, in _init_compiled                                                         
                                                                     │
   │ superset     param = {                                                     
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
1092, in <dictcomp>                                                             
                                                                     │
   │ superset     key: processors[key](compiled_params[key])                    
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/type_api.py", line 
1631, in process                                                                
                                                                       │
   │ superset     return impl_processor(process_param(value, dialect))          
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 471, in process_bind_param                                                
                                                     │
   │ superset     value = super().process_bind_param(value=value, 
dialect=dialect)                                                                
                                                                                
                     │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 397, in process_bind_param                                                
                                                     │
   │ superset     self._update_key()                                            
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 392, in _update_key                                                       
                                                     │
   │ superset     self.engine._update_key(key)                                  
                                                                                
                                                                                
       │
   │ superset   File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py",
 line 52, in _update_key                                                        
                                                     │
   │ superset     digest.update(key)                                            
                                                                                
                                                                                
       │
   │ superset sqlalchemy.exc.StatementError: (builtins.TypeError) argument 
'data': a bytes-like object is required, not 'tuple'                            
                                                                                
            │
   │ superset [SQL: INSERT INTO dbs (uuid, created_on, changed_on, 
verbose_name, database_name, sqlalchemy_uri, password, cache_timeout, 
select_as_create_table_as, expose_in_sqllab, configuration_method, 
allow_run_async, allow_file_upload, allow_ │
   │ superset [parameters: [{'configuration_method': 
<ConfigurationMethod.DYNAMIC_FORM: 'dynamic_form'>, 'password': 
'jcDkmtmZw7KAo1b6ZoF7', 'sqlalchemy_uri': 'postgresql+psycop ... (213 
characters truncated) ... ows_virtual_table_explore":true}' │
   │ superset                                    
   
   ### Checklist
   
   - [X] I have searched Superset docs and Slack and didn't find a solution to 
my problem.
   - [X] I have searched the GitHub issue tracker and didn't find a similar bug 
report.
   - [X] I have checked Superset's logs for errors and if I found a relevant 
Python stacktrace, I included it here as text in the "additional context" 
section.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to