So I'm not a mean gatekeeper - I try to not lock down our gate. I feel like I should just be able to ask people not to integrate anything. But the reality is that you can't count on everyone getting the message. So, you need to lock down the gate.
I knew how to do that in Teamware, but I've never had that need with Mercurial. Until today that is - a nasty branch merge with onnv_103.
So to lock down a Mercurial gate with Sun's extensions, you can use lock.py:
[nfs4hg@aus1500-home ~]> which lock.py /pool/nfs4hg/bin/lock.py [nfs4hg@aus1500-home nfs41-gate]> lock.py -n -R /pool/ws/nfs41-gate [write]: None
Okay, no one has a write lock, so let's grab one:
[nfs4hg@aus1500-home nfs41-gate]> lock.py -R /pool/ws/nfs41-gate
[nfs4hg@aus1500-home nfs41-gate]> lock.py -n -R /pool/ws/nfs41-gate
[write]:
nfs4hg
th199096
By the way, where is this configured?
[nfs4hg@aus1500-home ~]> grep lock /pool/ws/nfs41-gate/.hg/hgrc # 5. lockdir must be readable by whomever will pull/push lockdir = public/lock wlock = nfs4hg, th199096 # These hooks check the lock before anything happens. prechangegroup.0 = python:hook.lockchk.lockchk # then comment it out, let them push, uncomment, and unlock the gate.
So the lock only works on the gate and not the clone. You can find more about this in the source of lock.py.
Ohh, and even though I haven't tested it, you release the gate easily enough with a unlock.py.
My kernel is dying trying to pull apart an XDR decoded array. And I've got an array of two items, so how do I view the second one?
[0]> ffffff0010c3a5f0::print DS_REPORTAVAILargs
{
ds_id = 0x64
ds_verifier = 0xffffff02efe3b060
ds_addrs = {
ds_addrs_len = 0x1
ds_addrs_val = 0xffffff0307106368
}
ds_attrvers = 1 (DS_ATTR_v1)
ds_storinfo = {
ds_storinfo_len = 0x2
ds_storinfo_val = 0xffffff0304545a80
}
}
We can easily see the first one:
[0]> 0xffffff0304545a80::print ds_storinfo
{
type = 1 (ZFS)
ds_storinfo_u = {
zfs_info = {
guid_map = {
ds_guid = {
stor_type = 1 (ZFS)
ds_guid_u = {
zfsguid = {
zfsguid_len = 0x10
zfsguid_val = 0xffffff02ff6de768
}
}
}
mds_sid_array = {
mds_sid_array_len = 0
mds_sid_array_val = 0
}
}
attrs = {
attrs_len = 0x1
attrs_val = 0xffffff04c8fd6578
}
}
}
}
But how do I get to the second one? I.e., how do I tell if it is just a pointer size away or if some special packing is going on?
I can use the array dcmd:
[0]> 0xffffff0304545a80::array ds_storinfo 2 ffffff0304545a80 ffffff0304545ac0
And that shows us:
[0]> ffffff0304545ac0::print ds_storinfo
{
type = 1 (ZFS)
ds_storinfo_u = {
zfs_info = {
guid_map = {
ds_guid = {
stor_type = 1 (ZFS)
ds_guid_u = {
zfsguid = {
zfsguid_len = 0x10
zfsguid_val = 0xffffff0304def2e0
}
}
}
mds_sid_array = {
mds_sid_array_len = 0
mds_sid_array_val = 0
}
}
attrs = {
attrs_len = 0x1
attrs_val = 0xffffff04bc8f62a0
}
}
}
}
Which looks valid and we can quickly test:
[0]> 0xffffff04bc8f62a0::print ds_zfsattr
{
attrname = {
utf8string_len = 0x4
utf8string_val = 0xffffff0508e88760
}
attrvalue = {
attrvalue_len = 0x15
attrvalue_val = 0xffffff050853f270
}
}
[0]> 0xffffff050853f270::dump -w 2
\/ 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a
b c d e f v123456789abcdef0123456789abcdef
ffffff050853f270: 706e6673 2d392d32 343a6461 7461322f 706e6673 32bbddba cefaed
fe 98140000 pnfs-9-24:data2/pnfs2...........
So either it is valid or it just happens to point to what I expect!
So I can't start my virtual machines for VMware:
Nov 18 09:52:25.157: vcpu-0| [msg.vnet.getLastMessage] VMnet0: The system cannot find the file specified Nov 18 09:52:25.157: vcpu-0| [msg.device.startdisconnected] Virtual device Ethernet0 will start disconnected.
But this time I know what has to be going on. Recently I upgraded my 6.5 installation and I turned my machine off while I was out of town. And of course when I came back, the keyboard did not work (error 39?). It turned out that VMware installs a shim on top of the keyboard driver and I think the uninstall hosed me. I followed the directions at code 39 keyboard win XP. Let me tell you, entering text into regedit32 with a dead keyboard is a challenge. But the entry by Bas13 does walk you through it.
I also deleted the network configurations.
So I searched for the error messages today and mostly turned up Linux related questions.
I decided to reinstall the latest VMware upgrade and when I was prompted, I selected Repair as an option. That fixed the issue for me.
My mother in law's computer is heavily infected. Why, why not?
I've been using BleepingComputer to figure out how to clean it up.
As it wouldn't boot as far as I was concerned, I took out the hard drive and put in a USB enclosure. I then attached it to a laptop I was willing to reformat if necessary. I then ran a virus scanner and Spybot - Search and Destroy on it. When I thought it was clean enough, I got the PC to boot again.
And now I'm going through online tools to scan it again and again. I'll get each tool to report nothing and start a new tool up. Right now I'm working down the list on Preparation Guide For Use Before Posting A Hijackthis Log, Instructions for receiving help in cleaning your computer and I'm doing Ad-Aware 2008 Free. And it is half done with 528 infections found. ;<.
So it finally finishes all of the way. A hint is to not start a browser up before running Ad-Aware. It will find offenses in that case.
Sometimes an inflight magazine actually has something of real interest to me, but I don't want to take the paper copy with me. I just want the one article. On a recent United Airlines flight, I came across this The Business of Blogging by Ethan G. Salwen. I've written about what I like to blog about and how to drive up hits (simple - write articles), but I was struck by two of Ethan's rules:
The first really restates my write articles rule.
The second deals with how external search engines will rank your blog. If you are linking out, your entry is taken to be more interesting.
I bought PANDORA as an app for my iPhone. You enter a song/group/composer that you like and it presents you with music that matches the style.
I'd like a filter on it such that I could find age appropriate music for my son.