Reviewed:  https://review.openstack.org/571174
Committed: 
https://git.openstack.org/cgit/openstack/horizon/commit/?id=b84da5e84ef92e653084faed402bcac6271f1dfc
Submitter: Zuul
Branch:    master

commit b84da5e84ef92e653084faed402bcac6271f1dfc
Author: Michal Arbet <[email protected]>
Date:   Wed May 30 10:56:47 2018 +0000

    Fix issue with uploading image to glance on Python3
    
    It was unable to upload image when horizon was running on python3,
    there was a problem with closed file in new thread. This commit is
    fixing this issue with added if clause whether horizon running on
    python2 or python3 and correctly call close_called on file when
    running on python3.
    
    Change-Id: Ice178f6269ac527ba62b26d86976b5336987c922
    Closes-Bug: #1773935


** Changed in: horizon
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1773935

Title:
  Unable to upload image via dashboard

Status in OpenStack Dashboard (Horizon):
  Fix Released

Bug description:
  It is unable to upload image via Horizon Dashboard.
  Admin -> compute -> images -> Create new Image 

  Here is error log from apache:

   Failed to remove temporary image file /tmp/tmpx0sza19m.upload ([Errno 2] No 
such file or directory: '/tmp/tmpx0sza19m.upload')     
   Unhandled exception in thread started by <function 
image_create.<locals>.upload at 0x7f651ac7bb70>                                 
   Traceback (most recent call last):                                           
                                                      
     File "/usr/lib/python3/dist-packages/openstack_dashboard/api/glance.py", 
line 465, in upload                                     
       return glanceclient(request).images.upload(image.id, data)               
                                                      
     File "/usr/lib/python3/dist-packages/glanceclient/common/utils.py", line 
545, in inner                                           
       return RequestIdProxy(wrapped(*args, **kwargs))                          
                                                      
     File "/usr/lib/python3/dist-packages/glanceclient/v2/images.py", line 238, 
in upload                                             
       return (resp, body), resp                                                
                                                      
     File "/usr/lib/python3/dist-packages/glanceclient/common/http.py", line 
318, in put                                              
       class SessionClient(adapter.Adapter, _BaseHTTPClient):                   
                                                      
     File "/usr/lib/python3/dist-packages/glanceclient/common/http.py", line 
271, in _request                                         
       {'url': conn_url, 'e': e})                                               
                                                      
     File "/usr/lib/python3/dist-packages/requests/sessions.py", line 508, in 
request                                                 
       resp = self.send(prep, **send_kwargs)                                    
                                                      
     File "/usr/lib/python3/dist-packages/requests/sessions.py", line 618, in 
send                                                    
       r = adapter.send(request, **kwargs)                                      
                                                      
     File "/usr/lib/python3/dist-packages/requests/adapters.py", line 460, in 
send                                                    
       for i in request.body:                                                   
                                                      
     File "/usr/lib/python3/dist-packages/glanceclient/common/http.py", line 
92, in _chunk_body                                       
       # a file-like object                                                     
                                                      
     File "/usr/lib/python3.5/tempfile.py", line 622, in func_wrapper           
                                                      
       return func(*args, **kwargs)                                             
                                                      
   ValueError: read of closed file   

  I tried replicate the issue on devstack/queens but it is working there ... ( 
i think the issue is python3 related , so on devstack it is working because 
devstack is running under py2.7 )
  I'm running horizon and also glance on python3 , installed from debian 
packages which are now supporting python3.

  dpkg -l | grep horizon

  ii  python3-django-horizon               3:13.0.1-1             all
  Django module providing web interaction with OpenStack

  dpkg -l | grep glance

  ii  glance                               2:16.0.1-2+deb9ut1
  all          OpenStack Image Registry and Delivery Service - Daemons

  
  After upload image via dashboard , image is in queued state forewer ..

  If you need some more findings from me ... Logs, tcpdumps , etc ...
  let me know ..

  Thanks

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1773935/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to