Bug 1351620
| Summary: | [RHEL-7] Unlink() is called on non-existent path for DELETE requests | |||
|---|---|---|---|---|
| Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Prashanth Pai <ppai> | |
| Component: | gluster-swift | Assignee: | Prashanth Pai <ppai> | |
| Status: | CLOSED ERRATA | QA Contact: | surabhi <sbhaloth> | |
| Severity: | low | Docs Contact: | ||
| Priority: | low | |||
| Version: | rhgs-3.1 | CC: | amukherj, rcyriac, rhinduja, rhs-bugs, thiago | |
| Target Milestone: | Development Freeze | |||
| Target Release: | RHGS 3.2.0 | |||
| Hardware: | All | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | swiftonfile-2.3.0-4.el7rhgs | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1378422 (view as bug list) | Environment: | ||
| Last Closed: | 2017-03-23 05:13: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: | ||||
| Bug Blocks: | 1351522, 1378422 | |||
|
Description
Prashanth Pai
2016-06-30 12:45:15 UTC
Upstream patch: http://review.gluster.org/#/c/14501/ Upstream change has been merged. Downstream changes have been submitted and merged. rhel7 - https://code.engineering.redhat.com/gerrit/#/c/85036/ rhel6 - https://code.engineering.redhat.com/gerrit/#/c/85055/ Verified When a DELETE is sent on a non-existent object , there was a unlink call which gluster.swift was making.
With the fix, when a DELETE is sent on a non-existent object , gluster swift doesn't call unlink.Tried with deleting multiple objects (10000)
curl -i httv1/AUTH_test/dir1/fake -X DELETE
strace -ff -p 11860,11883
[pid 11883] poll([{fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP}, {fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 2, 60000) = 1 ([{fd=4, revents=POLLIN}])
[pid 11883] accept(4, {sa_family=AF_INET, sin_port=htons(35514), sin_addr=inet_addr("127.0.0.1")}, [16]) = 5
[pid 11883] fcntl(5, F_GETFL) = 0x2 (flags O_RDWR)
[pid 11883] fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 11883] fcntl(5, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK)
[pid 11883] fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 11883] accept(4, 0x7ffda869aa90, [16]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 11883] recvfrom(5, "DELETE /test/0/AUTH_test/dir1/fa"..., 65536, 0, NULL, NULL) = 422
[pid 11883] getsockname(5, {sa_family=AF_INET, sin_port=htons(6010), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0
[pid 11883] lstat("/mnt/gluster-object/test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 11883] lstat("/mnt/gluster-object/test/..", {st_mode=S_IFDIR|0755, st_size=63, ...}) = 0
[pid 11883] getxattr("/mnt/gluster-object/test/dir1/fake", "user.swift.metadata", 0x0, 0) = -1 ENOENT (No such file or directory)
[pid 11883] sendto(5, "HTTP/1.1 404 Not Found\r\nContent-"..., 251, 0, NULL, 0) = 251
[pid 11883] shutdown(5, SHUT_RDWR) = 0
[pid 11883] close(5) = 0
[pid 11883] poll([{fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP}, {fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 2, 60000
Marking the BZ verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2017-0488.html |