Solaris cmd line: new error

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Solaris cmd line: new error

Post by James Jeffers » Tue Jan 03, 2006 7:54 am

Maybe this one is old, still, here is the text:
bash-2.03$ vault listworkingfolders

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
in <0x0007c> VaultClientNetLib.VaultConnection:Logout ()
in <0x00020> VaultClientOperationsLib.ClientInstance:Logout ()
in <0x00058> VaultCmdLineClient.VaultCmdLineClient:Logout (Boolean bForceLogout)
in <0x00468> VaultCmdLineClient.VaultCmdLineClient:Main (System.String[] args)
I know, Solaris is not really the focus right now. But if anyone knows if this error is Mono related, etc, and has a fix, please recommend a solution.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 8:41 am

James:

Can you give this a try?

1) In the directory as the vault.exe binary, create a file named vault.exe.config with the following contents:

Code: Select all

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
	<!--
			enableLogging turns on client-side logging to a file in the path specified in logFilePath.
			If you think you have this file configured properly, but no log file appears, 
			check the system event log (messages are written there if the log file cannot be opened).

			<enableLogging> settings:
				value="[true|false]" - When true logging is enabled, when false no messages will be logged.
	-->
	<add key="enableLogging" value="true" />
	<!--
				logFilePath is the fully qualified path to the name of the file which will be used
				for logging.  If this value is unspecified, the default will be the user process' 
				%TEMP% directory.
				
				<logFilePath> settings:
					value="DRIVE:\PATH\FILENAME" - When true logging is enabled, when false no messages will be logged.
	-->
	<add key="logFilePath" value="" />
	<!--
			classesToLog lets you filter some log messages by class name.  SourceGear support will be
			able to suggest the appropriate class names to use for specific problems.  "all" will
			result in lots and lots (really) of messages.
			
			<classesToLog> settings:
				value="class1,class2,class3,..." - Log these classes; separate with commas.
				value="all" - Log all messages from all classes.
	-->
	<add key="classesToLog" value="all" />
	<!--
			includeLoggingStackTraces includes stack traces with each log message in the client-side log.
			enableLogging must be set to "true" for this to have any effect.
			
			<includeLoggingStackTraces> settings:
				value="[true|false]" - When true stack traces are included, when false they are not.
	-->
	<add key="includeLoggingStackTraces" value="false" />
	<!--
			includeThreadInfo includes thread names and IDs with each log message in the client-side log.
			enableLogging must be set to "true" for this to have any effect.
			
			<includeThreadInfo> settings:
				value="[true|false]" - When true thread info is included, when false it is not.
	-->
	<add key="includeThreadInfo" value="true" />
	<!--
			numUploadThreads tells Vault client how many upload threads to use
			when sending files to the server.  A setting of zero tells Vault
			to simply use its default.  The maximum allowable value is five.
			
			<numUploadThreads> settings:
				value="(integer)" - How many upload threads to use
	-->
	<add key="numUploadThreads" value="0" />
</appSettings>
</configuration>
2) Try any vault CLC command

3) In $TEMP, do you have a VaultCLC.txt file? If so, we may be able to gain a bit more insight of what is happening.
Jeff Clausius
SourceGear

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Post by James Jeffers » Tue Jan 03, 2006 9:03 am

I created the vault.exe.config in the directory containing the vault.exe binary.

I exported a value TEMP and set it to "/tmp".

I run

"vault listworkingfolders"

which generates the error I listed above.

There is no file in /tmp as described.

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Post by James Jeffers » Tue Jan 03, 2006 9:08 am

I should charify that the "vault" is actually a wrapper script that runs the mono platform with the "vault.exe" and its arguments.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 9:17 am

OK.

Let's try to give the log file a name...

In vault.exe.config, set the attribute of logFilePath to "/tmp/vault-clc.log". Does that now generate a log file?
Jeff Clausius
SourceGear

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Post by James Jeffers » Tue Jan 03, 2006 9:20 am

