MantisBT - opensim
View Issue Details
0008633opensim[REGION] OpenSim Corepublic2019-12-03 13:122019-12-31 13:41
Verwijs 
 
normalmajoralways
resolvedfixed 
LinuxDebianBullseye (10)
 
 
Standalone (Multiple Regions)
BulletSim
XEngine
Mono / Linux64
6.x
0008633: Unable to connect to MySQL 8.xx with "mysql_native_plugin"
Unable to connect to MySQL 8.xx with "mysql_native_plugin".
i've added "mysql_native_plugin" to mysql configuration, so it should work...


22:06:34 - [SERVICE BASE]: Failed to load plugin OpenSim.Region.Framework.Interfaces.ISimulationDataStore from OpenSim.Data.MySQL.dll with args DataSource=localhost; Database=opensim; User ID=Opensim_Tester; Password=*****;System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception. ---> Mono.Btls.MonoBtlsException: Ssl error:1000042e:SSL routines:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION
at /build/mono-6.6.0.160/external/boringssl/ssl/tls_record.c:462
at Mono.Btls.MonoBtlsContext.ProcessHandshake () [0x00048] in <f1d89164a14d4cc28f481be33ba79a08>:0
at Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake (Mono.Net.Security.AsyncOperationStatus status, System.Boolean renegotiate) [0x000da] in <f1d89164a14d4cc28f481be33ba79a08>:0
at (wrapper remoting-invoke-with-check) Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake(Mono.Net.Security.AsyncOperationStatus,bool)
at Mono.Net.Security.AsyncHandshakeRequest.Run (Mono.Net.Security.AsyncOperationStatus status) [0x00006] in <f1d89164a14d4cc28f481be33ba79a08>:0
at Mono.Net.Security.AsyncProtocolRequest.ProcessOperation (System.Threading.CancellationToken cancellationToken) [0x000fc] in <f1d89164a14d4cc28f481be33ba79a08>:0
--- End of inner exception stack trace ---
at Mono.Net.Security.MobileAuthenticatedStream.AuthenticateAsClient (System.String targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, System.Boolean checkCertificateRevocation)[0x0004b] in <f1d89164a14d4cc28f481be33ba79a08>:0
at System.Net.Security.SslStream.AuthenticateAsClient (System.String targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, System.Boolean checkCertificateRevocation) [0x00006] in <f1d89164a14d4cc28f481be33ba79a08>:0
at MySql.Data.MySqlClient.NativeDriver.StartSSL () [0x00035] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.NativeDriver.Open () [0x002ce] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.Driver.Open () [0x0000b] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x0004e] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection () [0x00000] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection () [0x0008a] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver () [0x0003f] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.MySqlPool.GetConnection () [0x0001c] in <0004ab8b375b422f9000ac25a68089d9>:0
at MySql.Data.MySqlClient.MySqlConnection.Open () [0x0016d] in <0004ab8b375b422f9000ac25a68089d9>:0
at OpenSim.Data.MySQL.MySQLSimulationData.Initialise (System.String connectionString) [0x00015] in <6b964457a60c4879989d4066068e2275>:0
at OpenSim.Data.MySQL.MySQLSimulationData..ctor (System.String connectionString) [0x00013] in <6b964457a60c4879989d4066068e2275>:0
at (wrapper managed-to-native) System.Reflection.RuntimeConstructorInfo.InternalInvoke(System.Reflection.RuntimeConstructorInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00005] in <610ede100ffd4304b7e2f592d47303a9>:0
--- End of inner exception stack trace ---
at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x0001a] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Reflection.RuntimeConstructorInfo.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00086] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Reflection.RuntimeConstructorInfo.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.RuntimeType.CreateInstanceImpl (System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes, System.Threading.StackCrawlMark& stackMark) [0x0022b] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Activator.CreateInstance (System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[]args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x0009c] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Activator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <610ede100ffd4304b7e2f592d47303a9>:0
at OpenSim.Services.Base.ServiceBase.LoadPlugin[T] (System.String dllName, System.String className, System.Object[] args) [0x0008b] in <3be84d26ce914911b42e2814d93fd8b6>:0
22:06:34 - [SERVER UTILS]: Error loading plugin OpenSim.Region.Framework.Interfaces.ISimulationDataService from OpenSim.Services.SimulationService.dll. Exception: Could not find a storage interface in the given moduleSystem.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: Could not find a storage interface in the given module
at OpenSim.Services.SimulationService.SimulationDataService..ctor (Nini.Config.IConfigSource config) [0x000cd] in <a35eea81d5954a55a7803b284eb93aec>:0
at (wrapper managed-to-native) System.Reflection.RuntimeConstructorInfo.InternalInvoke(System.Reflection.RuntimeConstructorInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00005] in <610ede100ffd4304b7e2f592d47303a9>:0
--- End of inner exception stack trace ---
at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x0001a] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Reflection.RuntimeConstructorInfo.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00086] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Reflection.RuntimeConstructorInfo.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.RuntimeType.CreateInstanceImpl (System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes, System.Threading.StackCrawlMark& stackMark) [0x0022b] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Activator.CreateInstance (System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[]args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x0009c] in <610ede100ffd4304b7e2f592d47303a9>:0
at System.Activator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <610ede100ffd4304b7e2f592d47303a9>:0
at OpenSim.Server.Base.ServerUtils.LoadPlugin[T] (System.String dllName, System.String className, System.Object[] args) [0x0009d] in <585dd54713344d4bb50f4e8a671cdbbf>:0
22:06:34 - [SERVER UTILS]: Error loading plugin OpenSim.Services.SimulationService.dll: Exception has been thrown by the target of an invocation. args.Length 1
22:06:34 - Fatal error: System.Exception: Could not load an ISimulationDataService implementation from OpenSim.Services.SimulationService.dll:SimulationDataService, as configured in the LocalServiceModule parameter of the [SimulationDataStore]: config section.
at OpenSim.OpenSimBase.StartupSpecific () [0x001c9] in <20d88addcbf8427baf13a308fafb915e>:0
at OpenSim.OpenSim.StartupSpecific () [0x0010c] in <20d88addcbf8427baf13a308fafb915e>:0
at OpenSim.Framework.Servers.BaseOpenSimServer.Startup () [0x00069] in <af68679cae9a428e9b8ab9526695ee27>:0
..
..
No tags attached.
Issue History
2019-12-03 13:12VerwijsNew Issue
2019-12-03 13:37BillBlightNote Added: 0035931
2019-12-03 14:18Robert AdamsNote Added: 0035932
2019-12-03 22:55tampaNote Added: 0035933
2019-12-04 12:25VerwijsNote Added: 0035939
2019-12-31 13:41Ferd FrederixNote Added: 0036021
2019-12-31 13:41Ferd FrederixStatusnew => resolved
2019-12-31 13:41Ferd FrederixResolutionopen => fixed
2019-12-31 13:41Ferd FrederixDescription Updatedbug_revision_view_page.php?rev_id=8743#r8743

