Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-user] PTP synchronized projects - Environment Management * was: Ooops, remote make doesn't execute ?

On Tuesday, November 06, 2012 10:28:42 John Eblen <jeblen@xxxxxxx> wrote
> Hi
> 
> I have also noticed missing modules. Environment management filters module
> names with "special" characters. This is
> done to filter extra output lines that are not module names, but it seems
> to be too strict in some cases. In my case,
> C++ modules are missing because the + character is special. I'll file a bug
> report for this.

Hi John,

good to see that this is a known issue - in principle. In my case, however, I 
don't think it is related to special characters. See detailed analysis below.

> 
> The relevant code is in file org.eclipse.ptp.ems.core.ModulesEnvManager in
> function "collectModuleNamesFrom"
> "MODULE_NAME_PATTERN" is the guilty regular expression. In the console view
> of your development environment,
> you should see an error message for each line that is filtered.
> 
> John

I started debugging by setting several breakpoints in ModuleEventManager.java, 
method "private Set<String> collectModuleNamesFrom(List<String> output)".
The variable "output" has the following value at method entry.

(java.util.ArrayList<E>) [/sw/aix61/modules-3.2.7b/Modules/versions:, 
/sw/aix61/modules-3.2.7b/Modules/3.2.7/modulefiles:, /sw/aix61/Modules:, 
FERRET/6.1, GAMS/23.7, GAMS/default, GCC/gcc-4.3.3, GCC/gcc-4.3.3-1, 
GCC/gcc-4.4.0-1, GCC/gcc-4.4.2, GCC/gcc-4.5.1, GLOBUS/4.2.1, GLOBUS/default, 
GNU/autoconf/2.69, GNU/autoconf-2.64, GNU/autoconf-2.68, GNU/automake/1.11.5, 
GNU/automake/1.11.6, GNU/automake-1.11, GNU/automake-1.11.1, 
GNU/libtool/2.4.2, GNU/libtool-2.4, IBM/hpct5.1.0.2, IBM/xlC10.1.0.0, 
IBM/xlC10.1.0.10, IBM/xlC10.1.0.13, IBM/xlC10.1.0.3, IBM/xlC10.1.0.4, 
IBM/xlC10.1.0.5, IBM/xlC10.1.0.6, IBM/xlC10.1.0.7, IBM/xlC11.1.0.10, 
IBM/xlC11.1.0.11, IBM/xlC11.1.0.2, IBM/xlC11.1.0.3, IBM/xlC11.1.0.4, 
IBM/xlC11.1.0.5, IBM/xlC11.1.0.7, IBM/xlC11.1.0.8, IBM/xlC12.1.0.0, 
IBM/xlC12.1.0.1, IBM/xlc10.1.0.10, IBM/xlc10.1.0.13, IBM/xlc10.1.0.2, 
IBM/xlc10.1.0.3, IBM/xlc10.1.0.4, IBM/xlc10.1.0.5, IBM/xlc10.1.0.6, 
IBM/xlc10.1.0.7, IBM/xlc11.1.0.10, IBM/xlc11.1.0.11, IBM/xlc11.1.0.2, 
IBM/xlc11.1.0.3, IBM/xlc11.1.0.4, IBM/xlc11.1.0.5, IBM/xlc11.1.0.6, 
IBM/xlc11.1.0.7, IBM/xlc11.1.0.8, IBM/xlc12.1.0.0, IBM/xlc12.1.0.1, 
IBM/xlf12.1.0.0, IBM/xlf12.1.0.11, IBM/xlf12.1.0.3, IBM/xlf12.1.0.4, 
IBM/xlf12.1.0.5, IBM/xlf12.1.0.6, IBM/xlf12.1.0.7, IBM/xlf12.1.0.8, 
IBM/xlf13.1.0.0, IBM/xlf13.1.0.10, IBM/xlf13.1.0.11, IBM/xlf13.1.0.2, 
IBM/xlf13.1.0.3, IBM/xlf13.1.0.4, IBM/xlf13.1.0.5, IBM/xlf13.1.0.6, 
IBM/xlf13.1.0.7, IBM/xlf13.1.0.8, IBM/xlf14.0.0.1_BETA, IBM/xlf14.1.0.0, 
IBM/xlf14.1.0.1, IGES/grads2.0.a6, NAG/5.1.340, NCAR/ncarg5.1.0, 
NCAR/ncarg5.1.1, NCAR/ncarg5.2.0, NCAR/ncarg6.0.0, NCL/6.0.0-beta, NCO/3.9.9, 
NCO/4.0.8, NCVIEW/1.93g, NCVIEW/2.0beta4, NCVIEW/default, NETCDF/4.2, 
NETCDF/4.2.1, NETCDF/4.2.1.1, PYTHON/2.6.4, PYTHON/2.6.4-buildbot-0.8.2, 
PYTHON/2.7.1, SVN/1.6.16, SVN/1.7.5, TAU/2.18.3, TAU/2.19, TEX/default, 
UNITE/1.0, afterburner/4.4.0, afterburner/4.5.1, afterburner/4.6.0, 
afterburner/4.6.1, afterburner/4.6.2, afterburner/4.6.3, afterburner/default, 
cdo/1.4.0.1, cdo/1.4.1, cdo/1.4.3, cdo/1.4.4, cdo/1.4.5, cdo/1.4.5.1, 
cdo/1.4.6, cdo/1.4.7, cdo/1.5.0, cdo/1.5.1, cdo/1.5.2, cdo/1.5.3, cdo/1.5.4, 
cdo/1.5.5, cdo/1.5.6, cdo/1.5.8, cdo/default, default, 
/sw/aix61/unite/modulefiles/tools:, ddt/2.6.13711-aixpoe-ibm, ddt/3.0.17813-
aixpoe-ibm, ddt/3.1.20638-aixpoe-ibm(default), ddt/3.2.24924-aixpoe-ibm, 
marmot/2.4.0-aixpoe-ibm, scalasca/1.3.3-aixpoe-ibm, scalasca/1.4.1-aixpoe-ibm, 
scalasca/1.4.2-aixpoe-ibm(default), vampirserver/vampirserver-7.5.0(default), 
vampirtrace/5.11-aixpoe-ibm, vampirtrace/5.12.2-aixpoe-ibm, 
vampirtrace/5.13.1-aixpoe-ibm(default)]

