X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 15 Jul 2009 17:21:39 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: perl threads on 2008 R2 64bit = crash ( was: perl 5.10 threads on 1.5.25 = instant crash ) Message-ID: <20090715152139.GA694@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20090714185506 DOT GB12236 AT ednor DOT casa DOT cgf DOT cx> <20090714190436 DOT GO27613 AT calimero DOT vinschen DOT de> <20090714200631 DOT GP27613 AT calimero DOT vinschen DOT de> <20090714205617 DOT GA12534 AT ednor DOT casa DOT cgf DOT cx> <8541BCA91FF64580AA7A8065FBF9C938 AT multiplay DOT co DOT uk> <39B3B148DA514671BB2E1AE46946169C AT multiplay DOT co DOT uk> <20090715000331 DOT GA5635 AT ednor DOT casa DOT cgf DOT cx> <6D01817BC10A4430AFE7A590CC935C09 AT multiplay DOT co DOT uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6D01817BC10A4430AFE7A590CC935C09@multiplay.co.uk> User-Agent: Mutt/1.5.19 (2009-02-20) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Jul 15 01:41, Steven Hartland wrote: > > ----- Original Message ----- From: "Christopher Faylor" > 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 #include #include 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