perl threads on 2008 R2 64bit = crash ( was: perl 5.10 threads on 1.5.25 = instant crash )

Corinna Vinschen corinna-cygwin@cygwin.com
Wed Jul 15 16:49:00 GMT 2009


On Jul 15 01:41, Steven Hartland wrote:
>> ----- Original Message ----- From: "Christopher Faylor" 
> <cgf-use...>

http://cygwin.com/acronyms/#PCYMTNQREAIYR
>> On Wed, Jul 15, 2009 at 12:36:56AM +0100, Steven Hartland wrote:
>>> This may or may not help:
>>>>>> According to VC++ debugger it always dies with:
>>> Unhandled exception at 0x610d089d in perl.exe: 0xC0000005: Access violation reading location 0x00000004.
>>>> No, sorry, it really doesn't help. The VC++ debugger doesn't know how
>> to handle cygwin exceptions.
>> Was just trying to get a hint of the area of the problem since gdb doesn't
> actually break when it happens this seemed to be the only way to get that
> info.
>> Any pointers on how I can help narrow down the issue?

I can reproduce the problem on my 2008 R2 box. It works fine on Windows
7 x64, though, so it's a Server thingy.
What happens is that this statement
 if ((*object)->magic != magic)
in the function thread.cc:verifyable_object_isvalid throws an exception
because *object is NULL. This should be covered by the myfault handler
in this function but for some reason it isn't.
To debug this further I created a STC(TM)(*) which does the same as the
Perl testcase, just in pure C:
==== SNIP ====
#include <stdio.h>
#include <errno.h>
#include <pthread.h>
pthread_attr_t attr;
void *thr (void *arg)
{
 printf ("I'm a thread\n");
 return NULL;
}
int main()
{
 pthread_t t;
 int i, r;
 void *ret;
 fprintf (stderr, "Testing threads...\n");
 i = pthread_attr_init (&attr);
 printf ("i = %d\n", i);
 r = pthread_create (&t, &attr, thr, NULL);
 if (r)
 fprintf (stderr, "pthread_create: %d %s\n", errno, strerror (errno));
 else
 pthread_join (t, &ret);
 fprintf (stderr, "Testing done\n");
 return 0;
}
==== SNAP ====
The problem is, this testcase works fine, even on 2008 R2. It must
have something to do with the way Perl creates thread or does its
own exception handling. I just don't know what to look for.
Corinna
(*) http://cygwin.com/acronyms/#STC
-- 
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /