svn commit: r217018 - stable/8/sys/netinet

Lawrence Stewart lstewart at freebsd.org
Mon Jan 10 22:58:12 UTC 2011


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 at lstewart3:~> uname -a
> 
> 
> FreeBSD lstewart3 8.2-PRERELEASE FreeBSD 8.2-PRERELEASE #16 r217084: Fri
> Jan  7 16:17:03 EST 2011     root at 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


More information about the svn-src-stable-8 mailing list