This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [BZ#17090/17620/17621]: fix DTV race, assert, and DTV_SURPLUS Static TLS limit


On Thu, 2016-09-29 at 19:07 -0300, Alexandre Oliva wrote:
> What I know about these topics would allow me to make numerous other
> claims, of course.  But what would the point be of my spelling any of
> them out?  You wouldn't believe them anyway!  Even if I said I'd made a
> thorough analysis, would you trust it?

What I asked for is that you make it clear if you are not confident in a
comment you add.  Of course, I'd trust such a comment less than one that
you are confident in.

> 
> >> > IIUC, that's were the assumption about dlopen vs. usage comes in that
> >> > you included in the other patch.
> >> 
> >> Yeah, that too.
> >> 
> >> > If so, this is not a data race (nor a race condition).
> >> 
> >> It is a potential data race, yes,
> 
> > I'm saying that when making the assumption, which is essentially a
> > precondition we (should) specify, this isn't a data race.  If violating
> > the precondition, then that's already undefined behavior, but a fault of
> > the caller.
> 
> Are you saying it ceases to be a data race just because some earlier
> precondition failed to be observed?  I don't think I agree with that.

I would not classify it as a data race in the code because we make
statements about the code based on what it's supposed to do.  If the
caller violates the preconditions, everything can happen.
Nonetheless, when speculating about what would happen if the caller
would be allowed to call in a way that violates the precondition, then
we would say that there's a data race there.  However, speculating about
possible behavior that violates preconditions in code comments is just
confusing IMO, unless it's explicitly stated (ie, that this is
essentially a thought experiment).




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]