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 Berezhniuk (JIRA)" <ji...@apache.org> on 2007/07/26 18:30:04 UTC

[jira] Commented: (HARMONY-4298) [drlvm][thread]1 EUT testcase from teamcvs suite intermittently crashes since r549864

    [ https://issues.apache.org/jira/browse/HARMONY-4298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515760 ] 

Ilya Berezhniuk commented on HARMONY-4298:
------------------------------------------

I've found that HARMONY-2742 also contains possible solution for this issue. Suggested solution is to call GC when slots in fat locks table are going to be occupied, to let GC free some slots. Fat locks table does not change its size and address, it remains unchanged and therefore needs no synchronization.

But there are disadvantages in approach suggested in HARMONY-2742:
- Small fixed size of table will lead to frequent calls to GC when fat locks are frequently consumed;
- Large size of table in not feasible;

The advantages of patch suggested in this JIRA are the following:
- Fat locks table is expandable, initial size is quite small;
- Expansion does not require synchronization as well as calling GC;
- Table can be expanded to 2^20 - maximal count of fat locks.

> [drlvm][thread]1 EUT testcase from teamcvs suite intermittently crashes since r549864 
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4298
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4298
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows XP/2003 ia32
>            Reporter: Nina Rinskaya
>            Assignee: weldon washburn
>            Priority: Minor
>         Attachments: H-4298.patch, H-4298.patch
>
>
> It looks that r549864 commit has introduced a regression: org.eclipse.team.tests.ccvs.core.subscriber.testConcurrentAccessToSyncSet testcase from Eclipse Unit Tests ('teamcvs' suite) intermittently crashes on Windows 2003 (x86) with the following output:
>    [java] Windows reported exception: 0xc0000005
>      [java] Registers:
>      [java]     EAX: 0x00410048, EBX: 0x140e9870, ECX: 0x000022a2, EDX: 0x00383f30
>      [java]     ESI: 0x16e3ed0c, EDI: 0x0b3943f0, ESP: 0x10d6fa78, EBP: 0x13f461f4
>      [java]     EIP: 0x1000430c
>      [java] Stack trace:
>      [java]   0: hythread_thin_monitor_exit (??:-1)
>      [java] <end of stack trace>
> The testcase deals with synchronized resources, and probably the crash happens whyle adding ~1000-5000th element to the synchronized collection. 
> To reproduce:
> Please follow instrcutions at http://wiki.apache.org/harmony/Eclipse_Unit_Tests_Pass_on_DRLVM#How_to_run_EUT.
> The test that fails is org.eclipse.team.tests.ccvs.core.subscriber.testConcurrentAccessToSyncSet, it belongs to the 'teamcvs' suite. Please note that this suite requires a test CVS repository. If you use Build&Test infrastructure scrips to run the suite, you will need to specify in the framework.local.properties file:
>     eut.parameters.optional.testsr=teamcvs
>     eut.parameters.optional.cvs_user=<the account used to connect to the cvs repository>
>     eut.parameters.optional.cvs_password= <the account password>
>     eut.parameters.optional.cvs_host=<the name of the cvs server>
>     eut.parameters.optional.cvs_root=<the repository path>
> If you follow instructions on how to run a single test at http://wiki.apache.org/harmony/Eclipse_Unit_Tests_Pass_on_DRLVM#How_to_run_EUT you will need to do the following additional steps that are specific for this suite:
> When you perform step 4 ("Running the Test Suite from Eclipse SDK"):
> 1. select "org.eclipse.team.tests.cvs.core" as test plug-in to import; if Eclipse reports compilation errors, please add 'eclipse-testing/eclipse/plugins/org.eclipse.core.filesystem*.jar' to the project's build path;
> 2. modify file org.eclipse.team.tests.ccvs.core.CVSTestSetup.java: replace REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository");  with REPOSITORY_LOCATION = ":pserver:cvs_username:cvs_password@cvs _host:cvs_root";
> 3. select org.eclipse.team.tests.ccvs.core.AllTests as launching class

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