[ 
https://issues.apache.org/jira/browse/HADOOP-14028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15847095#comment-15847095
 ] 

Steve Loughran commented on HADOOP-14028:
-----------------------------------------

log of the multple disk block put, no stream closed events, 
{code}
2017-01-31 16:36:50,459 [JUnit-test_010_CreateHugeFile] INFO  
scale.AbstractSTestS3AHugeFiles 
(AbstractSTestS3AHugeFiles.java:test_010_CreateHugeFile(188)) - [100%] Buffered 
10.00 MB out of 10 MB; PUT 0 bytes (8388608 pending) in 2 operations (1 
active); elapsedTime=0.21s; write to buffer bandwidth=48.40 MB/s
2017-01-31 16:36:50,459 [JUnit-test_010_CreateHugeFile] INFO  
scale.AbstractSTestS3AHugeFiles 
(AbstractSTestS3AHugeFiles.java:test_010_CreateHugeFile(203)) - Closing stream 
org.apache.hadoop.fs.FSDataOutputStream@7067fa8a
2017-01-31 16:36:50,460 [JUnit-test_010_CreateHugeFile] INFO  
scale.AbstractSTestS3AHugeFiles 
(AbstractSTestS3AHugeFiles.java:test_010_CreateHugeFile(204)) - Statistics : 
OutputStreamStatistics{blocksSubmitted=1, blocksInQueue=0, blocksActive=1, 
blockUploadsCompleted=0, blockUploadsFailed=0, bytesPendingUpload=8388608, 
bytesUploaded=0, blocksAllocated=2, blocksReleased=0, 
blocksActivelyAllocated=2, exceptionsInMultipartFinalize=0, transferDuration=0 
ms, queueDuration=3 ms, averageQueueTime=3 ms, totalUploadDuration=3 ms, 
effectiveBandwidth=0.0 bytes/s}
2017-01-31 16:36:50,460 [JUnit-test_010_CreateHugeFile] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:close(329)) - 
S3ABlockOutputStream{{bucket=hwdev-steve-ireland-new, 
key='tests3ascale/scale/hugefile'}, blockSize=8388608, 
activeBlock=FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Writing, dataSize=2097152, limit=8388608}}: Closing block #2: current 
block= FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Writing, dataSize=2097152, limit=8388608}
2017-01-31 16:36:50,460 [JUnit-test_010_CreateHugeFile] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:uploadCurrentBlock(298)) - 
Writing block # 2
2017-01-31 16:36:50,460 [JUnit-test_010_CreateHugeFile] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:uploadBlockAsync(469)) - 
Queueing upload of FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Writing, dataSize=2097152, limit=8388608}
2017-01-31 16:36:50,460 [JUnit-test_010_CreateHugeFile] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:startUpload(260)) - Start datablock[2] upload
2017-01-31 16:36:50,460 [JUnit-test_010_CreateHugeFile] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:enterState(167)) - FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Writing, dataSize=2097152, limit=8388608}: entering state Upload
2017-01-31 16:36:50,461 [JUnit-test_010_CreateHugeFile] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:clearActiveBlock(209)) - 
Clearing active block
2017-01-31 16:36:50,461 [s3a-transfer-shared-pool1-t3] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:call(490)) - Uploading part 
2 for id 
'i8AV2cnBFI5JymBdObYinUZh9Fl.JF.DN9w91B9UtOq08Y02Jj1W3uNGyBYLUg5VmNscz3xzMr5naAh6R.O.Ew--'
2017-01-31 16:36:50,461 [JUnit-test_010_CreateHugeFile] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:waitForAllPartUploads(511)) 
- Waiting for 2 uploads to complete
2017-01-31 16:36:50,462 [s3a-transfer-shared-pool1-t3] DEBUG amazonaws.request 
(AmazonHttpClient.java:executeOneRequest(1046)) - Sending Request: PUT 
https://hwdev-steve-ireland-new.s3-eu-west-1.amazonaws.com 
/tests3ascale/scale/hugefile Parameters: 
({"uploadId":["i8AV2cnBFI5JymBdObYinUZh9Fl.JF.DN9w91B9UtOq08Y02Jj1W3uNGyBYLUg5VmNscz3xzMr5naAh6R.O.Ew--"],"partNumber":["2"]}Headers:
 (User-Agent: STestS3AHugeFileCreate, Hadoop 2.9.0-SNAPSHOT, 
aws-sdk-java/1.11.45 Mac_OS_X/10.12.2 
Java_HotSpot(TM)_64-Bit_Server_VM/25.102-b14/1.8.0_102, amz-sdk-invocation-id: 
94996caa-80e5-a609-d1e8-edf313bc06a2, Content-Length: 2097152, Content-Type: 
application/octet-stream, ) 
2017-01-31 16:36:50,462 [s3a-transfer-shared-pool1-t3] DEBUG auth.AWS4Signer 
(CommonsLog.java:debug(33)) - AWS4 Canonical Request: '"PUT
/tests3ascale/scale/hugefile
partNumber=2&uploadId=i8AV2cnBFI5JymBdObYinUZh9Fl.JF.DN9w91B9UtOq08Y02Jj1W3uNGyBYLUg5VmNscz3xzMr5naAh6R.O.Ew--
amz-sdk-invocation-id:94996caa-80e5-a609-d1e8-edf313bc06a2
amz-sdk-retry:0/0/500
content-length:2097152
content-type:application/octet-stream
host:hwdev-steve-ireland-new.s3-eu-west-1.amazonaws.com
user-agent:STestS3AHugeFileCreate, Hadoop 2.9.0-SNAPSHOT, aws-sdk-java/1.11.45 
Mac_OS_X/10.12.2 Java_HotSpot(TM)_64-Bit_Server_VM/25.102-b14/1.8.0_102
x-amz-content-sha256:UNSIGNED-PAYLOAD
x-amz-date:20170131T163650Z

amz-sdk-invocation-id;amz-sdk-retry;content-length;content-type;host;user-agent;x-amz-content-sha256;x-amz-date
UNSIGNED-PAYLOAD"
2017-01-31 16:36:50,463 [s3a-transfer-shared-pool1-t3] DEBUG auth.AWS4Signer 
(CommonsLog.java:debug(33)) - AWS4 String to Sign: '"AWS4-HMAC-SHA256
20170131T163650Z
20170131/eu-west-1/s3/aws4_request
df85cf8cefd073de4a259d0eb4a5d22242ede33b3b402ccf73e7a43c81ac9f31"
2017-01-31 16:36:53,370 [s3a-transfer-shared-pool1-t3] DEBUG amazonaws.request 
(AwsResponseHandlerAdapter.java:handle(87)) - Received successful response: 
200, AWS Request ID: 1B4A1673E51E1FE9
2017-01-31 16:36:53,370 [s3a-transfer-shared-pool1-t3] DEBUG 
amazonaws.requestId (AwsResponseHandlerAdapter.java:logHeaderRequestId(136)) - 
x-amzn-RequestId: not available
2017-01-31 16:36:53,370 [s3a-transfer-shared-pool1-t3] DEBUG 
amazonaws.requestId (AwsResponseHandlerAdapter.java:logResponseRequestId(156)) 
- AWS Request ID: 1B4A1673E51E1FE9
2017-01-31 16:36:53,372 [s3a-transfer-shared-pool1-t3] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:call(494)) - Completed 
upload of FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Upload, dataSize=2097152, limit=8388608}
2017-01-31 16:36:53,372 [s3a-transfer-shared-pool1-t3] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:call(495)) - Stream 
statistics of OutputStreamStatistics{blocksSubmitted=2, blocksInQueue=0, 
blocksActive=1, blockUploadsCompleted=1, blockUploadsFailed=0, 
bytesPendingUpload=5242880, bytesUploaded=5242880, blocksAllocated=2, 
blocksReleased=0, blocksActivelyAllocated=2, exceptionsInMultipartFinalize=0, 
transferDuration=2909 ms, queueDuration=4 ms, averageQueueTime=2 ms, 
totalUploadDuration=2913 ms, effectiveBandwidth=1799821.4898729832 bytes/s}
2017-01-31 16:36:53,372 [s3a-transfer-shared-pool1-t3] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:enterState(167)) - FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Upload, dataSize=2097152, limit=8388608}: entering state Closed
2017-01-31 16:36:53,372 [s3a-transfer-shared-pool1-t3] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:close(282)) - Closed FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Closed, dataSize=2097152, limit=8388608}
2017-01-31 16:36:53,372 [s3a-transfer-shared-pool1-t3] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:innerClose(811)) - Closing FileBlock{index=2, 
destFile=target/build/test/s3a/s3ablock-0002-2667023026802684004.tmp, 
state=Closed, dataSize=2097152, limit=8388608}
2017-01-31 16:36:57,131 [s3a-transfer-shared-pool1-t2] DEBUG amazonaws.request 
(AwsResponseHandlerAdapter.java:handle(87)) - Received successful response: 
200, AWS Request ID: 9D1707B157420F81
2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG 
amazonaws.requestId (AwsResponseHandlerAdapter.java:logHeaderRequestId(136)) - 
x-amzn-RequestId: not available
2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG 
amazonaws.requestId (AwsResponseHandlerAdapter.java:logResponseRequestId(156)) 
- AWS Request ID: 9D1707B157420F81
2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:call(494)) - Completed 
upload of FileBlock{index=1, 
destFile=target/build/test/s3a/s3ablock-0001-8866456036483591474.tmp, 
state=Upload, dataSize=8388608, limit=8388608}
2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:call(495)) - Stream 
statistics of OutputStreamStatistics{blocksSubmitted=2, blocksInQueue=0, 
blocksActive=0, blockUploadsCompleted=2, blockUploadsFailed=0, 
bytesPendingUpload=0, bytesUploaded=10485760, blocksAllocated=2, 
blocksReleased=0, blocksActivelyAllocated=2, exceptionsInMultipartFinalize=0, 
transferDuration=9587 ms, queueDuration=4 ms, averageQueueTime=2 ms, 
totalUploadDuration=9591 ms, effectiveBandwidth=1093291.6275675113 bytes/s}
2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:enterState(167)) - FileBlock{index=1, 
destFile=target/build/test/s3a/s3ablock-0001-8866456036483591474.tmp, 
state=Upload, dataSize=8388608, limit=8388608}: entering state Closed
2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:close(282)) - Closed FileBlock{index=1, 
destFile=target/build/test/s3a/s3ablock-0001-8866456036483591474.tmp, 
state=Closed, dataSize=8388608, limit=8388608}

