flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-9841) Web UI only show partial taskmanager log
Date Mon, 16 Jul 2018 11:54:00 GMT

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

ASF GitHub Bot commented on FLINK-9841:
---------------------------------------

Github user zentol commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6329#discussion_r202655436
  
    --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/taskmanager/AbstractTaskManagerFileHandler.java
---
    @@ -208,51 +209,77 @@ private void removeBlob(RemovalNotification<ResourceID, CompletableFuture<Transi
     	}
     
     	private void transferFile(ChannelHandlerContext ctx, File file, HttpRequest httpRequest)
throws FlinkException {
    -		try (final RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r")) {
    -			final long fileLength = randomAccessFile.length();
    +		final RandomAccessFile randomAccessFile;
     
    -			try (final FileChannel fileChannel = randomAccessFile.getChannel()) {
    +		try {
    +			randomAccessFile = new RandomAccessFile(file, "r");
    +		} catch (FileNotFoundException e) {
    +			throw new FlinkException("Can not find file " + file + ".", e);
    +		}
     
    -				HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
    -				response.headers().set(CONTENT_TYPE, "text/plain");
    +		final long fileLength;
     
    -				if (HttpHeaders.isKeepAlive(httpRequest)) {
    -					response.headers().set(CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
    -				}
    -				HttpHeaders.setContentLength(response, fileLength);
    -
    -				// write the initial line and the header.
    -				ctx.write(response);
    -
    -				// write the content.
    -				final ChannelFuture lastContentFuture;
    -				final GenericFutureListener<Future<? super Void>> completionListener
= future -> {
    -					fileChannel.close();
    -					randomAccessFile.close();
    -				};
    -
    -				if (ctx.pipeline().get(SslHandler.class) == null) {
    -					ctx.write(
    -						new DefaultFileRegion(fileChannel, 0, fileLength), ctx.newProgressivePromise())
    -						.addListener(completionListener);
    -					lastContentFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
    -
    -				} else {
    -					lastContentFuture = ctx
    -						.writeAndFlush(
    -							new HttpChunkedInput(new ChunkedFile(randomAccessFile, 0, fileLength, 8192)),
    -							ctx.newProgressivePromise())
    -						.addListener(completionListener);
    -
    -					// HttpChunkedInput will write the end marker (LastHttpContent) for us.
    -				}
    +		try {
    +			fileLength = randomAccessFile.length();
    --- End diff --
    
    you could move this back into the following try block, like this:
    ```
    try {
    			final long fileLength = randomAccessFile.length();
    			final FileChannel fileChannel = randomAccessFile.getChannel();
    
    			try {
    				[... actual handler code ...]
    			} catch (Exception e) {
    				fileChannel.close();
    				throw e;
    			}
    		} catch (IOException ioe) {
    			try {
    				randomAccessFile.close();
    			} catch (IOException e) {
    				log.warn("Error while closing file.", e);
    			}
    		}
    ```


> Web UI only show partial taskmanager log 
> -----------------------------------------
>
>                 Key: FLINK-9841
>                 URL: https://issues.apache.org/jira/browse/FLINK-9841
>             Project: Flink
>          Issue Type: Bug
>    Affects Versions: 1.5.0
>         Environment: env : Flink on YARN
> version : 1.5.0
>            Reporter: vinoyang
>            Assignee: vinoyang
>            Priority: Major
>              Labels: pull-request-available
>
>  
> In the web UI, we select a task manager and click the "log" tab, but the UI only show
the partial log (first part), can never update even if we click the "refresh" button.
> However, the job manager is always OK.
> The reason is the resource be closed twice.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message