On 24 July 2017 at 17:08, Henry Robinson <he...@apache.org> wrote:

>
>
> On 24 July 2017 at 17:04, Jim Apple <jbap...@cloudera.com> wrote:
>
>> I had anticipated that shared linking would save time and disk space, but
>> it sounds like, from your testing, it doesn't save much time. Does it save
>> disk space?
>>
>
> I haven't measured but I would expect not. Do we need to be very careful
> about disk space in the current configuration?
>

I just saw the disk space report at the end of ubuntu-14.04-from-scratch.
It costs about 50% more disk space (about 30Gb) which is a large amount,
but the executors have plenty of room left.

dynamic:


*00:08:20* /dev/xvda1        161129 61335     93144  40% /


static:


*09:20:31* /dev/xvda1        161129 92138     62341  60% /



>
>
>>
>> Does static linking save time when compiling incremental changes?
>>
>
> Again, I haven't measured.
>
>
>>
>> On Mon, Jul 24, 2017 at 4:51 PM, Henry Robinson <he...@apache.org> wrote:
>>
>> > :) I agree - we should also track any known breaks to shared linking in
>> a
>> > best effort fashion because it's so useful to some dev workflows.
>> >
>> > On 24 July 2017 at 16:49, Tim Armstrong <tarmstr...@cloudera.com>
>> wrote:
>> >
>> > > I vote for changing Jenkins' linking strategy now and not changing it
>> > back
>> > > :). Static linking is the blessed configuration so I think we should
>> be
>> > > running tests with that primarily.
>> > >
>> > > On Mon, Jul 24, 2017 at 4:34 PM, Henry Robinson <he...@apache.org>
>> > wrote:
>> > >
>> > > > On 24 July 2017 at 13:58, Todd Lipcon <t...@cloudera.com> wrote:
>> > > >
>> > > > > On Mon, Jul 24, 2017 at 1:47 PM, Henry Robinson <he...@apache.org
>> >
>> > > > wrote:
>> > > > >
>> > > > > > Thanks for the asan pointer - I'll give it a go.
>> > > > > >
>> > > > > > My understanding of linking isn't deep, but my working theory
>> has
>> > > been
>> > > > > that
>> > > > > > the complications have been caused by glog getting linked twice
>> -
>> > > once
>> > > > > > statically (possibly into libkudu.so), and once dynamically (via
>> > > > everyone
>> > > > > > else).
>> > > > > >
>> > > > >
>> > > > > In libkudu_client.so, we use a linker script to ensure that we
>> don't
>> > > leak
>> > > > > glog/gflags/etc symbols. Those are all listed as 'local' in
>> > > > > src/kudu/client/symbols.map. We also have a unit test
>> > > > > 'client_symbol-test.sh' which uses nm to dump the list of symbols
>> and
>> > > > make
>> > > > > sure that they all non-local non-weak symbols are under the
>> 'kudu::'
>> > > > > namespace.
>> > > > >
>> > > > > So it's possible that something's getting linked twice but I'd be
>> > > > somewhat
>> > > > > surprised if it's from the Kudu client.
>> > > > >
>> > > > >
>> > > > Good to know, thanks.
>> > > >
>> > > > ASAN hasn't turned up anything yet - so does anyone have an opinion
>> > about
>> > > > changing Jenkins' linking strategy for now?
>> > > >
>> > > >
>> > > > > -Todd
>> > > > >
>> > > > >
>> > > > > >
>> > > > > > I would think that could lead to one or both of the issues you
>> > linked
>> > > > to.
>> > > > > >
>> > > > > >
>> > > > > > On 24 July 2017 at 13:39, Todd Lipcon <t...@cloudera.com>
>> wrote:
>> > > > > >
>> > > > > > > Is it possible that the issue here is due to a "one definition
>> > > rule"
>> > > > > > > violation? eg something like
>> > > > > > > https://github.com/google/sanitizers/wiki/AddressSanitizerOn
>> > > > > > > eDefinitionRuleViolation
>> > > > > > > Another similar thing is described here:
>> > > > > > > https://github.com/google/sanitizers/wiki/AddressSanitizerIn
>> > > > > > > itializationOrderFiasco
>> > > > > > >
>> > > > > > > ASAN with the appropriate flags might help expose if one of
>> the
>> > > above
>> > > > > is
>> > > > > > > related.
>> > > > > > >
>> > > > > > > I wonder whether it is a kind of coincidence that it is fine
>> in a
>> > > > > static
>> > > > > > > build but causes problems in dynamic, and at some point the
>> > static
>> > > > link
>> > > > > > > order may slightly shift, causing another new subtle bug.
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > On Mon, Jul 24, 2017 at 1:22 PM, Henry Robinson <
>> > he...@apache.org>
>> > > > > > wrote:
>> > > > > > >
>> > > > > > > > We've started seeing isolated incidences of IMPALA-5702
>> during
>> > > > GVOs,
>> > > > > > > where
>> > > > > > > > a custom cluster test fails by throwing an exception during
>> > > locale
>> > > > > > > > handling.
>> > > > > > > >
>> > > > > > > > I've been able to reproduce this locally, but only with
>> shared
>> > > > > linking
>> > > > > > > > enabled (which makes sense since the issue is symptomatic
>> of a
>> > > > global
>> > > > > > > c'tor
>> > > > > > > > not getting called the right number of times).
>> > > > > > > >
>> > > > > > > > It's probable that my patch for IMPALA-5659 exposed this
>> (since
>> > > it
>> > > > > > > forced a
>> > > > > > > > more correct linking strategy for thirdparty libraries when
>> > > dynamic
>> > > > > > > linking
>> > > > > > > > was enabled), but it looks to me at first glance like there
>> > were
>> > > > > latent
>> > > > > > > > dynamic linking bugs that we weren't getting hit by. Fixing
>> > > > > IMPALA-5702
>> > > > > > > > will probably take a while, and I don't think we should
>> hold up
>> > > > GVOs
>> > > > > or
>> > > > > > > put
>> > > > > > > > them at risk.
>> > > > > > > >
>> > > > > > > > So there are two options:
>> > > > > > > >
>> > > > > > > > 1. Revert IMPALA-5659
>> > > > > > > >
>> > > > > > > > 2. Switch GVO to static linking
>> > > > > > > >
>> > > > > > > > IMPALA-5659 is important to commit the kudu util library,
>> which
>> > > is
>> > > > > > needed
>> > > > > > > > for the KRPC work. Without it, shared linking doesn't work
>> *at
>> > > all*
>> > > > > > when
>> > > > > > > > the kudu util library is committed.
>> > > > > > > >
>> > > > > > > > Static linking doesn't take much longer in my unscientific
>> > > > > > measurements,
>> > > > > > > > and is closer to how Impala is actually used. In the
>> interest
>> > of
>> > > > > > forward
>> > > > > > > > progress I'd like to try switching
>> ubuntu-14.04-from-scratch to
>> > > use
>> > > > > > > static
>> > > > > > > > linking while I work on IMPALA-5702.
>> > > > > > > >
>> > > > > > > > What does everyone else think?
>> > > > > > > >
>> > > > > > > > Henry
>> > > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > --
>> > > > > > > Todd Lipcon
>> > > > > > > Software Engineer, Cloudera
>> > > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > --
>> > > > > Todd Lipcon
>> > > > > Software Engineer, Cloudera
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Reply via email to