Linux support

A place where you can talk about anything Dawn of Light or DAOC related

Moderators: Project Admin, Support Team

Linux support

Postby HunabKu » Thu Sep 01, 2016 12:27 pm

Hi all, i make this subject to speak about linux support.

What issues with solutions we have :
- Linux differentiate uppercase and lowercase unlike Windows does. So the generated code is buggued.
Temporary fix : Launch MonoDevelop with MONO_IOMAP=case prefix.
Hypotetic definitive fix : Don't know atm, this issue comes from Mono code.

- Mono don't know ColoredConsoleAppender.
Temporary fix : Replace ColoredConsoleAppender to ConsoleAppender in config/logconfig.xml file.
Hypotetic definitive fix : Make building detect if host os is linux, then modify logconfig.xml file before copying. Maybe DolServer.exe detect if logconfig.xml is host os compatible and change it before launching.

- Linux differentiate uppercase and lowercase unlike Windows does. So the same folder with case differencies is considered as two folders by MonoDevelp when loading solution.
Temporary fix : Replace by AdminCommands/GMCommands/PlayerCommands the other case versions in GameServer/GameServer.csproj file.
Hypotetic definitive fix : Make temporary fix and commit it. This will not affect Windows building !
Commited here, waiting validation.

- File names and lines appear <file unknow>:0 in console/logs when an error occur.
Temporary fix : Launch mono with --debug parameter.
Hypotetic definitive fix : Don't know atm, this issue comes from Mono code.

