Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 63905 invoked from network); 24 Nov 2006 15:42:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 24 Nov 2006 15:42:38 -0000 Received: (qmail 48695 invoked by uid 500); 24 Nov 2006 15:42:44 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 48669 invoked by uid 500); 24 Nov 2006 15:42:44 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 48649 invoked by uid 99); 24 Nov 2006 15:42:44 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Nov 2006 07:42:44 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of evgueni.brevnov@gmail.com designates 64.233.182.186 as permitted sender) Received: from [64.233.182.186] (HELO nf-out-0910.google.com) (64.233.182.186) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Nov 2006 07:42:32 -0800 Received: by nf-out-0910.google.com with SMTP id a4so1333179nfc for ; Fri, 24 Nov 2006 07:42:10 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=aezj35cuffXIdWb+6C1buhUczhWQBuLt5q5TRK39fl3ia5PuDjyf4371yYAk3j1zD3IZ8Z2iNKo6rCcHbuecXunRuFi6rZFuHLuI7R5jBhAcQbzxyzp/dovyNyTODVT/LAEnvo3+4gqaJVDREk6I71cZJt4m+T59mYhPGnNkdHk= Received: by 10.78.68.18 with SMTP id q18mr10361489hua.1164382929919; Fri, 24 Nov 2006 07:42:09 -0800 (PST) Received: by 10.78.97.13 with HTTP; Fri, 24 Nov 2006 07:41:57 -0800 (PST) Message-ID: Date: Fri, 24 Nov 2006 21:41:57 +0600 From: "Evgueni Brevnov" To: dev@harmony.apache.org Subject: Re: [drlvm][classlib unit tests] iterative runs In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <678b3f320611210606w61cb787r157efd4ad941735d@mail.gmail.com> <200611240019.59711.gshimansky@gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org On 11/24/06, Salikh Zakirov wrote: > Evgueni Brevnov wrote: > > Agree! It seems like a mess for me as well. The most clean approach is > > to return EXCEPTION_CONTINUE_SEARCH for any exception happened in a > > native code. > > I recently found out the reason why smoke test gc.LOS hangs DRLVM on Windows > XP, and it turned out to be related to the hardware exception handling. > > Since the fix will involve significant modifications to the file > vm/vmcore/src/util/win/ia32/nt_exception_filter.cpp, > I can do this modification too. Sounds reasonable :-) > > > > > > P.S. The reason of hang of gc.LOS is deadlock on a thread suspension: > Assume thread A handles NPE: > > A1) segfault occured > A2) grab "system hwe lock" and call vectored_exception_handler > A3) instantiate NullPointerException object > A4) set up throwing NullPointerExceptionObject in the register snapshot > A5) return from vectored_exception_handler release "system hwe lock" > > Let's next assume that garbage collection was started exactly when thread A > was in progress of running NullPointerException constructor. Then, thread A > will be suspended while still holding "system hwe lock". > > Another thread B at that moment may be blocked on a "system hwe lock", > and since this lock is system and not known to Thread Manager, it just > waits forever for thread B to reach a safepoint. Hmmm .... this is intresting.... Good catch! Evgueni > > > >