[Mono-bugs] [Bug 323524] Mono 1.2.3 Solaris build has problems with Socket.BeginConnect
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Wed Nov 21 14:00:24 EST 2007
https://bugzilla.novell.com/show_bug.cgi?id=323524#c4
Burkhard Linke <burkhard.linke at CeBiTec.Uni-Bielefeld.DE> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |ASSIGNED
Info Provider|psingh at fnfr.com |
--- Comment #4 from Burkhard Linke <burkhard.linke at CeBiTec.Uni-Bielefeld.DE> 2007-11-21 12:00:24 MST ---
I've traced the mono runtime using dtrace and a little script that lists the
syscalls and scheduling action of the solaris kernel for the most recent thread
(the mono io thread, thread id 4 in the output):
started syscall pollsys in thread 4, initiated by
libc.so.1`__pollsys+0x7
libc.so.1`poll+0x52
mono`mono_poll+0x21
mono`socket_io_poll_main+0x8c
mono`start_wrapper+0xcf
mono`thread_start_routine+0xae
libgc.so.1.0.3`GC_inner_start_routine+0xd0
libgc.so.1.0.3`GC_call_with_stack_base+0x1c
libgc.so.1.0.3`GC_start_routine+0x28
libc.so.1`_thr_setup+0x4e
libc.so.1`_lwp_start
started syscall read in thread 4, initiated by
libc.so.1`_read+0x7
mono`socket_io_poll_main+0x18e
mono`start_wrapper+0xcf
mono`thread_start_routine+0xae
libgc.so.1.0.3`GC_inner_start_routine+0xd0
libgc.so.1.0.3`GC_call_with_stack_base+0x1c
libgc.so.1.0.3`GC_start_routine+0x28
libc.so.1`_thr_setup+0x4e
libc.so.1`_lwp_start
started syscall gtime in thread 4, initiated by
libc.so.1`__time+0x7
mono`_wapi_handle_ref+0x1f
mono`sem_release+0x255
mono`ReleaseSemaphore+0x3a
mono`socket_io_poll_main+0x1c3
mono`start_wrapper+0xcf
mono`thread_start_routine+0xae
libgc.so.1.0.3`GC_inner_start_routine+0xd0
libgc.so.1.0.3`GC_call_with_stack_base+0x1c
libgc.so.1.0.3`GC_start_routine+0x28
libc.so.1`_thr_setup+0x4e
libc.so.1`_lwp_start
started syscall pollsys in thread 4, initiated by
libc.so.1`__pollsys+0x7
libc.so.1`poll+0x52
mono`mono_poll+0x21
mono`socket_io_poll_main+0x8c
mono`start_wrapper+0xcf
mono`thread_start_routine+0xae
libgc.so.1.0.3`GC_inner_start_routine+0xd0
libgc.so.1.0.3`GC_call_with_stack_base+0x1c
libgc.so.1.0.3`GC_start_routine+0x28
libc.so.1`_thr_setup+0x4e
libc.so.1`_lwp_start
got sched probe sleep for tid 4
got sched probe dequeue for tid 4
got sched probe off-cpu for tid 4
(The build uses a local installation of libgc, since the version inside the
mono source tree is updated with respect to solaris/x86.)
The next traces of thread 4:
got sched probe on-cpu for tid 4
started syscall lwp_mutex_timedlock in thread 4, initiated by
ld.so.1`___lwp_mutex_timedlock+0x7
ld.so.1`rt_mutex_lock+0x1b
ld.so.1`enter+0x30
ld.so.1`elf_bndr+0x25
ld.so.1`elf_rtbndr+0x14
ld.so.1`0xbfffd8f8
mono`thread_cleanup+0x1c
mono`start_wrapper+0xd9
mono`thread_start_routine+0xae
libgc.so.1.0.3`GC_inner_start_routine+0xd0
libgc.so.1.0.3`GC_call_with_stack_base+0x1c
libgc.so.1.0.3`GC_start_routine+0x28
libc.so.1`_thr_setup+0x4e
libc.so.1`_lwp_start
This happens after the connect timeout and the thread is about to terminate.
The problem seems to be located in the socket_io_poll_main() routine in
mono/metadata/threadpool.c. Solaris does not support epoll, so
socket_io_epoll_main cannot be used on this platform. I haven't figured out the
complete code in threadpool.c yet, but the problem should be located there.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list