You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Ilya Leviev (JIRA)" <ji...@apache.org> on 2007/05/25 12:12:16 UTC

[jira] Created: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

[drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
----------------------------------------------------------------------------------------------

                 Key: HARMONY-3977
                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
            Reporter: Ilya Leviev


TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function


if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.


Write -> Write data-race	
Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300


Stack Trace: 

Context
	Function hythread_create "thread_native_basic.c":165
	Function hythread_create_with_group "thread_native_basic.c":136
	Function os_thread_create "os_thread.c":37
	Function _beginthreadex "threadex.c":145
	Function EntryPoint "dllcrt0.c":323
	Function threadstartex "threadex.c":241
	Function thread_start_proc "thread_native_basic.c":711
	Function finalizer_thread_func "finalizer_thread.cpp":266
	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298



1st Access
	Function hythread_create "thread_native_basic.c":165
	Function hythread_create_with_group "thread_native_basic.c":136
	Function os_thread_create "os_thread.c":37
	Function _beginthreadex "threadex.c":145
	Function EntryPoint "dllcrt0.c":323
	Function threadstartex "threadex.c":241
	Function thread_start_proc "thread_native_basic.c":711
	Function finalizer_thread_func "finalizer_thread.cpp":266
	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300

	"297"	""	" Boolean gc_clear_mutator_block_flag()"
	"298"	""	" {"
	"299"	""	"   Boolean old_flag = mutator_need_block;"
	"300"	"*"	"   mutator_need_block = FALSE;"
	"301"	""	"   return old_flag;"



2nd Access
	Function hythread_create "thread_native_basic.c":165
	Function hythread_create_with_group "thread_native_basic.c":136
	Function os_thread_create "os_thread.c":37
	Function _beginthreadex "threadex.c":145
	Function EntryPoint "dllcrt0.c":323
	Function threadstartex "threadex.c":241
	Function thread_start_proc "thread_native_basic.c":711
	Function finalizer_thread_func "finalizer_thread.cpp":266
	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300


	"297"	""	" Boolean gc_clear_mutator_block_flag()"
	"298"	""	" {"
	"299"	""	"   Boolean old_flag = mutator_need_block;"
	"300"	"*"	"   mutator_need_block = FALSE;"
	"301"	""	"   return old_flag;"



See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (HARMONY-3977) [drlvm][gc_gen][tc] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev closed HARMONY-3977.
--------------------------------

    Resolution: Fixed

patch verified

> [drlvm][gc_gen][tc] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Xiao-Feng Li
>            Priority: Minor
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3977:
---------------------------------

    Attachment: SourceViewScreenshot-1.jpg

> [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Attachments: SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3977) [drlvm][gc_gen][tc] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3977:
---------------------------------

    Priority: Minor  (was: Major)
     Summary: [drlvm][gc_gen][tc] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function  (was: [drlvm][gc_gen] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function)

> [drlvm][gc_gen][tc] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Xiao-Feng Li
>            Priority: Minor
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xiao-Feng Li closed HARMONY-3977.
---------------------------------

    Resolution: Fixed

> [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: Xiao-Feng Li
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev reopened HARMONY-3977:
----------------------------------


patch that mark race by special API for prevention of further alarms should be applied

> [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Xiao-Feng Li
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3977) [drlvm][gc_gen] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3977:
---------------------------------

    Summary: [drlvm][gc_gen] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function  (was: [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function)

> [drlvm][gc_gen] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Xiao-Feng Li
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xiao-Feng Li updated HARMONY-3977:
----------------------------------

    Assignee: Xiao-Feng Li

This is not a race. It's ok for more than one finalizer threads to set the same flag to resume the mutators. 

> [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: Xiao-Feng Li
>         Attachments: SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3977:
---------------------------------

    Patch Info: [Patch Available]

> [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: Xiao-Feng Li
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-3977) [drlvm][gc_gen] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12499756 ] 

Ilya Leviev commented on HARMONY-3977:
--------------------------------------

Patch was applied partially. 
Header file "port_threadunsafe.h" have not added! 


> [drlvm][gc_gen] Known/proven race conditions markup at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Xiao-Feng Li
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3977) [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3977:
---------------------------------

    Attachment: HARMONY-3977_add_markup.patch

added patch that mark race by special API for prevention of further alarms

> [drlvm][gc_gen] Race conditions at "gc_for_vm.cpp":300 at gc_clear_mutator_block_flag function
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3977
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3977
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: Xiao-Feng Li
>         Attachments: HARMONY-3977_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of gc_clear_mutator_block_flag function
> if it not affect correctness of execution I will mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race	
> Memory write at "gc_for_vm.cpp":300 conflicts with a prior memory write at "gc_for_vm.cpp":300
> Stack Trace: 
> Context
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":298
> 1st Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> 2nd Access
> 	Function hythread_create "thread_native_basic.c":165
> 	Function hythread_create_with_group "thread_native_basic.c":136
> 	Function os_thread_create "os_thread.c":37
> 	Function _beginthreadex "threadex.c":145
> 	Function EntryPoint "dllcrt0.c":323
> 	Function threadstartex "threadex.c":241
> 	Function thread_start_proc "thread_native_basic.c":711
> 	Function finalizer_thread_func "finalizer_thread.cpp":266
> 	Function void vm_heavy_finalizer_resume_mutator(void) "finalizer_thread.cpp":318
> 	Function gc_clear_mutator_block_flag "gc_for_vm.cpp":300
> 	"297"	""	" Boolean gc_clear_mutator_block_flag()"
> 	"298"	""	" {"
> 	"299"	""	"   Boolean old_flag = mutator_need_block;"
> 	"300"	"*"	"   mutator_need_block = FALSE;"
> 	"301"	""	"   return old_flag;"
> See also Source View screenshots.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.