Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 923228

Summary: 3.4 Alpha 2 Breaks swift file posting
Product: [Community] GlusterFS Reporter: Alex Wheeler <wheelear>
Component: object-storageAssignee: Kaleb KEITHLEY <kkeithle>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 3.4.0-alphaCC: gluster-bugs, jclift, jdarcy, kkeithle, wheelear
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: glusterfs-3.4.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-24 17:36:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 948041    
Bug Blocks: 918917    
Attachments:
Description Flags
This patch works-around this bug.
none
This patch works-around this bug, now fixes a delete problem.
none
This patch works-around this bug, now fixes a delete problem. none

Description Alex Wheeler 2013-03-19 13:30:57 UTC
Description of problem:
When installing the GlusterFS 3.4 Alpha 2 RPMs on a CentOS system, the object-storage file posting functionality is broken.

Version-Release number of selected component (if applicable):
3.4 Alpha 2

How reproducible:
100%

Steps to Reproduce:
1. Install all of the 3.4 Alpha 2 RPMs from: http://download.gluster.org/pub/gluster/glusterfs/qa-releases/3.4.0alpha/
2. Setup swift (I'm using tempauth)
3. Try to PUT a file.
  
Actual results:
The following error is logged, and a 500-class error is returned to the client:

Mar 16 16:30:40 r3master object-server ERROR __call__ error with PUT /admin/0/AUTH_admin/27493e6c3d7a40bf98eae94e4be20d00_1/e082450941664335a0ac42ffddb623b5 : #012Traceback (most recent call last):#012  File "/usr/lib/python2.6/site-packages/swift/obj/server.py", line 892, in __call__#012    res = method(req)#012  File "/usr/lib/python2.6/site-packages/swift/common/utils.py", line 1350, in wrapped#012    return func(*a, **kw)#012  File "/usr/lib/python2.6/site-packages/swift/obj/server.py", line 643, in PUT#012    file.put(fd, tmppath, metadata)#012  File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__#012    self.gen.throw(type, value, traceback)#012  File "/usr/lib/python2.6/site-packages/gluster/swift/common/DiskFile.py", line 331, in mkstemp#012    yield fd#012  File "/usr/lib/python2.6/site-packages/swift/obj/server.py", line 591, in PUT#012    with file.mkstemp() as (fd, tmppath):#012TypeError: 'int' object is not iterable (txn: tx0f10da8ee3554c9f8606360057eeb4c8)


Expected results:
Successful response code to the client, and the file posted to the Gluster volume

Additional info:
This appears to be due to the fact that this line:
https://github.com/openstack/swift/blob/1.7.4/swift/obj/server.py#L550
Is calling this function:
https://github.com/gluster/glusterfs/blob/master/ufo/gluster/swift/common/DiskFile.py#L305
But expecting 2 parameters to be yielded (fd, and tmppath) rather than the one yielded on line 327.

This appears to be the correct behavior for swift 1.7.6, as seen here:
https://github.com/openstack/swift/blob/1.7.6/swift/obj/server.py#L616

However, swift 1.7.4 is what is being built into 3.4 Alpha 2.

Comment 1 Junaid 2013-03-25 07:01:08 UTC

*** This bug has been marked as a duplicate of bug 923580 ***

Comment 2 Justin Clift 2013-03-26 14:06:30 UTC
Re-opened after looking into this a bit on IRC with kkeithley, awheeler, and johnmark.

kkeithley has an idea what the cause may be, but is overloaded.

Whoever picks this up should probably ping kkeithley for this thoughts on it.

Comment 3 Alex Wheeler 2013-03-26 16:22:49 UTC
This bug still exists in the current master git, using RPMs built by following:
http://www.gluster.org/community/documentation/index.php/CompilingRPMS

Comment 4 Justin Clift 2013-03-26 16:24:16 UTC
Raised priority and severity, as this bug is semi-blocker-ish.

Comment 5 Alex Wheeler 2013-03-26 17:59:52 UTC
Created attachment 716665 [details]
This patch works-around this bug.

This is a work-around, and reverts some changes made here:
https://github.com/gluster/glusterfs/commit/1338ad168a4a468636909322dace9dc9f750dd13

Comment 6 Alex Wheeler 2013-03-26 18:25:08 UTC
Created attachment 716666 [details]
This patch works-around this bug, now fixes a delete problem.

Comment 7 Alex Wheeler 2013-03-26 18:33:48 UTC
Created attachment 716667 [details]
This patch works-around this bug, now fixes a delete problem.

Comment 8 Vijay Bellur 2013-03-27 13:35:39 UTC
REVIEW: http://review.gluster.org/4735 (object-storage: swift file upload (post)) posted (#1) for review on release-3.4 by Kaleb KEITHLEY (kkeithle)