// ** This is where the owner block is being closed **

2017-01-31 16:36:57,132 [s3a-transfer-shared-pool1-t2] DEBUG s3a.S3ADataBlocks 
(S3ADataBlocks.java:innerClose(811)) - Closing FileBlock{index=1, 
destFile=target/build/test/s3a/s3ablock-0001-8866456036483591474.tmp, 
state=Closed, dataSize=8388608, limit=8388608}
2017-01-31 16:36:57,133 [JUnit-test_010_CreateHugeFile] DEBUG 
s3a.S3ABlockOutputStream (S3ABlockOutputStream.java:complete(550)) - Completing 
multi-part upload for key 'tests3ascale/scale/hugefile', id 
'i8AV2cnBFI5JymBdObYinUZh9Fl.JF.DN9w91B9UtOq08Y02Jj1W3uNGyBYLUg5VmNscz3xzMr5naAh6R.O.Ew--'
 with 2 partitions 
2017-01-31 16:36:57,135 [JUnit-test_010_CreateHugeFile] DEBUG amazonaws.request 
(AmazonHttpClient.java:executeOneRequest(1046)) - Sending Request: POST 
https://hwdev-steve-ireland-new.s3-eu-west-1.amazonaws.com 
/tests3ascale/scale/hugefile Parameters: 
({"uploadId":["i8AV2cnBFI5JymBdObYinUZh9Fl.JF.DN9w91B9UtOq08Y02Jj1W3uNGyBYLUg5VmNscz3xzMr5naAh6R.O.Ew--"]}Headers:
 (User-Agent: STestS3AHugeFileCreate, Hadoop 2.9.0-SNAPSHOT, 
aws-sdk-java/1.11.45 Mac_OS_X/10.12.2 
Java_HotSpot(TM)_64-Bit_Server_VM/25.102-b14/1.8.0_102, amz-sdk-invocation-id: 
aa9cda11-857e-fbe5-86b4-05640be1e7b0, Content-Length: 219, Content-Type: 
application/xml, ) 
2017-01-31 16:36:57,136 [JUnit-test_010_CreateHugeFile] DEBUG auth.AWS4Signer 
(CommonsLog.java:debug(33)) - AWS4 Canonical Request: '"POST
/tests3ascale/scale/hugefile
{code}

> S3A block output streams don't clear temporary files
> ----------------------------------------------------
>
>                 Key: HADOOP-14028
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14028
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs/s3
>    Affects Versions: 3.0.0-alpha2
>         Environment: JDK 8 + ORC 1.3.0 + hadoop-aws 3.0.0-alpha2
>            Reporter: Seth Fitzsimmons
>            Assignee: Steve Loughran
>
> I have `fs.s3a.fast.upload` enabled with 3.0.0-alpha2 (it's exactly what I 
> was looking for after running into the same OOM problems) and don't see it 
> cleaning up the disk-cached blocks.
> I'm generating a ~50GB file on an instance with ~6GB free when the process 
> starts. My expectation is that local copies of the blocks would be deleted 
> after those parts finish uploading, but I'm seeing more than 15 blocks in 
> /tmp (and none of them have been deleted thus far).
> I see that DiskBlock deletes temporary files when closed, but is it closed 
> after individual blocks have finished uploading or when the entire file has 
> been fully written to the FS (full upload completed, including all parts)?
> As a temporary workaround to avoid running out of space, I'm listing files, 
> sorting by atime, and deleting anything older than the first 20: `ls -ut | 
> tail -n +21 | xargs rm`
> Steve Loughran says:
> > They should be deleted as soon as the upload completes; the close() call 
> > that the AWS httpclient makes on the input stream triggers the deletion. 
> > Though there aren't tests for it, as I recall.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to