gloebit / opensim-moneymodule-gloebit

OpenSim addon module integrating with the Gloebit digital currency service
GNU Lesser General Public License v3.0
8 stars 12 forks source link

Unrecognized Guid format #79

Open Tampa opened 5 years ago

Tampa commented 5 years ago

Compiled from Tampa:master Stacktrace non-graceful termination

Module failures should not cause main process termination, any thoughts?

^[[57;1H^[[57;1HRegion (root) # ^[[57;17H^[[57;17H^[[57;17H^[[57;1HRegion (root) # ^[[57;17H^[[57;17H[ERROR] FATAL UNHANDLED EXCEPTION: System.FormatException: Unrecognized Guid format. at System.Guid+GuidResult.SetFailure (System.Guid+ParseFailureKind failure, System.String failureMessageID, System.Object failureMessageFormatArgument, System.String failureArgumentName, $ at System.Guid+GuidResult.SetFailure (System.Guid+ParseFailureKind failure, System.String failureMessageID) [0x00000] in <e29f59307e5e4e33ab73bb6530764ec9>:0 at System.Guid.TryParseGuid (System.String g, System.Guid+GuidStyles flags, System.Guid+GuidResult& result) [0x00020] in <e29f59307e5e4e33ab73bb6530764ec9>:0 at System.Guid..ctor (System.String g) [0x00029] in <e29f59307e5e4e33ab73bb6530764ec9>:0 at MySql.Data.Types.MySqlGuid.MySql.Data.Types.IMySqlValue.ReadValue (MySql.Data.MySqlClient.MySqlPacket packet, System.Int64 length, System.Boolean nullVal) [0x00052] in <0004ab8b375b422$ at MySql.Data.MySqlClient.NativeDriver.ReadColumnValue (System.Int32 index, MySql.Data.MySqlClient.MySqlField field, MySql.Data.Types.IMySqlValue valObject) [0x00050] in <0004ab8b375b422f$ at MySql.Data.MySqlClient.Driver.ReadColumnValue (System.Int32 index, MySql.Data.MySqlClient.MySqlField field, MySql.Data.Types.IMySqlValue value) [0x00000] in <0004ab8b375b422f9000ac25a6$ at MySql.Data.MySqlClient.ResultSet.ReadColumnData (System.Boolean outputParms) [0x00004] in <0004ab8b375b422f9000ac25a68089d9>:0 at MySql.Data.MySqlClient.ResultSet.NextRow (System.Data.CommandBehavior behavior) [0x00075] in <0004ab8b375b422f9000ac25a68089d9>:0 at MySql.Data.MySqlClient.MySqlDataReader.Read () [0x00023] in <0004ab8b375b422f9000ac25a68089d9>:0 at OpenSim.Data.MySQL.MySQLGenericTableHandler1[T].DoQueryWithConnection (MySql.Data.MySqlClient.MySqlCommand cmd, MySql.Data.MySqlClient.MySqlConnection dbcon) [0x002db] in <e2c9d8e93af$ at OpenSim.Data.MySQL.MySQLGenericTableHandler1[T].DoQuery (MySql.Data.MySqlClient.MySqlCommand cmd) [0x00023] in <e2c9d8e93af04212b2088ba35f915bcf>:0 at OpenSim.Data.MySQL.MySQLGenericTableHandler1[T].Get (System.String[] fields, System.String[] keys, System.String options) [0x000be] in :0 at OpenSim.Data.MySQL.MySQLGenericTableHandler1[T].Get (System.String[] fields, System.String[] keys) [0x00001] in <e2c9d8e93af04212b2088ba35f915bcf>:0 at Gloebit.GloebitMoneyModule.GloebitUser.Get (System.String appKeyStr, System.String agentIdStr) [0x0008b] in <cbb1828316304991b76dd8d467c45b06>:0 at Gloebit.GloebitMoneyModule.GloebitUser.Get (System.String appKeyStr, OpenMetaverse.UUID agentID) [0x0000f] in <cbb1828316304991b76dd8d467c45b06>:0 at Gloebit.GloebitMoneyModule.GloebitMoneyModule+<>c__DisplayClass116_0.<OnCompleteMovementToRegion>b__0 (System.Object <p0>) [0x00057] in <cbb1828316304991b76dd8d467c45b06>:0 at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x00007] in <e29f59307e5e4e33ab73bb6530764ec9>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preser$ at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCt$ at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00021] in <e29f59307e5e4e33ab73bb6530764ec9>:0 at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <e29f59307e5e4e33ab73bb6530764ec9>:0 at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <e29f59307e5e4e33ab73bb6530764ec9>:0 ^[[?1l^[>^[[39;49m

kcozens commented 5 years ago

I suspect the problem is the database connection string is missing "Old Guids=true;" at the end.

Tampa commented 5 years ago

It's not setup to use anything but the simulators database. Connected the simulator to a central database, same error. Deleted and created the Gloebit tables from scratch on the central database and now it works flawlessly. Not entirely sure what the problem was as I even tried the master dev dll from the downloads section.

colosi commented 5 years ago

In the past, usually a GUID error was from the connection string missing "Old Guids=true;" as @kcozens mentioned above.

There might be something we can test early on and wrap in a try/catch to disable Gloebit if it fails rather than crash everything. Not sure off the top of my head.

Tampa commented 5 years ago

That would be good, because as is now the stacktrace does not even show up in the logs as it is a hard crash. Like I said, normally modules should fail without killing the main process so long as the failure otherwise has not adverse effects on the simulator.