At least the "IBM/xlc<some_version_number>" that I was missing previously, are 
still in this list. Please note the list entries of the form 
"IBM/xlC<same_version_number>". For xl Compilers, C and C++ share much of the 
product development, so IBM/xlc and IBM/xlC pretty much always come in pairs, 
and so do the modules generated from them.

The first entry after all "IBM/xlCxxx" entries is "IBM/xlc10.1.0.10". For this 
entry I am seeing the following.
*  "shouldIgnore(line)" == false
*  MODULE_NAME_PATTERN.matcher(moduleName).matches() == true
*  method "add" evaluates to "return m.put(e, PRESENT)==null;"
* In TreeMap.class, method "public V put(K key, V value)", the following loop
   iterates until t == IBM/xlC10.1.0.10

            do {
                parent = t;
                cmp = cpr.compare(key, t.key);
                if (cmp < 0)
                    t = t.left;
                else if (cmp > 0)
                    t = t.right;
                else
                    return t.setValue(value);
            } while (t != null);

If t == IBM/xlC10.1.0.10, we get cmp == 0, and the method exits with 
"return t.setValue(value)".

This means that the put method (and hence the calling add method) consider 
"IBM/xlc10.1.0.10" and "IBM/xlC10.1.0.10" as identical. This is wrong, because 
one module means xlC ( == C++) and the other means xlc (== C).

Consequently, the module list in Eclipse PTP contains only those versions of 
the xlc Compiler that doesn't have a matching module for the C++ compiler with 
identical version number.

Hope that was clear enough to demonstrate the bug. Unfortunately, I can't 
propose a cure. I just don't know enough of the code. If possible, one cure 
would be to turn cpr.compare case sensitive.
-- 

Mit freundlichen Grüßen / Kind regards

Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone: +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: christoph.pospiech@xxxxxxxxxx
-------------------------------------------------------------------------------------------------------------------------------------------
IBM Deutschland GmbH / Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Martina Koederitz (Vorsitzende), Reinhard Reschke, Dieter 
Scholz, Gregor Pillen, Joachim Heel, Christian Noll
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB 
14562 / WEEE-Reg.-Nr. DE 99369940



Back to the top