Unfortunately, that didn't produce the log file. Perhaps there is a problem further "upstream"?

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 9:32 am

Its possible. I'm looking into the logging classes right now.
Jeff Clausius
SourceGear

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 9:50 am

Can we check some permissions and so forth?
You'll need to translate for the platform, but we should have similar setups.

1) I unzipped the Vault 3.1.6 Client API in /usr/local/bin/vault

2) Created vault.exe.config in that directory

3) Modified vault.exe.config's logFilePath to <add key="logFilePath" value="/tmp/vault-clc.log" />

4) Set permissions on vault.exe.config to rw-r--r--

5) Everyone has read/write/execute to /tmp

6) Made sure mono is in the path

From within my home directory, I ran mono /usr/local/bin/vault.exe LISTREPOSITORIES -user myuser -password pass -server 192.168.15.25 -ssl.

This created a vault-clc.log file.

Are your steps similar? What if you run the command by hand?
Jeff Clausius
SourceGear

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Post by James Jeffers » Tue Jan 03, 2006 10:01 am

Now we're gettin' somewhere...
<vault>
<error>
An exception was thrown by the type initializer for System.Xml.Serialization.XmlSerializer
</error>
<exception>
System.TypeInitializationException: An exception was thrown by the type initializer for System.Xml.Serialization.XmlSerializer ---> System.Configuration.ConfigurationException: The `indentsize' attribute must be an integral value. (/usr/local/etc/mono/1.0/machine.config line 1) ---> System.NotImplementedException: The requested feature is not implemented.
in <0x00000> <unknown method>
in (wrapper managed-to-native) System.Threading.Thread:MemoryBarrier ()
in <0x0004c> System.Diagnostics.TraceImpl:InitOnce ()
in <0x00004> System.Diagnostics.TraceImpl:get_Listeners ()
in <0x00004> System.Diagnostics.TraceImpl:get_ListenersSyncRoot ()
in <0x00010> System.Diagnostics.TraceImpl:set_IndentSize (Int32 value)
in <0x00208> System.Diagnostics.DiagnosticsConfigurationHandler:AddTraceAttributes (IDictionary d, System.Xml.XmlNode node)--- End of inner exception stack trace ---

in <0x0026c> System.Diagnostics.DiagnosticsConfigurationHandler:AddTraceAttributes (IDictionary d, System.Xml.XmlNode node)
in <0x0001c> System.Diagnostics.DiagnosticsConfigurationHandler:AddTraceNode (IDictionary d, System.Xml.XmlNode node)
in (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_IDictionary_XmlNode (System.Collections.IDictionary,System.Xml.XmlNode)
in <0x00368> System.Diagnostics.DiagnosticsConfigurationHandler:Create (System.Object parent, System.Object configContext, System.Xml.XmlNode section)
in <0x001cc> System.Configuration.ConfigurationData:GetConfigInternal (System.String sectionName)
in <0x000d0> System.Configuration.ConfigurationData:GetConfig (System.String sectionName)
in <0x00134> System.Configuration.ConfigurationData:GetConfigInternal (System.String sectionName)
in <0x000d0> System.Configuration.ConfigurationData:GetConfig (System.String sectionName)
in <0x00024> System.Configuration.DefaultConfig:GetConfig (System.String sectionName)
in <0x00028> System.Configuration.ConfigurationSettings:GetConfig (System.String sectionName)
in <0x00204> System.Xml.Serialization.XmlSerializer:.cctor ()--- End of inner exception stack trace ---

in <0x00000> <unknown method>
in <0x000b4> System.Web.Services.Protocols.TypeStubInfo:Initialize ()
in <0x00090> System.Web.Services.Protocols.LogicalTypeInfo:CreateTypeStubInfo (System.Type type)
in <0x00074> System.Web.Services.Protocols.LogicalTypeInfo:GetTypeStub (System.String protocolName)
in <0x00024> System.Web.Services.Protocols.TypeStubManager:GetTypeStub (System.Type t, System.String protocolName)
in <0x00024> System.Web.Services.Protocols.SoapHttpClientProtocol:.ctor ()
in <0x00008> VaultClientNetLib.ClientService.VaultService:.ctor ()
in (wrapper remoting-invoke-with-check) VaultClientNetLib.ClientService.VaultService:.ctor ()
in <0x000d8> VaultClientNetLib.VaultConnection:InitService (AccessLevelType accessLevel)
in <0x00014> VaultClientOperationsLib.ClientInstance:Init (AccessLevelType accessLevel)
in <0x00134> VaultCmdLineClient.VaultCmdLineClient:Login (Boolean bAllowAuto, Boolean bSaveSession)
in <0x00010> VaultCmdLineClient.VaultCmdLineClient:Login ()
in <0x00018> VaultCmdLineClient.VaultCmdLineClient:ProcessCommandListRepositories ()
in <0x030f4> VaultCmdLineClient.VaultCmdLineClient:ProcessCommand (VaultCmdLineClient.Args curArg)
</exception>
<result success="no" />
</vault>
and here is the log file output...
bash-2.03$ cat /tmp/vaultclc.log
01/03/2006 10:57:06 <generic>: [<No Name>:1] vault, Version=3.1.6.3658, Culture=neutral
01/03/2006 10:57:07 <generic>: [<No Name>:1] Logging all classes
01/03/2006 10:57:08 <generic>: [<No Name>:6] SimpleLogger finalized
01/03/2006 10:57:19 <generic>: [<No Name>:1] vault, Version=3.1.6.3658, Culture=neutral
01/03/2006 10:57:20 <generic>: [<No Name>:1] Logging all classes
01/03/2006 10:57:21 <connection>: [<No Name>:1] InitService started.
01/03/2006 10:57:29 <connection>: [<No Name>:1] Logout started.
01/03/2006 10:57:29 <connection>: [<No Name>:1] Logout finished.
01/03/2006 10:57:29 <generic>: [<No Name>:6] SimpleLogger finalized

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 10:16 am

What version of mono are you using?

Did you ever find any SPARC binaries or did you have to do a build?
Jeff Clausius
SourceGear

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Post by James Jeffers » Tue Jan 03, 2006 10:18 am

I tried Mono 1.1.12, which I could not get to build.

I then tried 1.1.10, which was listed as the last "stable" release.

I haven't seen any Solaris binaries, so each build has been done by hand. I've noticed that the Solaris builds are very error prone and not very fun.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 10:30 am

OK.

What is strange is the mono error is listing "/usr/local/etc/mono/1.0" in the error message.

In my setup, I have a mono/1.0 and a mono/2.0 each with its own machine.config. In each machine.config file, I have an xml element in the <system.diagnostics> for autoflush. It reads <trace autoflush="false" indentsize="4" />

Do you have the same setting? Do you have both a 1.0 and a 2.0 directory?
Jeff Clausius
SourceGear

James Jeffers
Posts: 95
Joined: Mon Aug 29, 2005 12:39 pm

Post by James Jeffers » Tue Jan 03, 2006 10:40 am

Holy smokes, we do have a 2.0 and 1.0 directory!

Let me see if I can figure out why/what is happening. Jeff, thanks for your assistance.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 10:41 am

I do too, but I don't know if mono is using this directory.

FWIW - I did find some stuff related to a Mono env variable and XML Serialization - http://man-wiki.net/index.php/1:mono - Search for MONO_XMLSERIALIZER_THS.

However, this seems to be focused to mono 1.0. I don't really know if this applies to mono 1.1.
Last edited by jclausius on Tue Jan 03, 2006 10:45 am, edited 1 time in total.
Jeff Clausius
SourceGear

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Jan 03, 2006 10:43 am

Also, check to see if you have a man page on mono. If so, something in there may help determine what is going on.
Jeff Clausius
SourceGear

Locked