I often find myself in the situation where I need to delete the perforce account of a user who has left the company. Unfortunately I’m usually unable to do so because they have left files open, resulting in this error:

$ p4 user -d -f SOMEUSER
User SOMEUSER has file(s) open on 2 client(s) and can't be deleted.

The solutions posted online usually involve either deleting the clients, or ‘masquerading’ as the client host and reverting the files by hand. This is very tedious, so I wrote a python script to do it instead. It’s a bit crude, but all it does is take usernames off the command line, and proceeds to revert all the files that user has open on the server.

Continue reading »

 

I recently upgraded my work PC from Natty to Oneiric, and discovered that whenever I had a window open that wasn’t maximized, it’s backend process and xorg would use up 100% of the cpu.

I was nearly about to rebuild my machine when I discovered that it only happened for non-maximized GTK windows. As a last ditch effort, I ran gtk-theme-switch2, and switch my theme. Magically, this fixed the problem!

Part of the issue was that I’m running in Fluxbox, not Gnome or Unity. I think somehow it got the theme messed up during the upgrade, and since neither Gnome nor Unity had the chance to set it to a correct theme, it borked.

 

Yes, I know there is a handy and rather well thought out guide here, but I thought I would post my experiences, especially given that blindly following the aforementioned tutorial resulted in my existing Ubuntu installation being wiped…
Continue reading »

 

So I ran into this problem earlier this week. Basically we have a Solaris 10 server hosting files over NFS. The NFS server that comes with Solaris 10 supports NFSv4, but doesn’t seem to include idmapd, which is responsible for mapping user and group ids. Everything I’ve read suggests that idmapd is required on both the client and server in order for it to work correctly. Since I had no real desire to screw with the server configuration (and since other machines could mount it correctly) I kept searching.

The solution I found is a bit hacky, but it works for me. Basically it boils down to adding nfsvers=3 to the mount parameters. In my case, I was using automount, so I just added the option to every line in my /etc/auto.master. This just forces it to mount using NFSv3, which works because of it’s simplicity, but is possibly more insecure (and not all NFS servers will support it).

If possible, you should really just consider doing things the proper way, and getting idmapd set up on your servers and clients. This is just a quick work-around for when you are backed into a corner like I am.

 

So in case you haven’t heard, there was some drama between the Hudson community and Oracle. I won’t go into detail as there are plenty of articles about what went on.

All of the issues that were opened on the Hudson Jira for the Perforce plugin are still open, but I’m unassigning those that are assigned to me. I’ll continue maintaining the Perforce plugin against Jenkins, so bugs will be tracked there, and any fixes I make will be made in the Jenkins repository. Note that the Jenkins version will still work for Hudson until Oracle/Sonatype and/or the Jenkins Community decide to break cross-compatibility.

I’m not saying the Hudson version is dead, just that it doesn’t have an active maintainer. Someone may take over maintaining it, but as far as I know, only one person has been assigned to working on Hudson and the hundreds of plugins written for it.

 

Specifically, I’m attempting today to deploy the Perforce P4Java api to the Sonatype core Maven repository. Sonatype has plenty of documentation on this process, but most of them make the assumption that you are building the artifacts from source, and that you are already familiar with maven. I’m a maven newbie and I obviously don’t have the source. Here’s a quick rundown of how I did.
Continue reading »

 

So I’ve got this ridiculous task ahead of me… I somehow need to call a Spring Bean data access object (DAO) from InstallAnywhere using groovy scripting. The idea is that the webapp being installed has all the code in order to set up the database, but there are certain things that need to be done by the installer. Part of getting this working is dynamically loading jars from a directory, and using reflection to grab the class and method I need to call…
Continue reading »

 

I ran into this obsurd issue today. Apparently Suse 11 zLinux doesn’t handle partition creation properly on DASD disks. When it gets to actually running the fdasd command (zLinux version of fdisk, as near as I can tell) it simply hangs there forever.

The work around is pretty basic, just exit out of yast, and launch fdasd manually.

fdasd /dev/dasdc

The usage is basically identical to fdisk, except partitions are measured in tracks instead of blocks or sectors, and there are only two partition types instead of the multitude offered by regular partition tables.

After you’ve done that and written out your changes, you can jump back into yast to finish whatever you needed to do with it (formatting, creating volume groups etc.)

 

Just ran into this issue while setting up a CentOS 4.7 test virtual machine for some debugging work. After some digging around on the webernets, I found this little gem.

Basically, the kernel is hardcoded for a higher timer frequency than VirtualBox is providing. 10 times in fact. The simple solution is to add divider=10 to the kernel options. This slowed the clock of the guest down to a more accurate level.

 

This recently came up in the hudson users mailing list, so I figured I’d post it here.

Lets say you wanted to setup a downstream job that would only run when certain conditions are met (such as certain build parameters, or anything else for that matter). Well, this is what I typically use the Groovy Postbuild Plugin for!
Continue reading »

Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Suffusion theme by Sayontan Sinha