RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Linux again, but it is getting close to run

Sabaoth

Wanderer
so plz post your fixed tilematrix.cs, thats easier than doing the svn thing for me.
Here are some files fixed for mono that might cause errors. Every file should work fine on windows as well!
rename Common.map to common.map, because of case sensitivy. So I got no probs with my admin gump right now, what are the problems?
 

Attachments

  • Accounts.cs
    2.4 KB · Views: 20
  • CommunicationCrystals.cs
    16 KB · Views: 19
  • AccountPrompt.cs
    1.4 KB · Views: 19
  • AutoSave.cs
    5.5 KB · Views: 15
  • DataPath.cs
    2.5 KB · Views: 17

Sabaoth

Wanderer
so you are right, crashes the server.... but reload doesn't even take a second^^ really performance improvements to sunuo or runuo 1.0!
 

Mark

Knight
Sabaoth;709820 said:
so you are right, crashes the server.... but reload doesn't even take a second^^ really performance improvements to sunuo or runuo 1.0!

Yes, I am very impressed with the speed. When I first started experimenting with mono everything was agonizingly slow, now it feels much smoother.
 

RavonTUS

Sorceror
Mark;709812 said:
There is an issue in AdminGump when searching for accounts as well.

WOW!!! Mark and Sabaoth, you have come a great way. I am testing on my end now.

As for the AdminGump here is the solution according to nemeri ...

Gumps work by default, however the account list in the admin dialog does not (crashing the server). This is cause it cannot typecast the dictionary's generic ValueCollection into a non-generic ICollection for some reason. Perhaps mono's fault.

(You could also change the AdminGump to make it faster, only enumerating the values once but this would cause brittle code).

fix (but somewhat, not noticably, slower):

In Scripts/Accounting/Accounts.cs find the following around line 27...
Code:
		public static ICollection<IAccount> GetAccounts()
		{
			[COLOR="Red"]return m_Accounts.Values;[/COLOR]
		}

Code:
		public static ICollection<IAccount> GetAccounts()
		{
			[COLOR="Red"]return new List<IAccount>(m_Accounts.Values);[/COLOR]
		}

Like he says that may not be the best way to do it, but at least it gives you an idea where to look.

Thank you, for your effort and for greatly improving RunUO!

-Ravon
 

banerok

Wanderer
I am trying on windows using Mono 1.2.5, I have problem, when compiling it has many warnings about variables that aren't using, and also when starting RunUo it also gives warns about not used variables, also it can't load Items and Mobiles save, it crashes. I hope these problems are on windows only, as I have tried to test it on windows before going on linux with it.
 

Sabaoth

Wanderer
so I found out that the tile falling problems still exists in some cases. And there seem to be invisible walls in some cases.
 

Mark

Knight
Sabaoth;710125 said:
so I found out that the tile falling problems still exists in some cases. And there seem to be invisible walls in some cases.

Is your client using different muls from your server? Different versions could cause this problem.

Test movement in Felucca, see if it happens there.
 

Sabaoth

Wanderer
Exactly the same muls and so on. Well it happens sometimes out there in the forest. When a player next times reports I give you the coordinates, seems to happen at the same place always.
 

BlueAngelTC

Sorceror
Hi to all guys,
I'm not new to RunUO but I never been an active member of the forums... I think I'll start now.
Yesterday I tried to use RunUO on Linux but I've encountered some problems. Compilation failed until I replaced all the scrips I found in this post but I didn't made a deep investigation about the causes so forgive me if I can post the details (anyway it seems the ReadItem issue was the mayor problem). After a succesfully compilation RunUO start and work fine, compilation of scripts too but when I compile scripts some texts doesn't print in console, it seems it print spaces characters indeed. The red text of errors and warning print but the phrase "press enter to quit or R to recompile" (or whatever was that) does not If I press R for each file needed to been fixed it start the compile cycle again normally.
This is a minor issue, the most problem is after compilation I'm not sure if it's done or not and it seems to wait for a prompt like the UO directory and I'm not able to connect. If in this phase I shutdown and restart the server start normally and the text are diplayed correctly.
But when I connect with UO it crash after the creation of a new PG and it simply quit. The crash log report something about the zlib library but actually I'm not in my PC so I'll post it later.

One more question: I run UO with Cedega 6.0.2, do you think is this the best way? Or maybe use wine (of course I use an encrypted client patched in Winzozz).
The post is too long so I'll cut it down, thank you very much for your time.

P.S.:
My PC configuration is:
Intel Dual Core 1.66Ghz 2MB L1 Cache
1024MB Ram
nVidia GeForce Go 7600 256MB dedicated
more useless component I guess you don't need
Fedora Core 7 Linux with Kernel 2.6.22.1
need more?
 

Sabaoth

Wanderer
Hi,

I think you didn't modify the mono config file, found in etc/mono, add these lines:

<dllmap dll="zlib32" target="libz.so" os="!windows" />
<dllmap dll="zlib32.dll" target="libz.so" os="!windows" />


Saba
 

RavonTUS

Sorceror
BlueAngelTC;710526 said:
One more question: I run UO with Cedega 6.0.2, do you think is this the best way? Or maybe use wine (of course I use an encrypted client patched in Winzozz).