- Building create 2 folders : debug and Debug.
Temporary fix : Copy debug files on Debug after each building. I personnaly added cp -rf debug/* Debug/ in my DoL launch script.
Hypotetic definitive fix : Found debug occurencies, modify it on the core ans commit it.

- When an Windows gererated serverconfig.xml file exist, server won't to start.
Temporary fix : Remove existing serverconfig.xml and launch DOLConfig.exe to generate another.
Hypotetic definitive fix : I mean make DOLServer.exe detect if host os is linux, then delete existing if needed and launch DOLConfig.exe to generate a serverconfig.xml file is linux compatible.

- Have this error on top DoLServer start :
Code: Select all
Starting GameServer ... please wait a moment! log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [mapping] to set object on [log4net.Appender.ConsoleAppender] log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [mapping] to set object on [log4net.Appender.ConsoleAppender] log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [mapping] to set object on [log4net.Appender.ConsoleAppender] log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [mapping] to set object on [log4net.Appender.ConsoleAppender]
Temporary fix : Comment or Remove <mapping>...</mapping> lines in logconfig.xml.


What issues we have no solution.
- Have this log when i go to NF :
Code: Select all
Search for frontiers/frontiers.mpk:numkeeps failed
Researches : I tried to add a empty numkeeps file to the frontiers.mpk file. The message still occurs. When i try to reload the mpk file on the software, "Range check error" message appears. I think a package checksum is in place and block to add/remove files. I think they are same error on Wndows but don't show. I think so the numkeep file isn't still used because don't block anything in game.
:!: NO FIX :!:

What issues with solutions we have NOT, need help :
- Certains file names and lines appear like <15029c3817b245ffb50e9433f5ade25d>:0 in console/logs when an error occur.
More details.

DOL.GS.GameEvents.StatPrint.GetProcessCounterName() not fully supported on Linux
More details.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby HunabKu » Fri Oct 07, 2016 10:01 am

.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby Leodagan » Fri Oct 07, 2016 2:50 pm

This is all "Build" Problem for Linux...

Except for the serverconfig.xml problem (probably due to line ending in CR/LF instead of LF)

If someone is using Linux as development platform I hope they'll have the skills to work around these glitches easily !

DOL Runtime have no issue that I know of when running with Linux/Mono...

By the way don't forget that you can use symlink on Linux filesystem, (ln -s) this can provide different case file name or directory name leading to the same content.
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: Linux support

Postby HunabKu » Sat Oct 08, 2016 7:27 am

By the way don't forget that you can use symlink on Linux filesystem, (ln -s) this can provide different case file name or directory name leading to the same content.
Great idea, i will test :wink:
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby HunabKu » Sat Oct 08, 2016 7:47 am

Sadly not works. The --debug help for certain files:line but not all, with or without symlink :
[09:54:07,731] InvokeSafe
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'DOL.GS.Quests.Albion.BeginningOfWar' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object
at DOL.GS.GameLocation.ConvertLocalXToGlobalX (System.Int32 localX, System.UInt16 zoneId) [0x00009] in /home/hunabku/dol/GameServer/world/GameLocation.cs:95
at DOL.GS.GameLocation..ctor (System.String name, System.UInt16 regionId, System.UInt16 zoneId, System.Int32 x, System.Int32 y, System.Int32 z, System.UInt16 heading) [0x00006] in /home/hunabku/dol/GameServer/world/GameLocation.cs:32
at DOL.GS.Quests.Albion.BeginningOfWar..cctor () [0x00014] in /home/hunabku/dol/Debug/scripts/quests/Albion/BeginningOfWar.cs:87
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00053] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at DOL.WeakMulticastDelegate.InvokeSafe (System.Object[] args) [0x0001c] in /home/hunabku/dol/DOLBase/WeakMulticastDelegate.cs:307
I tested to build with xbuild directly, not with MonoDevelop but same problem.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby HunabKu » Sat Oct 08, 2016 8:14 am

New other problem : MySQL problem, only on linux, it works on Windows. Due that, server won't launch.
---> (Inner Exception #10) MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host 'localhost' for user 'root' using method 'mysql_native_password' failed with message: Reading from the stream has failed. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed. ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.
at MySql.Data.MySqlClient.MySqlStream.ReadFully (System.IO.Stream stream, System.Byte[] buffer, System.Int32 offset, System.Int32 count) [0x00015] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.MySqlStream.LoadPacket () [0x0000e] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.MySqlStream.LoadPacket () [0x000a5] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.MySqlStream.ReadPacket () [0x00000] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.NativeDriver.ReadPacket () [0x00000] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket () [0x00000] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationFailed (System.Exception ex) [0x00043] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket () [0x00011] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate (System.Boolean reset) [0x00098] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.NativeDriver.Authenticate (System.String authMethod, System.Boolean reset) [0x0002a] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.NativeDriver.Open () [0x00317] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.Driver.Open () [0x0000b] in <15029c3817b245ffb50e9433f5ade25d>:0
at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x0003e] in <15029c3817b245ffb50e9433f5ade25d>:0 <---
Solved alone without explanation... Maybe Mariadb update.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby HunabKu » Sat Oct 08, 2016 8:36 am

Environment details :
Linux Mint 18 Mate x64
MariaDB 10.1.18
Mono 4.6.1.3
Monodevelop 5.10.0.871

Solved alone without explanation... Maybe Mariadb update.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby HunabKu » Sat Jan 07, 2017 12:35 pm

New problem i've not solved :
Gravity : Non-Blocking
Summary : DOL.GS.GameEvents.StatPrint.GetProcessCounterName() not fully supported on Linux
Code: Select all
InvokeSafe System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NotImplementedException: The method or operation is not implemented. at DOL.GS.GameEvents.StatPrint.GetProcessCounterName () [0x0001a] in /home/hunabku/Bureau/code/GameServer/gameutils/StatPrint.cs:80 at DOL.GS.GameEvents.StatPrint.OnScriptCompiled (DOL.Events.DOLEvent e, System.Object sender, System.EventArgs args) [0x00077] in /home/hunabku/Bureau/code/GameServer/gameutils/StatPrint.cs:65 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /build/mono/src/mono-4.6.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:305 --- End of inner exception stack trace --- at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0004d] in /build/mono/src/mono-4.6.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:313 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /build/mono/src/mono-4.6.1/mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs:229 at DOL.WeakMulticastDelegate.InvokeSafe (System.Object[] args) [0x0001c] in /home/hunabku/Bureau/code/DOLBase/WeakMulticastDelegate.cs:307
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby Graveen » Sat Jan 07, 2017 3:11 pm

Yop Hunab, can you embedded in the project a DOL.linux.howto file with mandatory software versions (mariadb,etc... Give simply a working one ) and the actual issues ?

Is there a way to know we are running Mono and simply put an if() for StatCounters ?

++
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12660
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: Linux support

Postby HunabKu » Sat Jan 07, 2017 5:40 pm

I will talk about with Leodagan.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby HunabKu » Sun May 28, 2017 7:30 am

Code: Select all
Search for frontiers/frontiers.mpk:numkeeps failed
research : no solution :cry:
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: Linux support

Postby Leodagan » Tue May 30, 2017 6:50 am

What is this trouble ?
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: Linux support

Postby HunabKu » Tue May 30, 2017 4:13 pm

No trouble. Just a messsage. I think numkeeps file used in past for OF or 1st NF because they are no problem in game about keeps.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am


Return to “%s” General

Who is online

Users browsing this forum: No registered users and 1 guest