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

Boris Shkolnik commented on HDFS-1644:
--------------------------------------

There was an issue in common - HADOOP-6970.
The fix was to disable creating of SecurityAudit.audit file in all cases except 
when starting a server(running hadoop-daemon.sh).
Do you have this patch applied?


> HDFS Client initialize SecurityAudit.audit log file
> ---------------------------------------------------
>
>                 Key: HDFS-1644
>                 URL: https://issues.apache.org/jira/browse/HDFS-1644
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs client
>         Environment: Java 6, CentOS 5.5
>            Reporter: Eric Yang
>
> There is a hidden problem that hdfs client tries to initialize 
> SecurityAudit.audit log file which it shouldn't.  The problem can be surfaced 
> by configuring HADOOP_LOG_DIR to a directory that is not writable by the 
> running user.
> {noformat}
> log4j:ERROR setFile(null,true) call failed.
> java.io.FileNotFoundException: /var/log/hadoop/nonexisted/SecurityAuth.audit 
> (No such file or directory)
>       at java.io.FileOutputStream.openAppend(Native Method)
>       at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
>       at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
>       at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
>       at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:164)
>       at 
> org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:216)
>       at 
> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:257)
>       at 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:133)
>       at 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:97)
>       at 
> org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:689)
>       at 
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647)
>       at 
> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:568)
>       at 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:442)
>       at 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:476)
>       at 
> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
>       at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
>       at org.apache.log4j.Logger.getLogger(Logger.java:105)
>       at 
> org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:289)
>       at 
> org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:109)
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>       at 
> org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1116)
>       at 
> org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
>       at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
>       at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
>       at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
>       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
>       at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:141)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:57)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
>       at org.apache.hadoop.fs.FsShell.main(FsShell.java:1895)
> log4j:ERROR Either File or DatePattern options are not set for appender 
> [DRFAS].
> {noformat}
> The log4j initialization should setup differently between HDFS server and 
> HDFS client.  This bug exists in branch-0.20-security branch.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to