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

Colin Patrick McCabe commented on HDFS-6421:
--------------------------------------------

bq. (Red Hat's policy is fairly standard vs. the rest of the industry, at least 
in my experiences. So while clearly other vendors will have different policies, 
this one is a good representative sample, IMHO.)

Let's not compare apples and oranges.  When Red Hat says they "support" 10 year 
old operating systems, it doesn't mean they compile the trunk versions of 
projects on them.  It means they backport a carefully selected set of security 
and robustness patches.

bq. Java should 'compile' with not too many issues, so we're really talking 
about the C code.

I think the issues in Java are pretty similar to the issues in C.  We can 
choose to support old versions of stuff, or not.  The Java equivalent of 
supporting a 10-year-old OS would be supporting JDK5, which we did not choose 
to do in Hadoop trunk.  If we choose not to support JDK5 or RHEL4, we are 
telling admins that use those products that they need to upgrade to use the 
latest version of Hadoop, which might be annoying for some.  But we gain the 
ability to use additional features that were not present in RHEL4 or JDK5, and 
write simpler and less buggy code because there are fewer special cases.

As it turns out, we don't support JDK5.  So it seems clear that people feel 
that 10 years is long enough (and some people even think we should drop support 
for JDK6 in branch-2, although I am not one of them.)  All I am asking is that 
we apply the same standards to the C code that we apply to the Java code.

bq. The last time I looked at the code, it wasn't that bad to rewrite the 
non-portable portions to be much more portable+feature/structure detection. If 
this was done, then I'd expect it to work on 10-year-old OSes without too much 
effort. The vast majority of calls we need to make aren't particularly new...

Alan, the C code in YARN depends extensively on {{cgroups}}.  This is a Linux 
feature which is not present before RHEL6.
You can read the manual here: 
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html
  This isn't just a system call that got a new argument or something, it's an 
entire subsystem which is simply missing in the older OS, and which YARN uses 
to isolate processes.

> RHEL4 fails to compile vecsum.c
> -------------------------------
>
>                 Key: HDFS-6421
>                 URL: https://issues.apache.org/jira/browse/HDFS-6421
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: libhdfs
>    Affects Versions: 2.5.0
>         Environment: RHEL4
>            Reporter: Jason Lowe
>            Assignee: Mit Desai
>         Attachments: HDFS-6421.patch, HDFS-6421.patch
>
>
> After HDFS-6287 RHEL4 builds fail trying to compile vecsum.c since they don't 
> have RUSAGE_THREAD.  RHEL4 is ancient, but we use it in a 32-bit 
> compatibility environment.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to