Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 315838

Summary: Display output in a Console View with IBM PE does not work
Product: [Tools] PTP Reporter: Emmanuel Geay <egeay>
Component: RM.PEAssignee: Project Inbox <ptp-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: major    
Priority: P3 CC: drwootton
Version: 3.1   
Target Milestone: ---   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Emmanuel Geay CLA 2010-06-04 16:26:56 EDT
1) Select IBM PE resource manager. Give hostfile.
I made sure to keep the "Stdout Path" text field empty.
2) Select "Display output from all processes in a console view" and other required information in Application tab.
3) Run. The application runs properly but I receive no output in my Eclipse Console view.

If I specify a file in "Stdout Path" the output of the program is properly shown.

PS: Eclipse version used: Galileo 3.5.2.
Comment 1 David Wootton CLA 2010-06-04 19:25:21 EDT
Does this happen only with short running jobs (2-3 seconds) or with all jobs? The problem with short running jobs is that in the current design the PE proxy needs task mapping information from an attach.cfg file that PE generates after the application has started executing. The code which looks for this file retries once per second until it reads the file successfully. If the application runs and exits before the proxy reads the attach.cfg file then the output is lost.

This may be fixable in the case where a host list file is specified rather than using LoadLeveler as a resource allocator, but even that is not always possible since the host list can contain LoadLeveler resource pool names rather than node names.

The other alternative is to do away with the logic in the proxy that supports splitting stdout and stderr output to separate output streams based on the application task that actually issued the write. The alternative is to consider the output to be a single stream that appears as if it is written by task 0. I think that would be reliable, but has the problem that if multiple tasks write output, the output is interspersed in the output stream.
Comment 2 Emmanuel Geay CLA 2010-06-05 18:41:05 EDT
I did try with a program that waits for a few seconds (at least 4s) before printing to stdout... and I still did not get the output back in the Console.

The alternative mentioned to change the logic in the proxy is fine with me at this time (even if the output is interspersed in the final output) -- really what is important for X10DT at this time is to be able to get the output back in the console (like it is for OpenMPI) in some form of another, and this even for short running applications.
Comment 3 David Wootton CLA 2012-04-26 10:50:26 EDT
The new JAXB resource manager does not have these issues with handling of stdout and stderr from the application. The PE resource manager has been re-implemented using the JAXB model and the proxy based resource manager model is only preserved as a legacy implementation.

Since the JAXB model addresses this issue, closing this bug as wontfix.