[Mono-list] Weird crash with Remoting, native code exception

Helge Lenuweit helge at lenuweit.net
Thu Jun 22 06:50:02 EDT 2006


Hello guys,

I am running a client-server application with a remoting server 
operating under mono (1.1.15 compiled from source, running on SuSE 9.1 - 
for the records). The client (SWF) application gets a reference to the 
server's CAO-remoted object and everything runs just fine.

However, one server function attempts to call a method of a (Singleton) 
remoted object of another server (same machine, in this case). The 
object reference on that latter server is acquired via 
Activator.GetObject and this *seems* to work. (I can get the value of a 
remote string property). However, calling the method I intend to call 
crashes my (calling) server. The Singleton provider keeps running (or 
seems to be).

Usually using mono-service together with Robert Jordan's SuSE-compatible 
start script, I tried to run mono-service from the console with 
debugging symbols and all. When it comes to the crash, I see the 
following output:

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

Stacktrace:

Native stacktrace:

        mono(mono_handle_native_sigsegv+0x81) [0x8143c41]
        mono [0x8114a97]
        [0xffffe440]
        [0x41ff23cf]
        [0x41fef9de]
        [0x40d4c5c8]
        [0x40ceb551]
        mono [0x8131001]
        mono(mono_runtime_invoke+0x1b) [0x80cc97b]
        mono(mono_runtime_delegate_invoke+0x2d) [0x80ccc3d]
        mono [0x80ae9e3]
        mono [0x80f4804]
        mono [0x810b5fb]
        /lib/tls/libpthread.so.0 [0x400be9dd]
        /lib/tls/libc.so.6(__clone+0x5a) [0x401aaffa]
Aborted


Furthermore, this behaviour doesn't always occur. The two other chances 
are that it (a) just works and (b) returns with a handled exception in 
the calling server's code (NullReferenceException). AS I haven't found 
out why it does what and when, I'd appreciate hints on where to look 
further to track this down. I figured it could be related to:
- threading? (huh, bad luck given my current "threading"-skillset ;-)
- registering the remote object. However, in all cases, the called 
server's appropriate port is occupied when the program runs
- mono-service related issues (my call is: mono [--debug] 
-l:/var/run/<servicelock>.pid -m:<servicename> -d:<servicedir> 
<serviceassembly> --- and seems to work fine for both programs)

Many thanks for your assistance!
Best regards,
Helge


More information about the Mono-list mailing list