spark-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prajwal Tuladhar <p...@infynyxx.com>
Subject Re: Spark internal Logging trait potential thread unsafe
Date Wed, 22 Jun 2016 12:44:19 GMT
Created a JIRA issue https://issues.apache.org/jira/browse/SPARK-16131 and
PR @ https://github.com/apache/spark/pull/13842

On Fri, Jun 17, 2016 at 5:19 AM, Sean Owen <sowen@cloudera.com> wrote:

> I think that's OK to change, yes. I don't see why it's necessary to
> init log_ the way it is now. initializeLogIfNecessary() has a purpose
> though.
>
> On Fri, Jun 17, 2016 at 2:39 AM, Prajwal Tuladhar <praj@infynyxx.com>
> wrote:
> > Hi,
> >
> > The way log instance inside Logger trait is current being initialized
> > doesn't seem to be thread safe [1]. Current implementation only
> guarantees
> > initializeLogIfNecessary() is initialized in lazy + thread safe way.
> >
> > Is there a reason why it can't be just: [2]
> >
> > @transient private lazy val log_ : Logger = {
> >     initializeLogIfNecessary(false)
> >     LoggerFactory.getLogger(logName)
> >   }
> >
> >
> > And with that initializeLogIfNecessary() can be called without double
> > locking.
> >
> > --
> > --
> > Cheers,
> > Praj
> >
> > [1]
> >
> https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/internal/Logging.scala#L44-L50
> > [2]
> >
> https://github.com/apache/spark/blob/8ef3399aff04bf8b7ab294c0f55bcf195995842b/core/src/main/scala/org/apache/spark/internal/Logging.scala#L35
>



-- 
--
Cheers,
Praj

Mime
View raw message