[00:25:45] --- kaj has become available [00:52:00] --- Simon Wilkinson has left [01:01:27] --- haba has become available [01:14:40] --- Russ has left: Disconnected [02:09:57] --- haba has left [02:54:46] --- haba has become available [03:23:09] --- Simon Wilkinson has become available [03:34:51] --- Simon Wilkinson has left [03:50:36] --- jaltman has left: Replaced by new connection [03:50:37] --- jaltman has become available [04:51:44] When I now do look at the 1851 change from Derrick, what do I say to the git command line to actually get a diff -u which correspondents to that change? [04:52:57] There is this long URL (http://git.openafs.org/?p=openafs.git;a=commitdiff;h=58efa12a213d00ca0bc3dd22ece08c523ced91dd;hp=925923a07f9be1b4d98fb4807613665c2045a922) but I want the diff not in HTML [05:20:17] --- Simon Wilkinson has become available [05:21:04] Well, gitweb can do that. [05:22:12] (f you click the 'raw' link) [05:23:13] Otherwise, git show 58efa12a213d00ca0bc3dd22ece08c523ced91dd [06:18:29] --- Simon Wilkinson has left [06:22:06] --- jaltman has left: Disconnected [06:23:09] --- jaltman has become available [06:29:40] Simon: fatal: bad object 58efa12a213d00ca0bc3dd22ece08c523ced91dd [06:31:44] (I did a git pull and it says "Already up-to-date.") [06:31:54] you have to fetch it first [06:32:10] sure. it's not merged. you have to fetch *that patch* [06:32:45] each page has a fetch command on it for the patch in question. if you ran it, then we have a problem. if you didn't, then you are your own problem [06:34:58] * haba tries to find the correct fetch command. [06:35:42] The page I mentioned above - should there be a fetch command on that one? [06:36:13] the 1851 page? [06:43:41] * haba did the "git pull git://git.openafs.org/openafs refs/changes/51/1851/1" and now it's local and I can see the object. [06:44:17] if you want to also build it, there was a e.g. git cherry-pick FETCH_HEAD as part of that [06:55:24] --- Simon Wilkinson has become available [06:56:23] The git pull both fetches and merges. [06:56:38] git cherry-pick FETCH_HEAD is what you need if you just do a git fetch. [07:01:30] --- deason has become available [07:03:45] is there a command to make my local repo to know every object the master knows about? [07:04:17] I realize I might need the git for dummies [07:04:33] Yes. [07:04:34] everything in gerrit != in the master [07:09:27] --- meffie has become available [07:12:52] If you want everything that's available in git.openafs.org, then you want to do something like git fetch git://git.openafs.org +refs/*:refs/* [08:10:06] --- jaltman has left: Disconnected [08:20:08] --- Simon Wilkinson has left [08:53:30] --- jaltman has become available [09:06:33] --- kaj has left [10:15:58] --- haba has left [10:23:46] --- meffie has left [10:23:46] --- kaj has become available [11:03:14] --- Russ has become available [12:15:14] --- JSund has become available [13:45:16] --- jaltman has left: Disconnected [13:51:09] --- Simon Wilkinson has become available [14:38:22] --- mdionne has become available [14:39:02] If anyone ever disables asserts in OpenAFS, then we're in trouble. [14:39:24] If you build with NDEBUG, then assert(blah) becomes ((void)0) [14:40:12] There's lots of places which use assert to check the outcome of a call, where that call really needs to happen - pthreads being a perfect case in point. [14:40:19] Anyone got any ideas on how to fix this? [14:46:03] Go through and fix them all so that we're using assert() properly, although that's a lot of tedious work. [14:47:34] Yeah. At the very least, I'll fix the wrong use of assert from a patch of mine earlier this week. The rest might need to wait for a bit. [14:47:58] Unless ... fixing this might make a good community bonding experience :) [14:57:43] #ifdef NDEBUG # define assert(foo) (void) (foo) #endif ? [15:01:01] I’d suggest renaming assert to something else, if you do that. [15:03:06] Yes. I was wondering about doing something like that, and then fixing it just becomes a case of renaming the relevant asserts. [15:04:16] So, we would have something like die_if_false(X) [15:04:28] assert(0)'s and such are also annoying, since you have no idea what failed until you can actually analyze the core assuming you get one [15:05:13] and is there a practical reason anyone would be compiling with NDEBUG? [15:05:26] People do. Distributions do. [15:06:10] The fundamental problem is that asserts are supposed to be something that you can make go away - theoretically they're just for debugging, so you should be able to turn them off before you ship your production code. [15:11:41] At the moment, someone not familiar with OpenAFS might come along and go "Let's try compiling with NDEBUG", and suddenly all of the pthread locking just doesn't happen any more. Ooops. [15:13:58] deason: I'm not sure about your point about assert(0). On sane platforms, this will still give you the file name and line number where the assertion failed, so I don't think you need the core to know what failed. [15:14:50] well, not just locks; everything with pthreads, so threads won't get spawned, so presumably nothing will do anything [15:16:13] a line number requires the originating source to be useful, which is not technically always a luxury I have [15:17:42] I suspect we need to find a better way of dealing with errors from the pthread routines. They're the main culprits in all of this. [15:18:50] also "sane platforms" are not all platforms; but I'm not sure if there are ones that don't give you that information [15:20:36] if we just rename it, s/assert/foo/ or similar on lines matching pthread_ would be unlikely to be problematic [15:20:52] there's still a ton more than those, though, of course [15:21:24] On a quick scan through, pthread's seemed to be the main case where the statement had side-effects. [15:26:15] Oh, but reading further, there's a ton of other cases in the fileserver. Hmmm. [15:26:30] Perhaps an initial fix would just be... [15:26:35] #ifdef NDEBUG [15:26:48] #error "OpenAFS won't work if you disable assert()" [15:26:50] #endif [15:56:45] --- deason has left [15:58:25] --- JSund has left [16:04:25] --- deason has become available [16:31:19] --- jaltman has become available [18:50:03] s/assert/osi_Assert/, make osi_Assert do what we want. [18:50:53] --- jaltman has left: Disconnected [18:54:21] I’ll suggest the name verify (or osi_Verify or whatever). I’ve seen that in a few places to mean assert-even-if-NDEBUG-dammit. [19:01:38] we already use osi_Assert elsewhere [19:29:38] --- Born Fool has become available [19:38:44] --- mdionne has left [19:53:08] --- jaltman has become available [20:25:09] --- jaltman has left: Disconnected [20:53:27] --- Born Fool has left [21:42:13] --- jaltman has become available [23:18:55] --- deason has left [23:33:18] --- kaj has left