Notes
(0035931)
BillBlight   
2019-12-03 13:37   
I do believe the "Latest" mysql requires encrypted connections, which Opensimulator does not support, you must disable TLS/SSL on the server side ... If possible ..

Or use MariaDB that is not enforcing that requirement currently ...
(0035932)
Robert Adams   
2019-12-03 14:18   
That has been my experience -- the latest MySQL has added a bunch of security stuff to the login and connections that have made a lot of old libraries fail. The security additions are probably a Good Thing in the long run but it has tripped up many usages.

My solution has been to either down rev the MySql server version or switch to MariaDB.
(0035933)
tampa   
2019-12-03 22:55   
It would have a small impact on the performance of the connections and the more you have the worse it would be, given OpenSim uses a ton of those I bet you would see slowdown of 10% at worst. MariaDB said it would ask users on secure install script whether to enable encrypted connections or not, so it is not a requirement, but I do not know what the default will be, guessing no, but cannot say for sure.

The question of good or bad can only really be asked for remote db and there you should use tunnels anyways at which point you already have a layer of encryption. Though I usually try to run database local to systems and would recommend doing that, because network and drive delay.

That said, would upgrading the plugin OpenSim uses even be possible? Could it provide the connector and still offer non-encrypted connections side-by-side?
(0035939)
Verwijs   
2019-12-04 12:25   
disabling SLL did the trick for me :) by adding "ssl=0" and "skip_ssl" to mysql configuration. thanks BillBlight :)

An other option would be to add (if possible) "caching_sha2_password" (mysql 8.xx default) authentication for connecting to mysql..

more info here:
https://wp.me/p4oaqh-2F6 [^]
(0036021)
Ferd Frederix   
2019-12-31 13:41   
Marked at fixed per Verwijs