Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 53411 invoked from network); 29 May 2007 09:46:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 May 2007 09:46:38 -0000 Received: (qmail 19156 invoked by uid 500); 29 May 2007 09:46:42 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 19140 invoked by uid 500); 29 May 2007 09:46:42 -0000 Mailing-List: contact commits-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 commits@harmony.apache.org Received: (qmail 19129 invoked by uid 99); 29 May 2007 09:46:41 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 May 2007 02:46:41 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 May 2007 02:46:36 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 69823714182 for ; Tue, 29 May 2007 02:46:16 -0700 (PDT) Message-ID: <31080571.1180431976428.JavaMail.jira@brutus> Date: Tue, 29 May 2007 02:46:16 -0700 (PDT) From: "Ilya Leviev (JIRA)" To: commits@harmony.apache.org Subject: [jira] Updated: (HARMONY-2987) [drlvm][exception][tc] Race condition in vmcore\src\util\win\ia32\ nt_exception_filter.cpp stack functions In-Reply-To: <24324124.1168617147513.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-2987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ilya Leviev updated HARMONY-2987: --------------------------------- Summary: [drlvm][exception][tc] Race condition in vmcore\src\util\win\ia32\ nt_exception_filter.cpp stack functions (was: [drlvm][exception] Race condition in vmcore\src\util\win\ia32\ nt_exception_filter.cpp stack functions ) > [drlvm][exception][tc] Race condition in vmcore\src\util\win\ia32\ nt_exception_filter.cpp stack functions > ----------------------------------------------------------------------------------------------------------- > > Key: HARMONY-2987 > URL: https://issues.apache.org/jira/browse/HARMONY-2987 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Reporter: Ilya Leviev > Assignee: weldon washburn > Attachments: HARMONY-2987_add_markup.patch > > > There are 3 occurrences of thread unsafe access to follow fields that result in race condition. > static size_t common_stack_size; > static size_t common_guard_stack_size; > static size_t common_guard_page_size; > (i) > First race condition occur during concurrent execution of get_stack_size() and init_stack_info() with respect to common_stack_size field. > Read -> Write data-race: > Memory write at "nt_exception_filter.cpp":175 conflicts with a prior memory read at "nt_exception_filter.cpp":161 > Stack Traces: > Context > Function hythread_create_with_group "thread_native_basic.c":142 > Function apr_thread_create "thread.c":113 > Function _beginthreadex "threadex.c":145 > Function EntryPoint "dllcrt0.c":323 > Function threadstartex "threadex.c":241 > Function dummy_worker "thread.c":79 > Function thread_start_proc "thread_native_basic.c":723 > Function wrapper_proc "thread_java_basic.c":83 > Function vm_attach "thread_generic.cpp":193 > Function void init_stack_info(void) "nt_exception_filter.cpp":173 > 1st Access > Function Opcode_INVOKEVIRTUAL "interpreter.cpp":2054 > Function interpreterInvokeVirtual "interpreter.cpp":3463 > Function interpreterInvoke "interpreter.cpp":3381 > Function void interpreter(struct StackFrame &) "interpreter.cpp":2900 > Function Opcode_INVOKEVIRTUAL "interpreter.cpp":2054 > Function interpreterInvokeVirtual "interpreter.cpp":3463 > Function interpreterInvoke "interpreter.cpp":3381 > Function void interpreter(struct StackFrame &) "interpreter.cpp":2543 > Function unsigned int get_available_stack_size(void) "nt_exception_filter.cpp":207 > Function unsigned int get_stack_size(void) "nt_exception_filter.cpp":161 > 2nd Access > Function hythread_create_with_group "thread_native_basic.c":142 > Function apr_thread_create "thread.c":113 > Function _beginthreadex "threadex.c":145 > Function EntryPoint "dllcrt0.c":323 > Function threadstartex "threadex.c":241 > Function dummy_worker "thread.c":79 > Function thread_start_proc "thread_native_basic.c":723 > Function wrapper_proc "thread_java_basic.c":83 > Function vm_attach "thread_generic.cpp":193 > Function void init_stack_info(void) "nt_exception_filter.cpp":175 > (ii) > Second race condition occur during concurrent execution of get_guard_stack_size() and init_stack_info() with respect to common_guard_stack_size field. > Read -> Write data-race: Memory write at "nt_exception_filter.cpp":176 conflicts with a prior memory read at "nt_exception_filter.cpp":165 > Stack Traces: > Context > Function hythread_create_with_group "thread_native_basic.c":142 > Function apr_thread_create "thread.c":113 > Function _beginthreadex "threadex.c":145 > Function EntryPoint "dllcrt0.c":323 > Function threadstartex "threadex.c":241 > Function dummy_worker "thread.c":79 > Function thread_start_proc "thread_native_basic.c":723 > Function wrapper_proc "thread_java_basic.c":83 > Function vm_attach "thread_generic.cpp":193 > Function void init_stack_info(void) "nt_exception_filter.cpp":173 > 1st Access > Function Opcode_INVOKEVIRTUAL "interpreter.cpp":2054 > Function interpreterInvokeVirtual "interpreter.cpp":3463 > Function interpreterInvoke "interpreter.cpp":3381 > Function void interpreter(struct StackFrame &) "interpreter.cpp":2900 > Function Opcode_INVOKEVIRTUAL "interpreter.cpp":2054 > Function interpreterInvokeVirtual "interpreter.cpp":3463 > Function interpreterInvoke "interpreter.cpp":3381 > Function void interpreter(struct StackFrame &) "interpreter.cpp":2543 > Function unsigned int get_available_stack_size(void) "nt_exception_filter.cpp":207 > Function unsigned int get_guard_stack_size(void) "nt_exception_filter.cpp":165 > 2nd Access > Function hythread_create_with_group "thread_native_basic.c":142 > Function apr_thread_create "thread.c":113 > Function _beginthreadex "threadex.c":145 > Function EntryPoint "dllcrt0.c":323 > Function threadstartex "threadex.c":241 > Function dummy_worker "thread.c":79 > Function thread_start_proc "thread_native_basic.c":723 > Function wrapper_proc "thread_java_basic.c":83 > Function vm_attach "thread_generic.cpp":193 > Function void init_stack_info(void) "nt_exception_filter.cpp":176 > (iii) > Third race condition occur during concurrent execution of get_guard_page_size() and init_stack_info() with respect to common_guard_page_size. > Read -> Write data-race: Memory write at "nt_exception_filter.cpp":177 conflicts with a prior memory read at "nt_exception_filter.cpp":169 > Stack Traces: > Context > Function hythread_create_with_group "thread_native_basic.c":142 > Function apr_thread_create "thread.c":113 > Function _beginthreadex "threadex.c":145 > Function EntryPoint "dllcrt0.c":323 > Function threadstartex "threadex.c":241 > Function dummy_worker "thread.c":79 > Function thread_start_proc "thread_native_basic.c":723 > Function wrapper_proc "thread_java_basic.c":83 > Function vm_attach "thread_generic.cpp":193 > Function void init_stack_info(void) "nt_exception_filter.cpp":173 > 1st Access > Function Opcode_INVOKEVIRTUAL "interpreter.cpp":2054 > Function interpreterInvokeVirtual "interpreter.cpp":3463 > Function interpreterInvoke "interpreter.cpp":3381 > Function void interpreter(struct StackFrame &) "interpreter.cpp":2900 > Function Opcode_INVOKEVIRTUAL "interpreter.cpp":2054 > Function interpreterInvokeVirtual "interpreter.cpp":3463 > Function interpreterInvoke "interpreter.cpp":3381 > Function void interpreter(struct StackFrame &) "interpreter.cpp":2543 > Function unsigned int get_available_stack_size(void) "nt_exception_filter.cpp":207 > Function unsigned int get_guard_page_size(void) "nt_exception_filter.cpp":169 > 2nd Access > Function hythread_create_with_group "thread_native_basic.c":142 > Function apr_thread_create "thread.c":113 > Function _beginthreadex "threadex.c":145 > Function EntryPoint "dllcrt0.c":323 > Function threadstartex "threadex.c":241 > Function dummy_worker "thread.c":79 > Function thread_start_proc "thread_native_basic.c":723 > Function wrapper_proc "thread_java_basic.c":83 > Function vm_attach "thread_generic.cpp":193 > Function void init_stack_info(void) "nt_exception_filter.cpp":177 -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.