Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jan 2011 09:58:05 +1100
From:      Lawrence Stewart <lstewart@freebsd.org>
To:        Lawrence Stewart <lstewart@FreeBSD.org>
Cc:        src-committers@FreeBSD.org, svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, "George V. Neville-Neil" <gnn@FreeBSD.org>, "Bjoern A. Zeeb" <bz@FreeBSD.org>, svn-src-stable-8@FreeBSD.org, "Robert N. M. Watson" <rwatson@FreeBSD.org>
Subject:   Re: svn commit: r217018 - stable/8/sys/netinet
Message-ID:  <4D2B8EFD.5030500@freebsd.org>
In-Reply-To: <4D27A605.6090002@freebsd.org>
References:  <201101051852.p05IqUjK087769@svn.freebsd.org> <4D26A165.3070001@freebsd.org> <20110107091418.H14966@maildrop.int.zabbadoz.net> <4D27A605.6090002@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/08/11 10:47, Lawrence Stewart wrote:
> On 01/07/11 20:36, Bjoern A. Zeeb wrote:
>> On Fri, 7 Jan 2011, Lawrence Stewart wrote:
>>
>>> Hi George,
>>>
>>> On 01/06/11 05:52, George V. Neville-Neil wrote:
>>>> Author: gnn
>>>> Date: Wed Jan  5 18:52:30 2011
>>>> New Revision: 217018
>>>> URL: http://svn.freebsd.org/changeset/base/217018
>>>>
>>>> Log:
>>>>   Fix binary compatability for netstats across the -x/-T changes
>>>>   that have been previously MFC'd.
>>>>
>>>>   Reviewed by:    rwatson, bz
>>>>
>>>> Modified:
>>>>   stable/8/sys/netinet/tcp_var.h
>>>>
>> ...
>>>
>>> On my stable/8 machine after updating world but not kernel I see "struct
>>> xtcpcb size mismatch" messages which indicates the ABI has been futzed
>>> with.
>>
>> Be sure that it's not local changes.
> 
> Definitely not the issue - this box runs stock stable/8 directly from
> svn.freebsd.org without any local changes.
> 
>>> Looking at the above diff I think this commit does indeed change the ABI
>>> and therefore needs to be tweaked in order to maintain our current ABI
>>> preservation policy for stable branches (unless I'm missing something?).
>>> If the change to the ABI is intentional, a note in UPDATING would
>>> probably be warranted.
>>
>> I think you are missing that that was the "repair" commit.  Are you
>> sure you didn't pickup the wrong versions?  There was about a 1 day
>> timeframe, where things were hosed but I believe George fixed them
>> all.
> 
> Looking at my kernel.old rev, I updated from stable/8 kernel/world @
> r216035 to stable/8 @ r217084. According to my commit mail log, George
> made the initial change in r216968 and the repair commit was r217018, so
> I don't think that I should have seen any issues if r217018 didn't mess
> with the ABI as I hadn't updated in the cross over period.
> 
>> Hmm looking at the diff committed more closely I see that the two
>> uint64_t are not were they should be.  Are you by any chance on i386
>> or another 32bit platform?
> 
> No:
> 
> lstewart@lstewart3:~> uname -a
> 
> 
> FreeBSD lstewart3 8.2-PRERELEASE FreeBSD 8.2-PRERELEASE #16 r217084: Fri
> Jan  7 16:17:03 EST 2011     root@lstewart3:/usr/obj/usr/src/sys/GENERIC
>  amd64

For the record, the fact I was seeing issues on amd64 was a bit of a red
herring, even though the ABI issues were real and are now fixed thanks
to Bjoern.

I can't reproduce the error I saw with the revisions noted above, and
did some digging to figure out why. I was still running the old r216035
kernel but had updated my src tree a couple of times in between and I
think I built and installed world in the window between George's
commits. I then rebuilt world at r217084 post George's r217018 with a
"-DNO_CLEAN" and I suspect somehow it left me with a sockstat built
against the ABI compromised struct tcpcb. Not quite sure how that
happened but it's my best guess.

Cheers,
Lawrence



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D2B8EFD.5030500>