So all of my blog entries from this week were from a BakeAThon or BAT. This one was at the Sun offices in Austin, TX.
Here is a picture of Jeff Smith and I hard at work:
You can see Rob Thurlow getting a bagel and Karen Rochford running some tests for a colleague who couldn't attend.
Jeff is helping me understand why I was getting crap in the vattr structure which was supplying the gid and uid. I had the code running before and it worked. Fast forward 2 months and it does not work. It may have been working because I was testing as root and the random garbage was being initialized to 0. I should have kept some test logs and I shouldn't have had such a long layoff.
Anyway, I was talking to Jeff because he had made some changes since my last time to test. We decided that the vattr structure I was grabbing was no longer valid, even within the same structure. We get an open create call, we pull the credentials from the RPC layer, and we create the file. I could see that the UID and GID made it to disk correctly, but they were garbage when I was trying to match them against a policy.
I added the following code to make sure I had the correct vattr:
vattr_t spe_va;
spe_va.va_mask = AT_GID|AT_UID;
error = VOP_GETATTR(vp, &spe_va, 0, cs->cr, &ct);
if (error) {
/*
* TDH: Need to do proxy IO.
*/
return(status);
}
We first make sure we are going to get the uid and gid. Then we call a getattr on the vnode. While we should have this information already, the vnode should be in memory and this should be fast. Hmm, perhaps we will need to revisit this thought to make sure we don't ever go to disk.
Anyway, it works and that is what matters with a prototype. Right?
Here is another picture, showing me as an island. By this I mean that the other Sun employees are all up at the top of the picture and I'm down at the bottom. When I arrive at a BAT or Cthon, I typically sit such that I'm not with my group. And I get flak about that. I know it is important to spend quality time with the members of my group (we are pretty well distributed across the nation), but I also think it is just as important to network with the other vendors.
So I am surrounded by IBM, Citi, Panasas, NetApp, and Oracle people.
I eventually succumb to peer pressure and sit with my group. I don't want to appear snobbish.
But back to the main point of this post - I have a hard time describing what we do and why. A case in point, a competitor brought a new prototype. You can see some coverage not from me at: Brief Report from the Setember 2008 pNFS Bake-A-Thon.
So why am I happy that a competitor brought a prototype?
The last point is key, the spirit of Connectathon is that we help each other in interoperability testing such that it isn't done at a customer site. We want NFS to succeed. We don't want our customers looking for a different protocol.