(Copying oorexx-devel in case this rings any bells.... :-). This is on
Ubuntu Linux; details below.)
OK, I have now got to the point where the finger is definitely pointing at
ooRexx. If I serialize calls to RexxStart by putting a mutex around it,
everything runs perfectly. If unserialized, the segmentation fault
occurs while Rexx is starting up and before any lines in the Rexx file
seem to be interpreted. Here's what GDB shows:
Program terminated with signal 11, Segmentation fault.
#0 0xb7ebc2d2 in RexxMemory::extendSaveStack () from
/usr/lib/librexx.so.3
(gdb) backtrace
#0 0xb7f042d2 in RexxMemory::extendSaveStack () from
/usr/lib/librexx.so.3
#1 0xb7f0e427 in RexxInitialize () from /usr/lib/librexx.so.3
#2 0xb7ee1918 in RexxStart () from /usr/lib/librexx.so.3
#3 0x08056f48 in gosrexx (filtername=0x805e058
"/mnt/hgfs/goservem/gofilter.any", arg=0xb5b6a7b8, args=3,
retval=0xb5b6a7c8 "") at gosrexx.c:235
#4 0x08053efe in gosres (rptr=0x8065490) at gosres.c:189
#5 0xb7f5c46b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6 0xb7d9e6de in clone () from /lib/tls/i686/cmov/libc.so.6
The routine it fails in is almost trivial, but says: /* This method
should be called within a critical section */ and there are various
things in RexxInitialize that probably do the right thing (this works fine
in Windows) but they depend on conditional code (#if SHARED and the like).
So I'm wordering if the .deb package was built without some vital
compile-time option?
Mike
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mike Cowlishaw, IBM Fellow
IBM UK (MP8), PO Box 31, Birmingham Road, Warwick, CV34 5JL
mailto:mfc@... -- http://www2.hursley.ibm.com/mfcsumm.html
----- Forwarded by Mike Cowlishaw/UK/IBM on 23/12/2007 09:56 -----
Mike Cowlishaw/UK/IBM
22/12/2007 08:08
To
<miesfeld@...>
cc
Subject
RE: Progress with linux, etc.
OK, thanks -- I was mainly wondering if there was something obvious (like
not compiling with -pthread). I'll investigate some more and try and pin
down an exact failure before raising general alarm. It's tricky because
it actually crashes Linux (or, at least the GUI) more often then not(!),
so it's difficult to log where it's failing.
Mike
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mike Cowlishaw, IBM Fellow
IBM UK (MP8), PO Box 31, Birmingham Road, Warwick, CV34 5JL
mailto:mfc@... -- http://www2.hursley.ibm.com/mfcsumm.html
"Mark Miesfeld" <miesfeld@...>
22/12/2007 05:49
Please respond to
<miesfeld@...>
To
Mike Cowlishaw/UK/IBM@...
cc
Subject
RE: Progress with linux, etc.
Hi Mike,
I'm not aware of any thread-safe issues in ooRexx on Linux.
I'm actually more familiar with the Windows code in ooRexx than the Linux.
I did the Ubuntu build and dep packaging more out of stubbornness than
any expertise in Ubuntu. (Sort of a, how hard can this be, sort of thing.
<grin>)
Maybe you should bring this up on the dev list. We've added a new
committer, Moritz Hoffmann, who seems to use Ubuntu for his day to day
work. He may have some insight. It is certainly something we'd like to
investigate.
--
Mark Miesfeld
From: Mike Cowlishaw [mailto:MFC@...]
Sent: Friday, December 21, 2007 5:26 AM
To: miesfeld@...
Subject: RE: Progress with linux, etc.
Hi .. I'm doing another port of my web server to Linux -- this time a
'serious' merge of codebases, etc., and the Linux is Ubuntu.
All is working -- until I get two simultaneous or overlapping web requests
-- and then things die horribly, very often. I've checked all the
obvious race condition places (but the code for those is identical for
Windows and Linux, and on Windows the program runs for months without
problems). At the moment the finger seems to be pointing at ooRexx,
although it's very hard to prove .. any idea if that might not be
(p)thread-safe on Linux?
I'm using:
Open Object Rexx Interpreter Version 3.2.0 for LINUX
Build date: Oct 30 2007
Mike
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mike Cowlishaw, IBM Fellow
IBM UK (MP8), PO Box 31, Birmingham Road, Warwick, CV34 5JL
mailto:mfc@... -- http://www2.hursley.ibm.com/mfcsumm.html
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
|