« November 2008 »
SunMonTueWedThuFriSat
      
1
2
3
4
5
7
8
9
10
11
12
13
14
15
16
21
22
23
24
25
26
27
28
29
30
      
Today
XML

Neat blogs

Navigation

Editing

Powered by Roller Weblogger.

statcounter.com

clustrmaps.com

Locations of visitors to this page

technorati.com

20081120 Thursday November 20, 2008
Locking down a gate/respository

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.


Originally posted on Kool Aid Served Daily
Copyright (C) 2008, Kool Aid Served Daily

20081119 Wednesday November 19, 2008
Debugging an array

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!


Originally posted on Kool Aid Served Daily
Copyright (C) 2008, Kool Aid Served Daily

20081118 Tuesday November 18, 2008
VMware: Cannot find VMnet0, starting disconnected

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.


Originally posted on Kool Aid Served Daily
Copyright (C) 2008, Kool Aid Served Daily
Being a family IT support guy

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.


Originally posted on Kool Aid Served Daily
Copyright (C) 2008, Kool Aid Served Daily

20081117 Monday November 17, 2008
The Business of Blogging

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:

  1. Write 2 - 3 times a week.
  2. Provide 3 external links.

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.


Originally posted on Kool Aid Served Daily
Copyright (C) 2008, Kool Aid Served Daily

20081106 Thursday November 06, 2008
PANDORA

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.


Originally posted on Kool Aid Served Daily
Copyright (C) 2008, Kool Aid Served Daily