I use Wine and UORice to run the client on my kubuntu PC.

-Ravon
 

RavonTUS

Sorceror
Greetings,

I was just wondering about the Serialization.cs issues. From what I understand, MONO sees ReadItem<T>() and ReadItem() and thinks they are the same thing.

So, to fix it we replace ReadItem<T>() with ReadItemG<T>(), thus giving it a different looking "name".

If this is true, then my question becomes should we also be renaming ReadStrongItemList<T>() and ReadStrongItemList()?? or WriteItemList<T> and WriteItemList()??

Any suggestions?

-Ravon
 

Brutus5000

Sorceror
Why not simply drop ReadItem() since you can replace it with ReadItem<Item>() ?
Well, it doesn't sound very nice at all and you would have one more cast operation than necessary, but how often do you reload your server?
 

RavonTUS

Sorceror
Greetings,

I am adding two versions of my Serialization.cs for SVN 237. The first, is just the Serialization.cs file, without changing the ReadItem<T>().

The second file has the ReadItem<T>() changed to ReadItemG<T>() and associated files that go with it.

However, I still get the following error message, on every file, when I run RunUO.exe...

item/misc/Keyring.cs
CS0219: Line 202 the variable 'version' is assigned but its value is never used.

Here is the code from that section
Code:
public override void Deserialize( GenericReader reader )
{
	base.Deserialize( reader );

	int version = reader.ReadEncodedInt();

	m_Keys = reader.ReadStrongItemList<Key>();
}

So, I would assume that the serialization is not working correctly, even though everything else seems to be running fine.

What are the ramifications of this section of code not working correctly? or am I missing something else?

-Ravon
 

Attachments

  • Serialization.cs
    47.9 KB · Views: 12
  • RavonTUS-13SEP2007.zip
    19.7 KB · Views: 20

Mark

Knight
RavonTUS;711143 said:
Greetings,

I am adding two versions of my Serialization.cs for SVN 237. The first, is just the Serialization.cs file, without changing the ReadItem<T>().

The second file has the ReadItem<T>() changed to ReadItemG<T>() and associated files that go with it.

However, I still get the following error message, on every file, when I run RunUO.exe...



Here is the code from that section
Code:
public override void Deserialize( GenericReader reader )
{
	base.Deserialize( reader );

	int version = reader.ReadEncodedInt();

	m_Keys = reader.ReadStrongItemList<Key>();
}

So, I would assume that the serialization is not working correctly, even though everything else seems to be running fine.

What are the ramifications of this section of code not working correctly? or am I missing something else?

-Ravon

The warnings are harmless, but I've committed a change to supress them.
 

RavonTUS

Sorceror
Greetings,

I thought I would post this, just in case your playing along and want to compare notes.

I am currently running SVN 253 without any modifications - YEAH. If I start with a fresh wolrd (no Save folder). I can log in, run around, and restart the server just fine.

I then copied all my custom scripts, less the ones that caused errors (Orb, Pandora, WatchUO, and RandomEncounter). They maybe fixable, but I don't want to mess with them right now. Start the server (runuo.exe), again with a fresh world. I again can log in, run around, and restart the server.

Finally, if I copy over my old SAVE folder, I get the following mess...

RunUO - [www.runuo.com] Version 2.0, Build 2814.2401
Core: Running on .NET Framework Version 2.0.50727
Core: Unix environment detected
Scripts: Compiling C# scripts...done (0 errors, 6 warnings)
Scripts: Compiling VB.NET scripts...no files found.
Scripts: Verifying...done (2895 items, 605 mobiles)
Regions: Loading...done
World: Loading...
** ERROR **: file mini.c: line 4661 (mono_method_to_ir): assertion failed: (mono_method_signature (cmethod)->is_inflated)
aborting...
Stacktrace:

at (wrapper managed-to-native) System.Object.__icall_wrapper_compile_generic_method (object,intptr,intptr,intptr) <0x00004>
at (wrapper managed-to-native) System.Object.__icall_wrapper_compile_generic_method (object,intptr,intptr,intptr) <0xffffffff>
at Server.BinaryFileReader.ReadStrongMobileList () <0x00020>
at Server.Mobile.Deserialize (Server.GenericReader) <0x002d5>
at Server.Mobiles.PlayerMobile.Deserialize (Server.GenericReader) <0x00034>
at Server.World.Load () <0x016c5>
at Server.ScriptCompiler.Compile (bool,bool) <0x002d8>
at Server.Core.Main (string[]) <0x008fd>
at (wrapper runtime-invoke) Server.Core.runtime_invoke_void_string[] (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

mono [0x81681c0]
[0xffffe440]
/lib/tls/i686/cmov/libc.so.6(abort+0x101) [0xb7d0d641]
/usr/lib/libglib-2.0.so.0(g_logv+0x4ca) [0xb7e9c70a]
/usr/lib/libglib-2.0.so.0(g_log+0x29) [0xb7e9c749]
mono [0x8147d4b]
mono [0x8152aba]
mono [0x81547dc]
mono(mono_compile_method+0x18) [0x80929d8]
mono [0x8155547]
[0xb682e4e8]
[0xb682e4a1]
[0xb682cf96]
[0xb682b43d]
[0xb68e2776]
[0xb70b06c9]
[0xb7337416]
[0xb7332f0b]
mono [0x8154f36]
mono(mono_runtime_invoke+0x27) [0x80927b7]
mono(mono_runtime_exec_main+0xb0) [0x80966e0]
mono(mono_runtime_run_main+0x215) [0x8096dd5]
mono(mono_main+0xa15) [0x8058e25]
mono [0x8057f0e]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc) [0xb7cf7ebc]
mono [0x8057e51]

