[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-17 Thread Alejandro Abdelnur (JIRA)

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

Alejandro Abdelnur commented on HADOOP-8899:


Suresh, my bad, I was missing the MANIFEST.MF *Class-path:* trick. Now it makes 
sense, no objection. I have not look at the patch but conceptually seems OK. 
Just make sure all paths to JARs listed in the *Class-path:* are relative to 
the location of the manifest only JAR and there are not ../ in the paths. In 
other words, all the JARs mentioned in the manifest only JAR must be in the 
same directory or in a subdirectory from where the manifest only JAR is. Thx

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
> Attachments: HADOOP-8899.branch-1-win.classpath.patch
>
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-17 Thread Suresh Srinivas (JIRA)

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

Suresh Srinivas commented on HADOOP-8899:
-

Alejandro, this is manifest only jar. See similar things done in maven surefire 
- 
http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html.

bq. then things will not work as expected as you'll lose some of those files in 
the consolidation
I do not understand given above comment. All you have done is create a jar with 
manifest file that has classpath. What do mean by things will not work as 
expected? 

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
> Attachments: HADOOP-8899.branch-1-win.classpath.patch
>
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-17 Thread Alejandro Abdelnur (JIRA)

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

Alejandro Abdelnur commented on HADOOP-8899:


I think the approach is not correct, reiterating on my prev comment. if more 
than one of the JARs being consolidated contains a META-INF service definition 
for the same service (ie o.a.h.fs.FileSystem, 
o.a.h.io.compress.CompressionCodec, o.a.h.security.SecurityInfo), then things 
will not work as expected as you'll lose some of those files in the 
consolidation.

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
> Attachments: HADOOP-8899.branch-1-win.classpath.patch
>
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-17 Thread Suresh Srinivas (JIRA)

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

Suresh Srinivas commented on HADOOP-8899:
-

Alejandro and Joep, please look at Ahmed's comments. I am +1 for this change 
given maven surefire.

I will commit this in a day or so, if there are no further comments. Comments 
post that can be addressed in a separate jira.

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
> Attachments: HADOOP-8899.branch-1-win.classpath.patch
>
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-09 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HADOOP-8899:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12548456/HADOOP-8899.branch-1-win.classpath.patch
  against trunk revision .

{color:red}-1 patch{color}.  The patch command could not apply the patch.

Console output: 
https://builds.apache.org/job/PreCommit-HADOOP-Build/1591//console

This message is automatically generated.

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
> Attachments: HADOOP-8899.branch-1-win.classpath.patch
>
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-09 Thread Alejandro Abdelnur (JIRA)

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

Alejandro Abdelnur commented on HADOOP-8899:


Argh, forgot about that. Maybe in win distributed cache symlinks should be 
simulated with copies. Then the proposed approach would work

Alejandro




> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-09 Thread Joep Rottinghuis (JIRA)

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

Joep Rottinghuis commented on HADOOP-8899:
--

Admittedly I have not kept up with this lately, but aren't symlinks  (MKLINK) 
limited to NTFS?
Does that interopt well  with Cygwin?
Not sure if that is truly a restriction anymore these days...

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-09 Thread Alejandro Abdelnur (JIRA)

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

Alejandro Abdelnur commented on HADOOP-8899:


The potential downside of my suggested approach is that you lose the capability 
to order JARs in the classpath as '*' will be resolved in system specific way 
(I've seen this being done differently in different unix versions); which in my 
opinion should not be an issue as you should not have duplicate JARs in your 
classpath to start. The other downside is that you won't, from the logs, know 
exactly what is in the classpath, you'll only see a 'distributedcache-lib/*' 
entry in the classpath.

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-09 Thread Alejandro Abdelnur (JIRA)

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

Alejandro Abdelnur commented on HADOOP-8899:


You don't want to unjar and jar, as you'll lose in the process any JDK services 
definitions in the JARs. I'd suggest the following alternate approach: all JARs 
in the DistributedCache classpath should be symlink-ed to a 
distributedcache-lib/ dir in the current directory and then 
'distributedcached-lib/*' should be added to the classpath.

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HADOOP-8899) Classpath exceeds maximum OS limit

2012-10-08 Thread Joep Rottinghuis (JIRA)

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

Joep Rottinghuis commented on HADOOP-8899:
--

IIRC this is not an OS limit, but this is a limit of cmd.exe

Wouldn't jarring and unjarring end up being slow? (suppose better slow than not 
working).
You'd also have to make sure that the classpath order is preserved. 
Classloaders will generally load the first hit, so if you create your own jar 
you need to either drop duplicates, or make sure they are in order.
With signed jars duplicate entries can be a challenge.

I haven't looked at the code, but can this be avoided through the user of an 
environment variable instead of expanding the classpath on the command-line?
Along similar lines I recall switching from System.exec to the user of 
Procbuilder for similar problems. Not sure if relevant here.

> Classpath exceeds maximum OS limit
> --
>
> Key: HADOOP-8899
> URL: https://issues.apache.org/jira/browse/HADOOP-8899
> Project: Hadoop Common
>  Issue Type: Bug
>Affects Versions: 1-win
>Reporter: Ahmed El Baz
>
> We hit errors in TT due to long classpath value. One example is Oozie trying 
> to start a hive job, and it fails with the following error:
>  java.io.IOException: Command exceeds the OS command length limit: 8192, 
> command: "set CLASSPATH="….
> The classpath includes Hadoop Core + Hive Jars which are in the distributed 
> cache. This is causing the classpath to be too long giving the error above. A 
> viable long term fix is to generate a temporary JAR file in the task cache 
> directory which includes all elements in the long classpath, and then provide 
> this as the "-classpath" argument for the JVM to be spawned. This is gated 
> for Windows only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira