Perforce Librarian checkout [path to file] failed

The following article is meant to assist you in fixing a specific problem. Data will be removed if you follow the instructions. I provide no warranty so follow these instructions at your own risk. I always recommend that you reach out to Perforce Support rather than attempting fixes yourself. Always make sure you have a backup of your Perforce databases and versioned files. If you do not know how to back them up then you should not be reading this article. Save yourself some pain and contact support.

When attempting to access a file in your Perforce code repository you may experience the following

error.Librarian checkout [path to file] failed
Error opening librarian file [path to file] revision #.#####.
RCS checkout #.##### failed!
RCS no such revision #.#####!

There is a knowledgebase article that describes how to fix this. I’m writing this article to shortcut some parts. The fix requires you set up the command line environment and most of us admins don’t have the command line environment for accessing files configured as we don’t check out and check in files from the command line all the time.

Here is the knowledgebase article: http://answers.perforce.com/articles/KB/3186/

Below are the steps you need to take on your client workstation, not your server. I accomplished this on a Mac. The same instructions will work for Linux. You can translate the instructions for a Windows system by changing the directory nomenclature.

1. Download and install the perforce command line client. https://www.perforce.com/downloads/helix

2. Install and create a path either in a ~/.bash_profile

#Contents of .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
# the path to Users/adminmatto/perforce is the location of my p4 executable.
PATH=$PATH:$HOME/bin:/Users/adminmatto/perforce

export PATH

#P4Port contains the DNS hostname of your server and the port on which it runs.
P4PORT=[DNS hostname of the server]:1666

export P4PORT
#Your perforce username
P4USER=adminmatto

export P4USER
#Its bad form to store the password but some people may want to do it.
P4PASSWD=[password here if you want to]

export P4PASSWD

3. Now that you have Perforce configured you need to create a client that maps your workstation directory and your repository. Use the command p4 client [name you want to call it]. This should bring up an editor with a client file. You need to verify the hostname is correct and set your root path. The root path should be the path on your machine where checked out Peforce files will be stored. In my case, I made my root path ~/perforce

4. Now from the terminal change directory to that location. Run the following command to connect and get changes.

p4 sync -k //[your perforce depot name]/…

5. After the sync is complete, you are ready to remove the bad revisions.

p4 obliterate //your perforce depot name/[path to the file in question]#[revision number]

#note that this command will not delete anything until you add the -y switch. It will simply report what it will do.

When you are ready to proceed deleting the command becomes…

p4 obliterate -y //your perforce depot name/[path to the file in question]#[revision number]

Posted in Versioning Software | Leave a comment

Installing Wildcard Certificate on Cisco ASA 5512X Firewall

The instructions referenced here have been derived from the URL below.

https://supportforums.cisco.com/document/11938476/installing-certificate-webvpn-without-csr-asa-843

You will need to create a certificate chain and call it root.crt

openssl pkcs12 -export -in star.mycompany.com_cert.pem -inkey star.mycompany.com_key.pem -certfile root.crt -out bundle.p12

Enter Export Password: [Enter your own generated password.]

Verifying – Enter Export Password: [Enter your own generated password.]

cat bundle.p12 | base64
# Take the output of the cat command and copy them into a text document. You will need to add end of line characters after about 200 characters.
# If you don’t do this, the terminal line is limited to a certain number of characters and the import will fail. It will fail with a generic error
# which makes it hard to determine why it failed.

On the ASA:

ASA(config)# crypto ca import star.mycompany.com pkcs12 secret

Enter the base 64 encoded pkcs12.

End with the word “quit” on a line by itself:

# BASE64 OUTPUT from the cat command of bundle.p12 #

quit

% The CA cert is not self-signed.

% Do you also want to create trustpoints for CAs higher in

% the hierarchy? [yes/no]: yes

INFO: Import PKCS12 operation completed successfully

ssl trust-point star.mycompany.com outside

Posted in Network | Leave a comment

Cisco WAP convert lightweight to autonomous AP

Converting a lightweight access point to an autonomous access point is not an easy task. First off, you must have access to the OS image file for the autonomous access point. To download this software you must have a smartnet support contract for that device. To get this support you must contact the vendor you bought the device through and purchase it. You will need a Cisco web account to log into to download the software. Once you have downloaded the software you need to put it in a location that is shared by a TFTP server.

Boot the access point and connect to it by the console/serial cable.

Commands

debug capwap con cli

conf t

boot manual

reload

set IP_ADDR [IP you would like to use]

set NETMASK [subnet you would like to use]

set DEFAULT_ROUTER [gateway IP]

tftp_init

ether_init

flash_init

tar -xtract tftp://[TFTP_IP]>/[Path to OS image(tar file)] flash:

set BOOT flash:/[image_directory]/[image_name]
“The image is the largest file that was extracted. Looks like this (/ap3g2-k9w7-mx.153-3.JC/ap3g2-k9w7-xx.153-3.JC)
set MANUAL_BOOT no

set

boot

Posted in Network | Leave a comment

Making Passive or PASV mode work with VSFTPD

Below is a configuration that I used to get VSFTPD working in passive mode on an AWS Red Hat 7 Instance. The key line that allows me to make this work was changing the listen_ipv6 to listen. For some reason passive would not work until that was done. It is supposed to support both protocols in the IPV6 mode but it does not seem to play well with passive mode. I will also point out that I had to open all the ports below on my AWS security group and the Red Hat firewall. Also make sure that you configure or disable SElinux. SELinux will not allow VSFTPD to function in it’s default state.

listen=YES
#listen_ipv6=YES
connect_from_port_20=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_max_port=10100
pasv_min_port=10090
port_enable=YES
allow_writeable_chroot=YES
pasv_address=[Your Elastic IP Here]
pasv_addr_resolve=NO

Posted in Linux | Leave a comment

Salesforce .Net API problems serializing headers – CS0030

 

I have a need to use the Salesforce .Net API tools for a project.  I was following the documentation on how to set this up and ran into a problem.  When I followed the instructions here:

https://developer.salesforce.com/page/Integrating_Force.com_with_Microsoft_.NET

I experienced an error logging in.  The error is listed below.

Unexpected login error: There was an error in serializing one of the headers in message loginRequest: ‘Unable to generate a temporary class (result=1). error CS0030: Cannot convert type ‘CaptionUpdates.SFDC.ListViewRecordColumn[]’ to ‘CaptionUpdates.SFDC.ListViewRecordColumn’ error CS0030: Cannot convert type ‘CaptionUpdates.SFDC.ListViewRecordColumn[]’ to ‘CaptionUpdates.SFDC.ListViewRecordColumn’ error CS0029: Cannot implicitly convert type ‘CaptionUpdates.SFDC.ListViewRecordColumn’ to ‘CaptionUpdates.SFDC.ListViewRecordColumn[]’ error CS0029: Cannot implicitly convert type ‘CaptionUpdates.SFDC.ListViewRecordColumn’ to ‘CaptionUpdates.SFDC.ListViewRecordColumn[]’ ‘.  Please see InnerException for more details.        

 

It took some searching to find out there is a bug in the WSDL import file.  There is a list that specified as a multidimensional array that should be a single dimension array.   I chose to fix this in the reference.cs file after the import.

The fixes are outlined in the images below:

Change this

Change From

To this

Change To

Change this

Change From

To this

Change to

Posted in Programming | 1 Comment

Exchange 2010 QuarantinedMailboxes -Database Mounted, some users cannot connect

     I recently ran into a problem with and Exchange 2010 server.  I had a failure that caused Exchange to go down.  I resolved the issue that caused the failure and was able to remount my databases.  After mounting and testing I found that most of my users could not connect.  When connecting to OWA the user would be presented with an error that stated that an unexpected error occurred.

This was a very frustrating problem because I could not find any information on the server side that would indicate the problem.  There was no indication in the interface that would explain why the users were not able to access the system.

When trying to move one of these mailboxes I received an error that indicated that the mailbox was quarantined.  Searching on this resulted in the article below.  It turns out that when Exchange has a difficult time accessing a mailbox it will quarantine it forever.  I cannot explain how irritating this was.  The fix is to remove the quarantine reg keys for each affected mailbox and then remounting the database.

Backup your registry before making any changes.  I make no promises or warranties on any actions taken to resolve this issue.  If you do not feel comfortable I recommend contacting Microsoft for support.

Location of the RegKeys:

HKLM\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server Name>\Private-{db guid}\QuarantinedMailboxes\{mailbox guid}

If you see mailbox guid reg key under the QuarantinedMailboxes key then you are experiencing this problem.

http://technet.microsoft.com/en-us/library/bb331958.aspx

 

Posted in Microsoft Server | Leave a comment

How to add bonjour to your Cisco Wireless Controller

 

I recently received a request to add bonjour support to a wireless network for testing.  I thought this would be easy but then I found out that Cisco wireless controllers do no support this without additional configuration.  I found a great article on Cisco’s website that demonstrated how to configure bonjour.

Enjoy…

http://www.cisco.com/c/en/us/support/docs/wireless/aironet-1100-series-access-point/113443-cuwn-apple-bonjour-dg-00.html

Posted in Network | Leave a comment

About Matt Onken

Matt Onken works for Telestream Inc. as a Network Administator and IT Team Leader.  Matt started work in the field of Information Technology in 1996 and graduated with a degree in Computer Science from Chico State in 2003.  Matt’s experience includes operating a consulting business from 2001 to 2004.  Since that time he has worked at FAFCO Inc. and Telestream Inc.

Matt lives in Nevada City, CA and is an active participant in the Cub Scouts along with his son.

Matt enjoys fishing, backpacking, and miniature wargaming.

Posted in Uncategorized | Leave a comment