Debug info from gdb:

Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1211271456 (LWP 6509)]
[New Thread -1221399664 (LWP 6511)]
[New Thread -1215644784 (LWP 6510)]
0xffffe410 in __kernel_vsyscall ()
3 Thread -1215644784 (LWP 6510) 0xffffe410 in __kernel_vsyscall ()
2 Thread -1221399664 (LWP 6511) 0xffffe410 in __kernel_vsyscall ()
1 Thread -1211271456 (LWP 6509) 0xffffe410 in __kernel_vsyscall ()

Thread 3 (Thread -1215644784 (LWP 6510)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7e56986 in ?? () from /lib/tls/i686/cmov/libpthread.so.0
#2 0x0810615e in collection_thread (unused=0x0) at collection.c:34
#3 0xb7e4f31b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#4 0xb7db157e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread -1221399664 (LWP 6511)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7e535c6 in pthread_cond_wait@@GLIBC_2.3.2 ()
from /lib/tls/i686/cmov/libpthread.so.0
#2 0x0810906f in timedwait_signal_poll_cond (cond=0xb78181dc,
mutex=0xb78181c4, timeout=0x0, alertable=0) at handles.c:1413
#3 0x0810916f in _wapi_handle_timedwait_signal_handle (handle=0x404,
timeout=0x0, alertable=0) at handles.c:1493
#4 0x081092ba in _wapi_handle_wait_signal_handle (handle=0xfffffffc,
alertable=-4) at handles.c:1453
#5 0x0811c5d1 in WaitForSingleObjectEx (handle=0x404, timeout=4294967295,
alertable=0) at wait.c:200
#6 0x080adedb in finalizer_thread (unused=0x0) at gc.c:835
#7 0x080cd990 in start_wrapper (data=0x8256dc0) at threads.c:319
#8 0x0811b280 in thread_start_routine (args=0xb76c4768) at threads.c:253
#9 0x081314c4 in GC_start_routine (arg=0xfffffffc) at pthread_support.c:1362
#10 0xb7e4f31b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb7db157e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread -1211271456 (LWP 6509)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7daa3d1 in select () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7ebf4a0 in g_spawn_sync () from /usr/lib/libglib-2.0.so.0
#3 0xb7ebf86c in g_spawn_command_line_sync () from /usr/lib/libglib-2.0.so.0
#4 0x0816823b in mono_handle_native_sigsegv (signal=6, ctx=0xbfc2adec)
at mini-exceptions.c:1081
#5 <signal handler called>
#6 0xffffe410 in __kernel_vsyscall ()
#7 0xb7d0bdf0 in raise () from /lib/tls/i686/cmov/libc.so.6
#8 0xb7d0d641 in abort () from /lib/tls/i686/cmov/libc.so.6
#9 0xb7e9c70a in g_logv () from /usr/lib/libglib-2.0.so.0
#10 0xb7e9c749 in g_log () from /usr/lib/libglib-2.0.so.0
#11 0x08147d4b in mono_method_to_ir (cfg=0x9215fe8, method=0x9215f30,
start_bblock=0x91f9694, end_bblock=0x91f972c, locals_offset=1,
return_var=0x0, dont_inline=0x922f630, inline_args=0x0, inline_offset=0,
is_virtual_call=0) at mini.c:4661
#12 0x08152aba in mini_method_compile (method=0x9215f30, opts=13724159,
domain=0x0, run_cctors=<value optimized out>,
compile_aot=<value optimized out>, parts=0) at mini.c:10356
#13 0x081547dc in mono_jit_compile_method (method=0x9215f30) at mini.c:10725
#14 0x080929d8 in mono_compile_method (method=0x0) at object.c:503
#15 0x08155547 in mono_helper_compile_generic_method (obj=0x1a655e0,
method=0x0, context=0x9215f58, this_arg=0xbfc2bce8) at jit-icalls.c:805
#16 0xb682e4e8 in ?? ()
#17 0x01a655e0 in ?? ()
#18 0x09215f30 in ?? ()
#19 0x09215f58 in ?? ()
#20 0xbfc2bce8 in ?? ()
#21 0x0821b100 in ?? ()
#22 0xbfc2bce8 in ?? ()
#23 0x08faf9f4 in ?? ()
#24 0x00000000 in ?? ()
#0 0xffffe410 in __kernel_vsyscall ()


=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Aborted (core dumped)

Man is that an error message or what.

So, I am little in over my head here. Is having issues with Deserialize or GenericReader or ReadStrongMobileList or all the above?

-Ravon
 
Top