You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2019/04/02 00:51:06 UTC

[GitHub] [incubator-superset] betodealmeida opened a new pull request #7198: Fix race condition when fetching results in SQL Lab

betodealmeida opened a new pull request #7198: Fix race condition when fetching results in SQL Lab
URL: https://github.com/apache/incubator-superset/pull/7198
 
 
   <!--
   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.
   -->
   ##### SUMMARY
   <!--- Describe the change below, including rationale and design decisions -->
   
   There's a race condition causing results to not be returned by SQL Lab. An eager `commit` saves the query object with its status set to `SUCCESS`, but only later it updates the `resultsKey`:
   
   ```python
       query.status = QueryStatus.SUCCESS
       session.commit()  # HERE
       ...
       if store_results:
           key = str(uuid.uuid4())
           ...
           query.results_key = key
       session.commit()
   ```
   
   I simply deleted the first commit, and now the results are always returned.
   
   I also fixed the `execute_sql_statement` function. It was taking an argument `return_results` which was not being used anywhere.
   
   ##### TEST PLAN
   <!--- What steps were taken to verify -->
   
   I ran queries in SQL Lab, and they returned 100% of the time. Before, occasionally they wouldn't return anything because `state` was set to `SUCCESS`, but the query object had no `resultsKeys` attribute.
   
   ##### ADDITIONAL INFORMATION
   <!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue --> 
   <!--- Check any relevant boxes with "x" -->
       [ ] Has associated issue:
       [ ] Changes UI
       [ ] Requires DB Migration. Confirm DB Migration upgrade and downgrade tested.
       [ ] Introduces new feature or API
       [ ] Removes existing feature or API
       [ ] Fixes bug
       [ ] Refactors code
       [ ] Adds test(s)
   
   ##### REVIEWERS
   
   @xtinec @DiggidyDave @khtruong @enricoberti 

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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