<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }div.foxdiv20160511090629948222 { }body { font-size: 10.5pt; font-family: 'Microsoft YaHei UI'; color: rgb(0, 0, 0); line-height: 1.5; }</style>
</head>
<body>
<div><span></span>ok, i have added a github issue : </div>
<div><span style="font-family: ''; font-size: 10.5pt; line-height: 1.5; background-color: window;">https://github.com/sheepdog/sheepdog/issues/240</span></div>
<div><br>
</div>
<div>and i already kown that , user can force DELETE a file by add an http header "force:true" , and indeed it works fine .</div>
<div><br>
</div>
<div><span style="font-family: "" microsoftyaheiui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?="">/*<br>
 * Imaging a scenario:<br>
 *<br>
 * 1. Client A is uploading a large object which names 'elephant', it<br>
 *    only allocate meta-data in oalloc and is creating SD_OBJ_DATA files.<br>
 * 2. Client B send a DELETE request to remove object 'elephant', it<br>
 *    will remove all the backend files for 'elephant'.<br>
 *    At the same time, Client A doesn't know what happened because uploading<br>
 *    progress don't need to lock any vdi.<br>
 * 3. Client A return Create-object-success, but the real data have all been<br>
 *    removed.<br>
 *<br>
 * To avoid this scenario, we let DELETE operation do nothing but only return<br>
 * 'CONFLICT' when the object is 'incompleted'. And, users can send the DELETE<br>
 * request with a new header<font color="#ff0000"> 'Force: true'</font> which will remove 'incompleted'<br>
 * object forcely when users make sure that there isn't any uploading progress<br>
 * for this object.<br>
 */</span></div>
<div><span style="font-family: "" microsoftyaheiui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?=""><br>
</span></div>
<div><span style="font-family: "" microsoftyaheiui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?=""><br>
</span></div>
<div><br>
</div>
<hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span>
<div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt">
<div>郑晓川</div>
</div>
</span></div>
<blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;">
<div> </div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px">
<div><b>From:</b> <a href="mailto:mitake.hitoshi@gmail.com">Hitoshi Mitake</a></div>
<div><b>Date:</b> 2016-05-10 21:30</div>
<div><b>To:</b> <a href="mailto:zhengxiaochuan@jd.com">郑晓川</a></div>
<div><b>CC:</b> <a href="mailto:sheepdog-users@lists.wpkg.org">sheepdog-users</a></div>
<div><b>Subject:</b> Re: [sheepdog-users] about sheepdog object http storage</div>
</div>
</div>
<div>
<div class="FoxDiv20160511090629948222">
<div dir="ltr">Hi,
<div><br>
</div>
<div>Thanks for reporting the problem. I cannot answer it quickly because I'm on business travel. Could you add a github issue?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Hitoshi</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, May 9, 2016 at 11:26 AM, 郑晓川 <span dir="ltr"><<a href="mailto:zhengxiaochuan@jd.com" target="_blank">zhengxiaochuan@jd.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">
<div class="HOEnZb">
<div class="h5">
<div>
<div><span></span><br>
</div>
<div><span>HI all:<br>
<br>
I PUTed a film xxx.rmvb to sheepdog object http storage , failed 。<br>
<br>
nginx error.log:<br>
<br>
<font color="#ff0000">2016/05/09 10:23:16 [info] 8655#0: *42006 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: 10.8.65.42, server: obs, request: "PUT /v1/admin/jls/xxx.rmvb HTTP/1.0", upstream: "fastcgi://<a href="http://10.8.65.42:8008" target="_blank">10.8.65.42:8008</a>", host: "<a href="http://10.8.65.42:8888" target="_blank">10.8.65.42:8888</a>"</font><br>
<br>
my nginx conf :</span></div>
<div><span><span>        location / {<br>
            fastcgi_pass    <a href="http://10.8.65.42:8008" target="_blank">10.8.65.42:8008</a>;<br>
<br>
            fastcgi_connect_timeout 600s;<br>
            fastcgi_read_timeout 600s;<br>
            fastcgi_send_timeout 600s;<br>
<br>
<br>
            fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;<br>
            fastcgi_param   REQUEST_METHOD          $request_method;<br>
            fastcgi_param   CONTENT_LENGTH          $content_length;<br>
            fastcgi_param   HTTP_RANGE              $http_range;<br>
            fastcgi_param   DOCUMENT_URI            $document_uri;<br>
            fastcgi_param   REQUEST_URI             $request_uri;<br>
        }<br>
</span></span></div>
<div><br>
</div>
<div><span>sheep.log:<br>
<br>
May 09 10:23:18 ERROR [http 8273] onode_populate_extents(838) Failed to do_vdi_write data_vid: eec946, offset: 7800000, total: 58b7d771, ret: I/O error<br>
May 09 10:23:18 ERROR [http 8273] kv_create_object(1469) Failed to write data to onode xxx.rmvb<br>
May 09 10:23:18 INFO [http 8273] swift_handle_request(352) /v1/admin/jls/xxx.rmvb PUT, status = 500 Internal Server Error, data_length = 1488443249<br>
<br>
<br>
<br>
After this ,  GET or DELETE  all goes wrong , like this :<br>
<br>
[root@node-65-42 hss_storage]# http DELETE "<a href="http://127.0.0.1:8888/v1/admin/jls/xxx.rmvb" target="_blank">http://127.0.0.1:8888/v1/admin/jls/xxx.rmvb</a>"<br>
HTTP/1.1 409 Conflict<br>
Connection: keep-alive<br>
Content-Type: text/plain;<br>
Date: Mon, 09 May 2016 14:36:26 GMT<br>
Server: openresty/<a href="http://1.9.7.4" target="_blank">1.9.7.4</a><br>
Transfer-Encoding: chunked<br>
<br>
[root@node-65-42 hss_storage]# http DELETE "<a href="http://127.0.0.1:8888/v1/admin/jls/xxx.rmvb" target="_blank">http://127.0.0.1:8888/v1/admin/jls/xxx.rmvb</a>"<br>
HTTP/1.1 409 Conflict<br>
Connection: keep-alive<br>
Content-Type: text/plain;<br>
Date: Mon, 09 May 2016 14:36:58 GMT<br>
Server: openresty/<a href="http://1.9.7.4" target="_blank">1.9.7.4</a><br>
Transfer-Encoding: chunked<br>
<br>
[root@node-65-42 hss_storage]# http GET "<a href="http://127.0.0.1:8888/v1/admin/jls/xxx.rmvb" target="_blank">http://127.0.0.1:8888/v1/admin/jls/xxx.rmvb</a>"<br>
HTTP/1.1 206 Partial Content<br>
Connection: keep-alive<br>
Content-Length: 0<br>
Content-Type: text/plain;<br>
Date: Mon, 09 May 2016 14:39:38 GMT<br>
Server: openresty/<a href="http://1.9.7.4" target="_blank">1.9.7.4</a><br>
<br>
<br>
my question is :<br>
1、why did this happen , is the browser or  nginx or sheepdog problem ?</span></div>
<div><span>2、when it happend , how should i DELETE the file by force .</span></div>
<div><span><br>
</span></div>
<div><span>thanks a lot !</span></div>
<div><br>
</div>
<hr style="width:210px;min-height:1px" color="#b5c4df" size="1" align="left">
<div><span>
<div style="MARGIN:10px;FONT-FAMILY:verdana;FONT-SIZE:10pt">
<div>郑晓川</div>
</div>
</span></div>
</div>
</div>
</div>
<br>
--<br>
sheepdog-users mailing lists<br>
<a href="mailto:sheepdog-users@lists.wpkg.org">sheepdog-users@lists.wpkg.org</a><br>
<a href="https://lists.wpkg.org/mailman/listinfo/sheepdog-users" rel="noreferrer" target="_blank">https://lists.wpkg.org/mailman/listinfo/sheepdog-users</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</body>
</html>