Re: [test] Jetty integration progress ? (was Re: [classlib] jetty based tests)
2006/8/17, Richard Liang [EMAIL PROTECTED]: Andrew Zhang wrote: Hi folks, I'd like to say something more about jetty integration. We should reach an agreement on how to integrate/use jetty in Harmony. There are some concerns I can image now: 1. Where to put jetty? support or luni module or somewhere else? It depends on question 2. How about putting jetty into depends? +1 Thanks, Mikhail 2. How to use jetty? How many jetty instances are there? Singleton or multiple instances? In other word, shall we start only one jetty server at the beginning before running all tests? or will we start/destroy embedded jetty server at will in any test case? Seems jetty supports both options. I agree. We still shall be cautious about jetty instances though it's light-weighted. IMHO, for most test cases, one global jetty instance is enough. But maybe there are some cases which need separate instances. Let's see comments from others :-) 3. How to write jetty based test?. Multi-thread network test always is a problem to us. I found it's also hard to be theoretically. Yes. According to the description above, I suggest put jetty in support module, and encapsulate a class (i.e Support_JettyServer) with some public methods for test writing (i.e getJettyPort(), setHandler(), set...). The advantage of this approach hides all jetty details in support. Once jetty support class is ready, all modules can write http tests in the same way. Any suggestions are highly appreciated! Thanks! On 8/1/06, Andrew Zhang [EMAIL PROTECTED] wrote: Hi folks, I volunteer to work on excluded tests in luni module, most of which are dependent on external servers(http server, socks proxy and etc.). As we discussed some months earlier, we'd integrate Jetty to Harmony test framework for eliminating external http server, but seems no more progress. Any volunteer to do this job? :-) Thanks! On 5/23/06, Stepan Mishura [EMAIL PROTECTED] wrote: Hi George, Paulex, Thanks for your answers. As a preliminary result - your convinced me and I'm going to be volunteer to evaluate jetty integration to classlib test suite. Do anybody work on integrating jetty http server to move net tests out of exclude list? Thanks, Stepan. On 5/23/06, George Harley [EMAIL PROTECTED] wrote: Stepan Mishura wrote: Hi George, Tim I'd like to clarify the following questions: 1) Configuring As I understood we say that the server is 'embedded' when we can start/stop it within Ant without additional configuration steps. And all we need to do is just download required jars. Right? What about Eclipse users? Hi Stepan, In addition to be being start-able, stop-able and configurable from Ant and XML config files, Jetty can also be embedded into the Java code of a test case or test suite. Configuration, starting and stopping are all possible. Eclipse users should not be disadvantaged. 2) Time to run test suite May be it is hard to estimate but anyway - will the test suite run slow down if we'll use jetty instead of mock objects? How much? Depends on configuration. Configure and start the server in the setup() of a JUnit TesCase (and stopping the server in the teardown()) would obviously be slower than doing the equivalent in a JUnit TestSetup descendent. Start up is a lot less than half a second on my machine. Is there some performance benchmark for tests that is at risk here ? 3) Testing Quoting Tim from 'local server thread': There is no way to force a server to send you a chunked response using regular HTTP headers, so in this case the server and client have an understanding that when the client asks for a particular resource the server will send it back in chunks. With mock objects this can be done with no problems and HARMONY-164 demonstrates the possible way. Also are we going to create negative tests, for example, for broken server response? I think yes. Can jettyserver be used for negative testing? Yes. You can send back any error. See other comments below On 5/22/06, George Harley wrote: Stepan Mishura wrote: On 5/19/06, Tim Ellison wrote: Stepan Mishura wrote: snip I'm OK only if we separate tests with Jetty from common test suite run. Why? Because each external dependency complicates 'normal' test suite run ( I don't want to face with situation when to run Harmony test suite I have to configure and run 20 different external servers even they are easy configurable). As far as I remember we agreed to use mock objects - so let's use them! For example, in this case there is no need in jettyserver. I'm not against 'jetty based tests' but I'd prefer
Re: performance of drlvm
Hi, Mikhail: These days i have read a lot of paper about dynamic optimization. I got the following ideas to profile the drlvm with PMU: 1. Prefetch Injection Based on Hardware Monitoring and Object Metadata: this paper is a good example about how to PMU to dynamic prefetch data with high cache miss rate. I want to implement this idea in DRLVM. 2. The idea from Chilimbi. He got the trace by instrumented the code, which causes high overhead. I want to improve his implementation. Firstly use the hardware performance counter to get the data reference trace, and abstracts the trace. Secondly use SEQUITUR algorithm to simplify the trace and represent the trace with DAG from which we can easily get the hot data stream (follow Chilimbi`s way). This can instruct how to prefetch the data with high miss rate. As for the performance monitor tool, i will think about it later. Please point out the defect or mistake. Thanks.
Re: [testing] trying to run freemind with harmony
Iñigo wrote: C:\Archivos de programa\FreeMind\libjava -Xmx1g -verbose:gc* -jar freemind.jar GC v4 M1-39 (2006-03-28) GC will incrementally slide compact at each GC, using algorithm = 2 Chunks will be swept on allocation WARNING: final heap size is too large, reduced to 900 Mb java heap initial size 64 Mb, maximum size 900 Mb (3840h), addresses range 2 002 - 5842 java.lang.OutOfMemoryError no stack trace available Iñigo, the log above doesn't have any collection messages, thus no collection had taken place, and the OutOfMemoryError is most likely caused by some other reason -- not the java heap shortage. I have just grepped DRLVM and found about 25 places where OOM is thrown explicitly in the VM. Applying following patch and running with '-verbose:oom -verbose:gc*' may shed some light on the reason of the problem. -- 8 -- diff --git vm/vmcore/src/class_support/Class_File_Loader.cpp vm/vmcore/src/class_support/Class_File_Loader.cpp index 0ec087f..259cc87 100644 --- vm/vmcore/src/class_support/Class_File_Loader.cpp +++ vm/vmcore/src/class_support/Class_File_Loader.cpp @@ -518,6 +518,7 @@ bool Field::parse(Class *clss, Const_Poo //std::stringstream ss; //ss clss-name-bytes : could not create type descriptor for field get_name(); //jthrowable exn = exn_create(java/lang/OutOfMemoryError, ss.str().c_str()); +INFO2(oom, out of memory when creating type desc); exn_raise_only(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return false; } diff --git vm/vmcore/src/class_support/classloader.cpp vm/vmcore/src/class_support/classloader.cpp index ea4e231..12e9ea1 100644 --- vm/vmcore/src/class_support/classloader.cpp +++ vm/vmcore/src/class_support/classloader.cpp @@ -1139,8 +1139,7 @@ Class* ClassLoader::AllocateAndReportIns if(new_java_lang_Class == NULL) { tmn_suspend_enable(); -// couldn't allocate java.lang.Class instance for this class -// ppervov: TODO: throw OutOfMemoryError +INFO2(oom, couldn't allocate java.lang.Class instance for this class); exn_raise_only( VM_Global_State::loader_env-java_lang_OutOfMemoryError); return NULL; diff --git vm/vmcore/src/exception/exceptions.cpp vm/vmcore/src/exception/exceptions.cpp index f37a0af..996d9c4 100644 --- vm/vmcore/src/exception/exceptions.cpp +++ vm/vmcore/src/exception/exceptions.cpp @@ -153,6 +153,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -180,6 +182,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -216,6 +220,8 @@ static jthrowable create_exception(const if (!exc_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -230,6 +236,8 @@ static jthrowable create_exception(const if (!arg_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } diff --git vm/vmcore/src/jit/jit_runtime_support.cpp vm/vmcore/src/jit/jit_runtime_support.cpp index de30891..88d547c 100644 --- vm/vmcore/src/jit/jit_runtime_support.cpp +++ vm/vmcore/src/jit/jit_runtime_support.cpp @@ -1834,6 +1834,7 @@ void *vm_malloc_with_thread_pointer( assert(!tmn_is_suspend_enabled()); void *result = gc_alloc(size,ah,tp); if (!result) { +INFO2(oom, out of gc heap memory); exn_throw(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return 0; // whether this return is reached or not is solved via is_unwindable state } @@ -1863,6 +1864,7 @@ #endif //VM_STATS gc_alloc(c-instance_data_size, c-allocation_handle, vm_get_gc_thread_local()); if (!o) { +INFO2(oom, out of gc heap memory); exn_throw( VM_Global_State::loader_env-java_lang_OutOfMemoryError); //tmn_suspend_enable(); @@ -1887,6 +1889,7 @@ #endif //VM_STATS gc_alloc(vtable-allocated_size, vtable-clss-allocation_handle, vm_get_gc_thread_local()); if (!o) { +INFO2(oom, out of gc heap memory); exn_throw( VM_Global_State::loader_env-java_lang_OutOfMemoryError); return NULL; // reached by interpreter and from JNI @@ -1916,6 +1919,7 @@
Re: [drlvm][vm, mmtk] adding thread-local storage functionality to vmmagic
On the 0x1C8 day of Apache Harmony Weldon Washburn wrote: Windows uses ia32 segment register fs:14 for fast thread-local storage access. I think Linux somehow uses the gs segment register. In general, it is implementation-specific (not older kernels). Here is a good link for that: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4915203 I wonder, how to handle system-dependent code with Java vmmagic :( A simple if-then-else would make an #ifdef replacement? -- Egor Pasko, Intel Managed Runtime Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm] Helper inlining in JIT
On 8/17/06, Rana Dasgupta [EMAIL PROTECTED] wrote: - So we will write the inlinable fastpaths wherever possible in pure Java, using an annotated calling convention to call the slowpath ( to support developer freedom :-) ). - Where the fastpaths cannot be expressible in pure Java, we will first use asm to develop the helper and a custom calling convention to invoke and test it - As and when the magic classes are all available( I have not seen Alex and Weldon's code ), we will switch the second set above to Java + magic and start inlining these as well - We can start with the new object allocation helper and .Jet if we want to, I guess - For folks who are interested in this, the core helpers live in vmcore\src\jit\jit_runtime_support.cpp and the exports in vmcore\include\jit_export.h. There is platform specific stuff under vmcore\util\[platform]\base These make sense. Only one addition is, if we want the work be reused by other GCs easily, the interfaces for fast path routines should be defined. If the set is small (I think it is), we can define one or more Java interfaces including all the methods, then any compatible GC can implement these interfaces to leverage the inlining advantage. The interfaces can be put into kernel class directory, and the implementation code will stay with GC. (I am using GC here as only an example.) Thanks, xiaofeng - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [classlib][luni] Compatibility: Default buf size of BufferedOutputStream
Hi, Buffer Size is definitely implementation dependent. The test should be re done so that it doesn't assume the size of the buffer. A simple way to structure the test would be :- - Create a Sub class of BufferedOutputStream. - Since count and buf have protected access in BufferedOutputStream, subclassing will allow us to get access to those values. Once you have the sub class it is now straight forward to determine the default size of the buffer and the test becomes much simpler in fact... Hope that helps.. Thanks, Vijay Andrew Zhang wrote: I think it's implementation detail. Any default buffer size is acceptable as long as complying with spec. Of course, if Harmony's default size is equal with RI's by accident, it's good. :) So the problem is test, not implementation code. I suggest modify the test even if we fix our default size in the code. And if some applications are heaviliy dependent on the default size and refuse to fix their code, I guess they won't become popular. :) Applications can take the advantage of the default size, but not to be dependent on them. :) On 8/17/06, Richard Liang [EMAIL PROTECTED] wrote: Hello All, One test case tests.api.java.io.BufferedOutputStreamTest.test_write$BII fails on RI (passes on Harmony) because the default buf size between RI and Harmony are different. The default buf size is not specified in the Java Specification. If we can detect what the default buf size of RI is by some test cases, shall we use the same default buf size as RI? Any comments? Thanks a lot. public void test_write$BII() { // Test for method void java.io.BufferedOutputStream.write(byte [], int, // int) try { os = new java.io.BufferedOutputStream( baos = new java.io.ByteArrayOutputStream()); os.write(fileString.getBytes(), 0, 500); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes written, not buffered, 0, bais.available()); os.flush(); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes not written after flush, 500, bais.available()); os.write(fileString.getBytes(), 500, 513); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertTrue(Bytes not written when buffer full, bais.available() = 1000); byte[] wbytes = new byte[1013]; bais.read(wbytes, 0, 1013); assertTrue(Incorrect bytes written, fileString.substring(0, 1013) .equals(new String(wbytes, 0, wbytes.length))); } catch (java.io.IOException e) { fail(Flush test failed); } } -- Richard Liang China Software Development Lab, IBM - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [classlib][testing] excluding the failed tests
Hi folks, I'd like to investigate tests/api/java/net/DatagramSocketTest.java and tests/api/java/net/DatagramSocketTest.java in luni module. I have updated the wiki page(http://wiki.apache.org/harmony/Excluded_tests). I'll also plan to study other excluded tests in luni module when I finish these two files. Please let me know if you're interested too. Thanks! On 7/14/06, Vladimir Ivanov [EMAIL PROTECTED] wrote: New page http://wiki.apache.org/harmony/Excluded_tests was added to WIKI (refered from http://wiki.apache.org/harmony/ClassLibrary). It would be good if before test investigation one would specify 'in progress, Name' near module name, showing it is under investigation being done by Name. Thanks, Vladimir On 7/14/06, Richard Liang [EMAIL PROTECTED] wrote: Vladimir Ivanov wrote: On 7/7/06, Tim Ellison [EMAIL PROTECTED] wrote: ... Currently I'm looking on the excluded TestCases and it requires more time than I expected. I'll prepare a report/summary about excluded TestCases at the end of this process. Hello Vladimir, How about the progress of your report/summary? ;-) As I'm implementing java.util.Formatter and java.util.Scanner, I'm also interested in the excluded tests in LUNI. Shall we create a wiki page to publish our status, so that other people in community can know what we're doing, and maybe we could attract more volunteers. ;-) Best regards, Richard. Thanks, Vladimir On 7/7/06, Tim Ellison [EMAIL PROTECTED] wrote: Vladimir Ivanov wrote: More details: it is org/apache/harmony/security/tests/java/security/SecureRandom2Test.java test. At present time it has 2 failing tests with messages about SHA1PRNG algorithm (no support for SHA1PRNG provider). Looks like it is valid tests for non implemented functionality, but, I'm not sure what to do with such TestCase(s): comment these 2 tests or move them into separate TestCase. Ideas? I'd prefer that we only use one mechanism for excluding tests, and today that is the excludes clause in the ant script. So I suggest that you do option (4) below. If there are really useful tests that are being unnecessarily excluded by being in the same *Test class, then you may want to consider moving the failing tests into SecureRandom3Test and excluding that -- but by the sound of it all SecureRandom tests will be failing. By the way, probably, it worth reviewing *all* excluded TestCases and: 1. Unexclude if all tests pass. 2. Report bug and provide patch for test to make it passing if it failed due to bug in test. 3. Report bug (and provide patch) for implementation to make tests passing, if it was/is bug in implementation and no such issue in JIRA. 4. Specify reasons for excluding TestCases in exclude list to make further clean-up process easier. 5. Review results of this exclude list clean-up activity and then decide what to do with the rest failing tests. I can do it starting next week. Do you think it worth doing? Thanks, Vladimir Sounds great, thanks Vladimir. Regards, Tim -- Tim Ellison ( [EMAIL PROTECTED]) IBM Java technology centre, UK. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Richard Liang China Software Development Lab, IBM - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Andrew Zhang China Software Development Lab, IBM
Re: [classlib][luni] Compatibility: Default buf size of BufferedOutputStream
On 8/17/06, Richard Liang wrote: Hello All, One test case tests.api.java.io.BufferedOutputStreamTest.test_write$BII fails on RI (passes on Harmony) because the default buf size between RI and Harmony are different. The default buf size is not specified in the Java Specification. If we can detect what the default buf size of RI is by some test cases, shall we use the same default buf size as RI? Any comments? Thanks a lot. At first glance, the test is wrong - it shouldn't rely on default buffer size and it should explicitly specify what the buffer size is by using: BufferedOutputStream(OutputStream out, int size) Parameters: out - the underlying output stream. size - the buffer size. Thanks, Stepan. public void test_write$BII() { // Test for method void java.io.BufferedOutputStream.write(byte [], int, // int) try { os = new java.io.BufferedOutputStream( baos = new java.io.ByteArrayOutputStream()); os.write(fileString.getBytes(), 0, 500); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes written, not buffered, 0, bais.available()); os.flush(); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes not written after flush, 500, bais.available()); os.write(fileString.getBytes(), 500, 513); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertTrue(Bytes not written when buffer full, bais.available() = 1000); byte[] wbytes = new byte[1013]; bais.read(wbytes, 0, 1013); assertTrue(Incorrect bytes written, fileString.substring(0, 1013) .equals(new String(wbytes, 0, wbytes.length))); } catch (java.io.IOException e) { fail(Flush test failed); } } -- Richard Liang China Software Development Lab, IBM -- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [test] Jetty integration progress ? (was Re: [classlib] jetty based tests)
On 8/17/06, Andrew Zhang wrote: Hi folks, I'd like to say something more about jetty integration. We should reach an agreement on how to integrate/use jetty in Harmony. There are some concerns I can image now: 1. Where to put jetty? support or luni module or somewhere else? It depends on question 2. +1 for support 2. How to use jetty? How many jetty instances are there? Singleton or multiple instances? In other word, shall we start only one jetty server at the beginning before running all tests? or will we start/destroy embedded jetty server at will in any test case? Seems jetty supports both options. It should be possibile for a test dynamically configure testing server (remember my favorite scenario with sending chunked response?). So a test should be able to stat jetty. 3. How to write jetty based test?. Multi-thread network test always is a problem to us. I found it's also hard to be theoretically. I've expected that you know :-) Are there any guidelines? Thanks, Stepan. According to the description above, I suggest put jetty in support module, and encapsulate a class (i.e Support_JettyServer) with some public methods for test writing (i.e getJettyPort(), setHandler(), set...). The advantage of this approach hides all jetty details in support. Once jetty support class is ready, all modules can write http tests in the same way. Any suggestions are highly appreciated! Thanks! On 8/1/06, Andrew Zhang [EMAIL PROTECTED] wrote: Hi folks, I volunteer to work on excluded tests in luni module, most of which are dependent on external servers(http server, socks proxy and etc.). As we discussed some months earlier, we'd integrate Jetty to Harmony test framework for eliminating external http server, but seems no more progress. Any volunteer to do this job? :-) Thanks! On 5/23/06, Stepan Mishura [EMAIL PROTECTED] wrote: Hi George, Paulex, Thanks for your answers. As a preliminary result - your convinced me and I'm going to be volunteer to evaluate jetty integration to classlib test suite. Do anybody work on integrating jetty http server to move net tests out of exclude list? Thanks, Stepan. On 5/23/06, George Harley [EMAIL PROTECTED] wrote: Stepan Mishura wrote: Hi George, Tim I'd like to clarify the following questions: 1) Configuring As I understood we say that the server is 'embedded' when we can start/stop it within Ant without additional configuration steps. And all we need to do is just download required jars. Right? What about Eclipse users? Hi Stepan, In addition to be being start-able, stop-able and configurable from Ant and XML config files, Jetty can also be embedded into the Java code of a test case or test suite. Configuration, starting and stopping are all possible. Eclipse users should not be disadvantaged. 2) Time to run test suite May be it is hard to estimate but anyway - will the test suite run slow down if we'll use jetty instead of mock objects? How much? Depends on configuration. Configure and start the server in the setup() of a JUnit TesCase (and stopping the server in the teardown()) would obviously be slower than doing the equivalent in a JUnit TestSetup descendent. Start up is a lot less than half a second on my machine. Is there some performance benchmark for tests that is at risk here ? 3) Testing Quoting Tim from 'local server thread': There is no way to force a server to send you a chunked response using regular HTTP headers, so in this case the server and client have an understanding that when the client asks for a particular resource the server will send it back in chunks. With mock objects this can be done with no problems and HARMONY-164 demonstrates the possible way. Also are we going to create negative tests, for example, for broken server response? I think yes. Can jettyserver be used for negative testing? Yes. You can send back any error. See other comments below On 5/22/06, George Harley wrote: Stepan Mishura wrote: On 5/19/06, Tim Ellison wrote: Stepan Mishura wrote: snip I'm OK only if we separate tests with Jetty from common test suite run. Why? Because each external dependency complicates 'normal' test suite run ( I don't want to face with situation when to run Harmony test suite I have to configure and run 20 different external servers even they are easy configurable). As far as I remember we agreed to use mock objects - so let's use them! For example, in this case there is no need in jettyserver. I'm not against 'jetty based tests' but I'd prefer to separate such tests. Thanks, Stepan. Hi Stepan, Just seen this
Re: [jira] Assigned: (HARMONY-1208) Bug fixing and cosmetics for Harmony 935
Hi Daniel, Please resubmit the patch with license granted to ASF Seems like the patch was generated against original H-935 contribution and does not take into account later changes. Could you please regenerate the patch? Thanks, Mikhail 2006/8/17, Mikhail Loenko (JIRA) [EMAIL PROTECTED]: [ http://issues.apache.org/jira/browse/HARMONY-1208?page=all ] Mikhail Loenko reassigned HARMONY-1208: --- Assignee: Mikhail Loenko Bug fixing and cosmetics for Harmony 935 Key: HARMONY-1208 URL: http://issues.apache.org/jira/browse/HARMONY-1208 Project: Harmony Issue Type: Improvement Reporter: Daniel Fridlender Assigned To: Mikhail Loenko Priority: Minor Attachments: MathDiff.diff.zip A patch to fix some bugs in Harmony 935, turn serialization compatible with RI and some cosmetics. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [classlib][luni] Compatibility: Default buf size of BufferedOutputStream
Vijay Yellapragada wrote: Hi, Buffer Size is definitely implementation dependent. The test should be re done so that it doesn't assume the size of the buffer. Yes. Just thinking about if there are any user applications depending on this behavior :-) A simple way to structure the test would be :- - Create a Sub class of BufferedOutputStream. - Since count and buf have protected access in BufferedOutputStream, subclassing will allow us to get access to those values. Once you have the sub class it is now straight forward to determine the default size of the buffer and the test becomes much simpler in fact... Hope that helps.. It really helps. Thanks a lot. Thanks, Vijay Andrew Zhang wrote: I think it's implementation detail. Any default buffer size is acceptable as long as complying with spec. Of course, if Harmony's default size is equal with RI's by accident, it's good. :) So the problem is test, not implementation code. I suggest modify the test even if we fix our default size in the code. And if some applications are heaviliy dependent on the default size and refuse to fix their code, I guess they won't become popular. :) Applications can take the advantage of the default size, but not to be dependent on them. :) On 8/17/06, Richard Liang [EMAIL PROTECTED] wrote: Hello All, One test case tests.api.java.io.BufferedOutputStreamTest.test_write$BII fails on RI (passes on Harmony) because the default buf size between RI and Harmony are different. The default buf size is not specified in the Java Specification. If we can detect what the default buf size of RI is by some test cases, shall we use the same default buf size as RI? Any comments? Thanks a lot. public void test_write$BII() { // Test for method void java.io.BufferedOutputStream.write(byte [], int, // int) try { os = new java.io.BufferedOutputStream( baos = new java.io.ByteArrayOutputStream()); os.write(fileString.getBytes(), 0, 500); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes written, not buffered, 0, bais.available()); os.flush(); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes not written after flush, 500, bais.available()); os.write(fileString.getBytes(), 500, 513); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertTrue(Bytes not written when buffer full, bais.available() = 1000); byte[] wbytes = new byte[1013]; bais.read(wbytes, 0, 1013); assertTrue(Incorrect bytes written, fileString.substring(0, 1013) .equals(new String(wbytes, 0, wbytes.length))); } catch (java.io.IOException e) { fail(Flush test failed); } } -- Richard Liang China Software Development Lab, IBM - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Richard Liang China Software Development Lab, IBM - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [test] Jetty integration progress ? (was Re: [classlib] jetty based tests)
On 8/17/06, Stepan Mishura [EMAIL PROTECTED] wrote: On 8/17/06, Andrew Zhang wrote: Hi folks, I'd like to say something more about jetty integration. We should reach an agreement on how to integrate/use jetty in Harmony. There are some concerns I can image now: 1. Where to put jetty? support or luni module or somewhere else? It depends on question 2. +1 for support 2. How to use jetty? How many jetty instances are there? Singleton or multiple instances? In other word, shall we start only one jetty server at the beginning before running all tests? or will we start/destroy embedded jetty server at will in any test case? Seems jetty supports both options. It should be possibile for a test dynamically configure testing server (remember my favorite scenario with sending chunked response?). So a test should be able to stat jetty. Yes, I remember. :) Overriding AbstractHttpHandler should work for your scenario. That's why I mentioned setHandler in the Support_JettyServer API. Of course, if we find something that can only be done by multiple jetty instances, then I would agree that a test should be able to start jetty. Otherwise, I'll vote for single jetty instance, for performance, and easy maintenance consideration. 3. How to write jetty based test?. Multi-thread network test always is a problem to us. I found it's also hard to be theoretically. I've expected that you know :-) Are there any guidelines? Not guidelines but some ideas. :) It's almost impossible to write theoretically stable jetty test. (correct me if I'm wrong.) Because server.accept and client.connect/read are both blocking operation so synchronization(wait/notify/lock) doesn't work here. But it's possible to write pratically stable tests. If there's only one jetty instance which is started at the begining, things are simple. Just start jetty, wait a little while (until we can connect to a sample page or be notified from jetty if there's any callback method in jetty), and run all tests. No thread race problem at all if we assume jetty really started and works well after a little while, and jetty thread can be scheduled normally by jvm. I think we have to assume something, and believe the tests are pratically stable, though not theoretically. Any fears for the potentially uncertain? :) Any suggestions/comments/objections? Thanks! Thanks, Stepan. According to the description above, I suggest put jetty in support module, and encapsulate a class (i.e Support_JettyServer) with some public methods for test writing (i.e getJettyPort(), setHandler(), set...). The advantage of this approach hides all jetty details in support. Once jetty support class is ready, all modules can write http tests in the same way. Any suggestions are highly appreciated! Thanks! On 8/1/06, Andrew Zhang [EMAIL PROTECTED] wrote: Hi folks, I volunteer to work on excluded tests in luni module, most of which are dependent on external servers(http server, socks proxy and etc.). As we discussed some months earlier, we'd integrate Jetty to Harmony test framework for eliminating external http server, but seems no more progress. Any volunteer to do this job? :-) Thanks! On 5/23/06, Stepan Mishura [EMAIL PROTECTED] wrote: Hi George, Paulex, Thanks for your answers. As a preliminary result - your convinced me and I'm going to be volunteer to evaluate jetty integration to classlib test suite. Do anybody work on integrating jetty http server to move net tests out of exclude list? Thanks, Stepan. On 5/23/06, George Harley [EMAIL PROTECTED] wrote: Stepan Mishura wrote: Hi George, Tim I'd like to clarify the following questions: 1) Configuring As I understood we say that the server is 'embedded' when we can start/stop it within Ant without additional configuration steps. And all we need to do is just download required jars. Right? What about Eclipse users? Hi Stepan, In addition to be being start-able, stop-able and configurable from Ant and XML config files, Jetty can also be embedded into the Java code of a test case or test suite. Configuration, starting and stopping are all possible. Eclipse users should not be disadvantaged. 2) Time to run test suite May be it is hard to estimate but anyway - will the test suite run slow down if we'll use jetty instead of mock objects? How much? Depends on configuration. Configure and start the server in the setup() of a JUnit TesCase (and stopping the server in the teardown()) would obviously be slower than doing the equivalent in a JUnit TestSetup descendent. Start up is a lot less than half a second on my machine. Is there some performance benchmark for tests that is at risk here ? 3) Testing Quoting Tim from 'local server thread': There
[classlib][luni] Enable tests.api.java.net.DatagramSocketTest?
Hi folks, After applying Harmony-1024, tests.api.java.net.DatagramSocketTest passes against Harmony on my machine. Before enabling it, I'd like to hear more feedbacks from community. Would you please provide your test result on running DatagramSocketTest against Harmony? Thank you very much in advance! -- Andrew Zhang China Software Development Lab, IBM
Re: [testing] trying to run freemind with harmony
Salikh, as far as I understood he runs a snapshot... SY, Alexey 2006/8/17, Salikh Zakirov [EMAIL PROTECTED]: Iñigo wrote: C:\Archivos de programa\FreeMind\libjava -Xmx1g -verbose:gc* -jar freemind.jar GC v4 M1-39 (2006-03-28) GC will incrementally slide compact at each GC, using algorithm = 2 Chunks will be swept on allocation WARNING: final heap size is too large, reduced to 900 Mb java heap initial size 64 Mb, maximum size 900 Mb (3840h), addresses range 2 002 - 5842 java.lang.OutOfMemoryError no stack trace available Iñigo, the log above doesn't have any collection messages, thus no collection had taken place, and the OutOfMemoryError is most likely caused by some other reason -- not the java heap shortage. I have just grepped DRLVM and found about 25 places where OOM is thrown explicitly in the VM. Applying following patch and running with '-verbose:oom -verbose:gc*' may shed some light on the reason of the problem. -- 8 -- diff --git vm/vmcore/src/class_support/Class_File_Loader.cpp vm/vmcore/src/class_support/Class_File_Loader.cpp index 0ec087f..259cc87 100644 --- vm/vmcore/src/class_support/Class_File_Loader.cpp +++ vm/vmcore/src/class_support/Class_File_Loader.cpp @@ -518,6 +518,7 @@ bool Field::parse(Class *clss, Const_Poo //std::stringstream ss; //ss clss-name-bytes : could not create type descriptor for field get_name(); //jthrowable exn = exn_create(java/lang/OutOfMemoryError, ss.str().c_str()); +INFO2(oom, out of memory when creating type desc); exn_raise_only(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return false; } diff --git vm/vmcore/src/class_support/classloader.cpp vm/vmcore/src/class_support/classloader.cpp index ea4e231..12e9ea1 100644 --- vm/vmcore/src/class_support/classloader.cpp +++ vm/vmcore/src/class_support/classloader.cpp @@ -1139,8 +1139,7 @@ Class* ClassLoader::AllocateAndReportIns if(new_java_lang_Class == NULL) { tmn_suspend_enable(); -// couldn't allocate java.lang.Class instance for this class -// ppervov: TODO: throw OutOfMemoryError +INFO2(oom, couldn't allocate java.lang.Class instance for this class); exn_raise_only( VM_Global_State::loader_env-java_lang_OutOfMemoryError); return NULL; diff --git vm/vmcore/src/exception/exceptions.cpp vm/vmcore/src/exception/exceptions.cpp index f37a0af..996d9c4 100644 --- vm/vmcore/src/exception/exceptions.cpp +++ vm/vmcore/src/exception/exceptions.cpp @@ -153,6 +153,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -180,6 +182,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -216,6 +220,8 @@ static jthrowable create_exception(const if (!exc_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -230,6 +236,8 @@ static jthrowable create_exception(const if (!arg_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } diff --git vm/vmcore/src/jit/jit_runtime_support.cpp vm/vmcore/src/jit/jit_runtime_support.cpp index de30891..88d547c 100644 --- vm/vmcore/src/jit/jit_runtime_support.cpp +++ vm/vmcore/src/jit/jit_runtime_support.cpp @@ -1834,6 +1834,7 @@ void *vm_malloc_with_thread_pointer( assert(!tmn_is_suspend_enabled()); void *result = gc_alloc(size,ah,tp); if (!result) { +INFO2(oom, out of gc heap memory); exn_throw(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return 0; // whether this return is reached or not is solved via is_unwindable state } @@ -1863,6 +1864,7 @@ #endif //VM_STATS gc_alloc(c-instance_data_size, c-allocation_handle, vm_get_gc_thread_local()); if (!o) { +INFO2(oom, out of gc heap memory); exn_throw( VM_Global_State::loader_env-java_lang_OutOfMemoryError); //tmn_suspend_enable(); @@ -1887,6 +1889,7 @@ #endif //VM_STATS gc_alloc(vtable-allocated_size, vtable-clss-allocation_handle, vm_get_gc_thread_local()); if (!o) { +INFO2(oom, out of gc heap memory); exn_throw( VM_Global_State::loader_env-java_lang_OutOfMemoryError); return NULL; // reached by
Re: [classlib][luni] Compatibility: Default buf size of BufferedOutputStream
Stepan Mishura wrote: On 8/17/06, Richard Liang wrote: Hello All, One test case tests.api.java.io.BufferedOutputStreamTest.test_write$BII fails on RI (passes on Harmony) because the default buf size between RI and Harmony are different. The default buf size is not specified in the Java Specification. If we can detect what the default buf size of RI is by some test cases, shall we use the same default buf size as RI? Any comments? Thanks a lot. At first glance, the test is wrong - it shouldn't rely on default buffer size and it should explicitly specify what the buffer size is by using: BufferedOutputStream(OutputStream out, int size) Parameters: out - the underlying output stream. size - the buffer size. Yes, we can fix the test case this way. Here I just want to confirm that the default buf size is implementation detail, we are free to be different with RI. I will raise a JIRA to fix this test. Thanks a lot. Thanks, Stepan. public void test_write$BII() { // Test for method void java.io.BufferedOutputStream.write(byte [], int, // int) try { os = new java.io.BufferedOutputStream( baos = new java.io.ByteArrayOutputStream()); os.write(fileString.getBytes(), 0, 500); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes written, not buffered, 0, bais.available()); os.flush(); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertEquals(Bytes not written after flush, 500, bais.available()); os.write(fileString.getBytes(), 500, 513); bais = new java.io.ByteArrayInputStream(baos.toByteArray()); assertTrue(Bytes not written when buffer full, bais.available() = 1000); byte[] wbytes = new byte[1013]; bais.read(wbytes, 0, 1013); assertTrue(Incorrect bytes written, fileString.substring(0, 1013) .equals(new String(wbytes, 0, wbytes.length))); } catch (java.io.IOException e) { fail(Flush test failed); } } -- Richard Liang China Software Development Lab, IBM -- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Richard Liang China Software Development Lab, IBM - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [classlib][instrument]Using Support_Exec framework(was Re: [classlib][Instrument] Documents for non-unit-tests)
Jimmy, Ah, we are trying to catch the exact exception name, not its message. I agree parsing the message is a bad idea, but find an exact exception name in the output is still stable, am I right? Yes, it's stable. In fact, I have no idea to catch an exception in exec, it surely contains no such function, right? No, it doesn't. -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm] sanity check - can someone build from svn and test ActiveMQ?
Hello, Please try to apply patch Index: vm/vmcore/src/verifier/ver_utils.cpp === --- vm/vmcore/src/verifier/ver_utils.cpp(revision 432184) +++ vm/vmcore/src/verifier/ver_utils.cpp(working copy) @@ -1391,6 +1391,9 @@ // get stack reference class class_handler source = vf_resolve_class( constraint-source, true, ctex ); +if(source == NULL) { + source = vf_resolve_class( constraint-source, false, ctex ); +} if( !source ) { VERIFY_DEBUG( verifying class class_get_name( ctex-m_class ) (method method_get_name( constraint-method ) Unfortunately I cannot attach it to the JIRA issue because the issue is closed. On 8/16/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: I'm trying to create snapshots, and when testing w/ ActiveMQ, I still have the same problems w/ ActiveMQ as reported originally in HARMONY-956. Can someone do a sanity check? it's a release build. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm] sanity check - can someone build from svn and test ActiveMQ?
Anton, your patch is a dutty hacking. With and without the patch ActiveMQ crashes as Gregory described. On 17/08/06, Anton Luht [EMAIL PROTECTED] wrote: Hello, Please try to apply patch Index: vm/vmcore/src/verifier/ver_utils.cpp === --- vm/vmcore/src/verifier/ver_utils.cpp(revision 432184) +++ vm/vmcore/src/verifier/ver_utils.cpp(working copy) @@ -1391,6 +1391,9 @@ // get stack reference class class_handler source = vf_resolve_class( constraint-source, true, ctex ); +if(source == NULL) { + source = vf_resolve_class( constraint-source, false, ctex ); +} if( !source ) { VERIFY_DEBUG( verifying class class_get_name( ctex-m_class ) (method method_get_name( constraint-method ) Unfortunately I cannot attach it to the JIRA issue because the issue is closed. On 8/16/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: I'm trying to create snapshots, and when testing w/ ActiveMQ, I still have the same problems w/ ActiveMQ as reported originally in HARMONY-956. Can someone do a sanity check? it's a release build. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Best regards, Pavel Rebriy
Re: [drlvm][vm, mmtk] adding thread-local storage functionality to vmmagic
On 17 Aug 2006 14:01:51 +0700, Egor Pasko [EMAIL PROTECTED] wrote: On the 0x1C8 day of Apache Harmony Weldon Washburn wrote: Windows uses ia32 segment register fs:14 for fast thread-local storage access. I think Linux somehow uses the gs segment register. In general, it is implementation-specific (not older kernels). Here is a good link for that: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4915203 I took a look. It mentions some kernels use GS register, some have an TLS related API that uses the LDT and some use the upper 10 bits of ESP as a unique thread value. The upper 10 can then be used as an index or hash into a JVM data struct that holds thread local data. We need some approach to handle old linux kernels that use ESP. Maybe add a compiler instrinsic that returns the current ESP contents shifted right by 22 bits. Something like: int index = espShiftedRightBy22Bits(); I wonder, how to handle system-dependent code with Java vmmagic :( A simple if-then-else would make an #ifdef replacement? Good point. We should have a project-wide standard on java #ifdef. Feel free to propose something. -- Egor Pasko, Intel Managed Runtime Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Weldon Washburn Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [DRLVM][GC] Goals for 2006/2007
All, I found some GC requirements description in the OPEN spec [1], section 5.3.5 and something inside 6.*. How does those suggestions relate to what is being discussed? Do you think we can use that doc as the basis and maybe track major decisions there? Mail threads tend to drop, and are not always a convenient means of finding the final decision for an issue :) [1] http://issues.apache.org/jira/browse/HARMONY-459 Best regards, Nadya Morozova -Original Message- From: Weldon Washburn [mailto:[EMAIL PROTECTED] Sent: Monday, August 14, 2006 9:23 PM To: harmony-dev@incubator.apache.org Subject: [DRLVM][GC] Goals for 2006/2007 All, There is rough consensus that the immediate goal for Harmony JVM is to reliably run simple commercial workloads with acceptable performance. In regards to a garbage collector for a Harmony JVM in 2006 there are some data points worth noting. 1) A quick survey shows most basic commercial JVMs implement a generational collector. 2) While the existing drlvm garbage collector, gcv4, implements some interesting advanced concepts, it is not currently a generational collector. 3) The MMTk port to drlvm is not yet finished. Even assuming MMTk's generational configuration is appropriate, it is still too early to put this garbage collector on the roadmap for a 2006 Harmony JVM. It might be worth revisiting in 2007. But it's too far away to debate at this time. Given the above data points, the following is a first stab at requirements for Harmony GCV5. The intention is to set down some basic parameters. 1) Generational Collector with mark/compacting mature object space 2) Parallel collection, no concurrent collection (Editor's note: parallel collection is a specific term meaning that during gc collection, most CPUs in an SMP box are busy collecting garbage. This is fairly straight forward to build. Concurrent collection is a specific term meaning that Java application threads make forward progress while special GC threads are simultaneously collecting. This is hard to build) 3) Parallel allocation. (Again, this is very straight forward. Basically each Java thread gets private chunks of memory to allocate out of.) 4) Write barriers. A generational collector benefits from write barriers that detect whenever a pointer to a younger object is written inside an older object. 5) For expediency, GCV5 should try to plug into the existing JVM/GC interface. However, if this interface is broken, we need to jump at the opportunity to make it right. 6) The goal is to make this code readable/modifiable/debuggable by non-GC engineers. The code should read as nothing more than a basic generational GC. No experimental code should ever be checked into Harmony GCV5 source base. 7) Performance goals should be discussed after the initial implementation is committed. 8) Object pinning is not required at this time. However, be prepared that at a later date we might discover pinning is needed to get acceptable performance from native methods that use JNI. 9) Supports Java 1.5. This means GCV5 must implement functionality such as weak/soft/phantom references and finalization. 10) Though this work will be an investment, it is ultimately necessary for Harmony to meet medium term goals, eg., being maintainable, passing TcK successfully, etc. and be a platform for future, more advanced work, which is a requirement that v4 cannot meet. Thoughts on the above? -- Weldon Washburn Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm][vm, mmtk] adding thread-local storage functionality to vmmagic
Weldon, I agree that we need TLS access in vmmagic, but I thought about slightly different and more primitive implementation. Writing something like this: SegmentRegisterFS segFs = new SegmentRegisterFS(); or this: SegmentRegisterGS segGs = new SegmentRegisterGS(); we add the knowledge of the platform to Java code. (+ 'new' operation is not used (constructor is private) for the most of the MMTk types) My proposal is to write something like this: Address addr = TLS.getAddressByOffset(offset_in_TLS) and to forget about platform related problems. Leave it to JIT or VM to decide how to access to TLS on particular platform. Egor, Why do you think we need to support platform specific issues in helpers? Is there any example that shows that we can't write a helper without reference platform details? I think we should avoid #ifdef's in Java as much as we can. -- Mikhail Fursov
[classlib][tools] Announcement: JNI-style C Header File Generator contribution
Hi all, I have developed a tool to generate JNI-style headers. This tool is a replacement for javah tool from the JavaSE 1.5.0. I would like it to be included in Harmony tools sections. The archive can be found there: http://issues.apache.org/jira/browse/HARMONY-1217 The archive contains the source files of the tool, an ant task adapter, samples, building scripts and several text files. One of the text files is README, which explains in detail how the tool can be built and how you can use it as a standalone application. All the code is pure Java. There is an integration patch which integrates the ijh tool into Harmony build system. The patch is attached to the HARMONY-1217 JIRA. Please don't hesitate to contact me for more details. Thanks a lot. -- Dmitry M. Kononov Intel Managed Runtime Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [classlib][luni] Enable tests.api.java.net.DatagramSocketTest?
On 17 August 2006 at 17:25, Andrew Zhang [EMAIL PROTECTED] wrote: Hi folks, After applying Harmony-1024, tests.api.java.net.DatagramSocketTest passes against Harmony on my machine. Before enabling it, I'd like to hear more feedbacks from community. Would you please provide your test result on running DatagramSocketTest against Harmony? Thank you very much in advance! Works for me on linux (using both Harmony and RI). Regards, Mark. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm] sanity check - can someone build from svn and test ActiveMQ?
Right - what I was worried about was that I *thought* that HARMONY-956 got me to where Gergory is describing, but he's applying HARMONY-1179. I'll just stop worrying about this for the snapshot, post it, and move on w/ 1179 and keep going. Thanks all for looking into this - I could *swear* that 956 had a visible effect, but I was clearly mistaken. And what is dutty hacking? :) geir On Aug 17, 2006, at 8:11 AM, Pavel Rebriy wrote: Anton, your patch is a dutty hacking. With and without the patch ActiveMQ crashes as Gregory described. On 17/08/06, Anton Luht [EMAIL PROTECTED] wrote: Hello, Please try to apply patch Index: vm/vmcore/src/verifier/ver_utils.cpp === --- vm/vmcore/src/verifier/ver_utils.cpp(revision 432184) +++ vm/vmcore/src/verifier/ver_utils.cpp(working copy) @@ -1391,6 +1391,9 @@ // get stack reference class class_handler source = vf_resolve_class( constraint-source, true, ctex ); +if(source == NULL) { + source = vf_resolve_class( constraint-source, false, ctex ); +} if( !source ) { VERIFY_DEBUG( verifying class class_get_name( ctex- m_class ) (method method_get_name( constraint-method ) Unfortunately I cannot attach it to the JIRA issue because the issue is closed. On 8/16/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: I'm trying to create snapshots, and when testing w/ ActiveMQ, I still have the same problems w/ ActiveMQ as reported originally in HARMONY-956. Can someone do a sanity check? it's a release build. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: harmony-dev- [EMAIL PROTECTED] For additional commands, e-mail: harmony-dev- [EMAIL PROTECTED] -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: harmony-dev- [EMAIL PROTECTED] -- Best regards, Pavel Rebriy - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[app-bug] mx4j
Hello, Now some people in this list are trying to make ActiveMQ run on Harmony. ActiveMQ is based on MX4J [1] . MX4J 3.0.1 has 812 unit tests. Results of those tests: BEA WebLogic JRockit(TM) 1.4.2_04 JVM : 810 tests, 1 failure, 1 error (99.75%) Harmony DRLVM version 11.2.0 766 tests, 2 failures, 110 errors (85.38%) Maybe it's worth to consider MX4j JUnit tests first and then try to fix ActiveMQ? MX4J is used not only in ActiveMQ but in other apps like Tomcat as well. [1] http://mx4j.sourceforge.net -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [app-bug] mx4j
that's a great idea. Have you isolated any of the errors? geir On Aug 17, 2006, at 10:40 AM, Anton Luht wrote: Hello, Now some people in this list are trying to make ActiveMQ run on Harmony. ActiveMQ is based on MX4J [1] . MX4J 3.0.1 has 812 unit tests. Results of those tests: BEA WebLogic JRockit(TM) 1.4.2_04 JVM : 810 tests, 1 failure, 1 error (99.75%) Harmony DRLVM version 11.2.0 766 tests, 2 failures, 110 errors (85.38%) Maybe it's worth to consider MX4j JUnit tests first and then try to fix ActiveMQ? MX4J is used not only in ActiveMQ but in other apps like Tomcat as well. [1] http://mx4j.sourceforge.net -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [testing] trying to run freemind with harmony
FYI : cannot reproduce on the classlib r432241 running on IBM VME Windows XP. Freemind seems to work fine there[1]. [1] http://people.apache.org/~tellison/Harmony-1209.jpg Regards, Tim Alexey Petrenko wrote: Salikh, as far as I understood he runs a snapshot... SY, Alexey 2006/8/17, Salikh Zakirov [EMAIL PROTECTED]: Iñigo wrote: C:\Archivos de programa\FreeMind\libjava -Xmx1g -verbose:gc* -jar freemind.jar GC v4 M1-39 (2006-03-28) GC will incrementally slide compact at each GC, using algorithm = 2 Chunks will be swept on allocation WARNING: final heap size is too large, reduced to 900 Mb java heap initial size 64 Mb, maximum size 900 Mb (3840h), addresses range 2 002 - 5842 java.lang.OutOfMemoryError no stack trace available Iñigo, the log above doesn't have any collection messages, thus no collection had taken place, and the OutOfMemoryError is most likely caused by some other reason -- not the java heap shortage. I have just grepped DRLVM and found about 25 places where OOM is thrown explicitly in the VM. Applying following patch and running with '-verbose:oom -verbose:gc*' may shed some light on the reason of the problem. -- 8 -- diff --git vm/vmcore/src/class_support/Class_File_Loader.cpp vm/vmcore/src/class_support/Class_File_Loader.cpp index 0ec087f..259cc87 100644 --- vm/vmcore/src/class_support/Class_File_Loader.cpp +++ vm/vmcore/src/class_support/Class_File_Loader.cpp @@ -518,6 +518,7 @@ bool Field::parse(Class *clss, Const_Poo //std::stringstream ss; //ss clss-name-bytes : could not create type descriptor for field get_name(); //jthrowable exn = exn_create(java/lang/OutOfMemoryError, ss.str().c_str()); +INFO2(oom, out of memory when creating type desc); exn_raise_only(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return false; } diff --git vm/vmcore/src/class_support/classloader.cpp vm/vmcore/src/class_support/classloader.cpp index ea4e231..12e9ea1 100644 --- vm/vmcore/src/class_support/classloader.cpp +++ vm/vmcore/src/class_support/classloader.cpp @@ -1139,8 +1139,7 @@ Class* ClassLoader::AllocateAndReportIns if(new_java_lang_Class == NULL) { tmn_suspend_enable(); -// couldn't allocate java.lang.Class instance for this class -// ppervov: TODO: throw OutOfMemoryError +INFO2(oom, couldn't allocate java.lang.Class instance for this class); exn_raise_only( VM_Global_State::loader_env-java_lang_OutOfMemoryError); return NULL; diff --git vm/vmcore/src/exception/exceptions.cpp vm/vmcore/src/exception/exceptions.cpp index f37a0af..996d9c4 100644 --- vm/vmcore/src/exception/exceptions.cpp +++ vm/vmcore/src/exception/exceptions.cpp @@ -153,6 +153,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -180,6 +182,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -216,6 +220,8 @@ static jthrowable create_exception(const if (!exc_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } @@ -230,6 +236,8 @@ static jthrowable create_exception(const if (!arg_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } diff --git vm/vmcore/src/jit/jit_runtime_support.cpp vm/vmcore/src/jit/jit_runtime_support.cpp index de30891..88d547c 100644 --- vm/vmcore/src/jit/jit_runtime_support.cpp +++ vm/vmcore/src/jit/jit_runtime_support.cpp @@ -1834,6 +1834,7 @@ void *vm_malloc_with_thread_pointer( assert(!tmn_is_suspend_enabled()); void *result = gc_alloc(size,ah,tp); if (!result) { +INFO2(oom, out of gc heap memory); exn_throw(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return 0; // whether this return is reached or not is solved via is_unwindable state } @@ -1863,6 +1864,7 @@ #endif //VM_STATS gc_alloc(c-instance_data_size, c-allocation_handle, vm_get_gc_thread_local()); if (!o) { +INFO2(oom, out of gc heap memory); exn_throw( VM_Global_State::loader_env-java_lang_OutOfMemoryError); //tmn_suspend_enable(); @@ -1887,6
Re: [classlib][luni] Enable tests.api.java.net.DatagramSocketTest?
Andrew Zhang wrote: Hi folks, After applying Harmony-1024, tests.api.java.net.DatagramSocketTest passes against Harmony on my machine. Before enabling it, I'd like to hear more feedbacks from community. Would you please provide your test result on running DatagramSocketTest against Harmony? Thank you very much in advance! Did you mean HARMONY-1024? that's a JNDI issue. Regards, Tim -- Tim Ellison ([EMAIL PROTECTED]) IBM Java technology centre, UK. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [build-test-infra] Build Test Infrastructure
Vladimir, I was trying a buildtest module from svn repository. You wrote, When I tried to run it for the first time I saw problems with get and svn commands - they did not work in my environment due to: - no proxy settings for get and exec svn command. - some problems with my certificate for apache site. Is there any progress with making get command work? I tried to make it work. 1. I succeed to make get work through proxy by changing cc/config.xml (= config/config-full.xml) in a following way: schedule interval=300 ant antWorkingDir=projects/classlib/trunk target=fetch-depends jvmarg arg=-Dhttp.proxyHost=***.com/ jvmarg arg=-Dhttp.proxyPort=***/ /ant /schedule 2. Setting CC_OPTS (like ANT_OPTS) doesn't help me to rewrite the configuration file in a following way. schedule interval=300 ant antWorkingDir=projects/classlib/trunk target=fetch-depends jvmarg arg=-Dhttp.proxyHost=${http.proxyHost}/ jvmarg arg=-Dhttp.proxyPort=${http.proxyPort}/ /ant /schedule So I've created config/cc.properties and used ?xml version=1.0 encoding=UTF-8? cruisecontrol +property file=cc.properties/ Using this approach I managed to make classlib-deps and drlvm-deps. Do you think this is a correct direction to develop proxy support? BTW, why the config file is called config-full.xml? I prefer to call it cc-config.xml. With best regards, Alexei Fedotov, Intel Middleware Products Division -Original Message- From: Vladimir Ivanov [mailto:[EMAIL PROTECTED] Sent: Thursday, July 27, 2006 3:56 PM To: harmony-dev@incubator.apache.org; [EMAIL PROTECTED] Subject: Re: [build-test-infra] Build Test Infrastructure On 7/26/06, Geir Magnusson Jr [EMAIL PROTECTED] wrote: That's what the buildtest subproject is for. Have you looked at it? Yes. When I tried to run it for the first time I saw problems with get and svn commands - they did not work in my environment due to: - no proxy settings for get and exec svn command. - some problems with my certificate for apache site. I propose to do the following: - specify in README.txt that if you work via proxy, then, specify in property file values for proxy host/port and checks proxy settings into your SVN configuration files. - specify in README.txt that the certificate to work with apache site should be accepted. Does it make sense? Issue 995 was created to support proxy settings for the 'get' target. 4. Full testing - the whole set of Harmony tests are run on regular builds, results are published. Goal: to see what happened with Harmony quality on the whole set of automated tests, see new bugs, see quality of Harmony runtimes. Users should be able to do this kind of testing on their specific platforms and publish results on Harmony web site. This script (prototype) I implemented, see issue 984. I thought that the classlib tests are run as well w/ the CC script right now, but will check. Yes, but I hope in the future we will have more test suites (functional, stress etc). Will we run all of them in code integrity testing? - I suppose no, once we see that running all tests takes more then hour. Thanks, Vladimir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [testing] trying to run freemind with harmony
well, yeah. clearly it's DRLVM geir On Aug 17, 2006, at 11:34 AM, Tim Ellison wrote: FYI : cannot reproduce on the classlib r432241 running on IBM VME Windows XP. Freemind seems to work fine there[1]. [1] http://people.apache.org/~tellison/Harmony-1209.jpg Regards, Tim Alexey Petrenko wrote: Salikh, as far as I understood he runs a snapshot... SY, Alexey 2006/8/17, Salikh Zakirov [EMAIL PROTECTED]: Iñigo wrote: C:\Archivos de programa\FreeMind\libjava -Xmx1g -verbose:gc* -jar freemind.jar GC v4 M1-39 (2006-03-28) GC will incrementally slide compact at each GC, using algorithm = 2 Chunks will be swept on allocation WARNING: final heap size is too large, reduced to 900 Mb java heap initial size 64 Mb, maximum size 900 Mb (3840h), addresses range 2 002 - 5842 java.lang.OutOfMemoryError no stack trace available Iñigo, the log above doesn't have any collection messages, thus no collection had taken place, and the OutOfMemoryError is most likely caused by some other reason -- not the java heap shortage. I have just grepped DRLVM and found about 25 places where OOM is thrown explicitly in the VM. Applying following patch and running with '-verbose:oom - verbose:gc*' may shed some light on the reason of the problem. -- 8 -- diff --git vm/vmcore/src/class_support/Class_File_Loader.cpp vm/vmcore/src/class_support/Class_File_Loader.cpp index 0ec087f..259cc87 100644 --- vm/vmcore/src/class_support/Class_File_Loader.cpp +++ vm/vmcore/src/class_support/Class_File_Loader.cpp @@ -518,6 +518,7 @@ bool Field::parse(Class *clss, Const_Poo //std::stringstream ss; //ss clss-name-bytes : could not create type descriptor for field get_name(); //jthrowable exn = exn_create(java/lang/OutOfMemoryError, ss.str().c_str()); +INFO2(oom, out of memory when creating type desc); exn_raise_only(VM_Global_State::loader_env- java_lang_OutOfMemoryError); return false; } diff --git vm/vmcore/src/class_support/classloader.cpp vm/vmcore/src/class_support/classloader.cpp index ea4e231..12e9ea1 100644 --- vm/vmcore/src/class_support/classloader.cpp +++ vm/vmcore/src/class_support/classloader.cpp @@ -1139,8 +1139,7 @@ Class* ClassLoader::AllocateAndReportIns if(new_java_lang_Class == NULL) { tmn_suspend_enable(); -// couldn't allocate java.lang.Class instance for this class -// ppervov: TODO: throw OutOfMemoryError +INFO2(oom, couldn't allocate java.lang.Class instance for this class); exn_raise_only( VM_Global_State::loader_env- java_lang_OutOfMemoryError); return NULL; diff --git vm/vmcore/src/exception/exceptions.cpp vm/vmcore/src/exception/exceptions.cpp index f37a0af..996d9c4 100644 --- vm/vmcore/src/exception/exceptions.cpp +++ vm/vmcore/src/exception/exceptions.cpp @@ -153,6 +153,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env- java_lang_OutOfMemoryError; } @@ -180,6 +182,8 @@ static jthrowable create_exception(const if (!e) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env- java_lang_OutOfMemoryError; } @@ -216,6 +220,8 @@ static jthrowable create_exception(const if (!exc_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env- java_lang_OutOfMemoryError; } @@ -230,6 +236,8 @@ static jthrowable create_exception(const if (!arg_obj) { tmn_suspend_enable(); +INFO2(oom, out of memory on creating exception object + exception_name); return VM_Global_State::loader_env-java_lang_OutOfMemoryError; } diff --git vm/vmcore/src/jit/jit_runtime_support.cpp vm/vmcore/src/jit/jit_runtime_support.cpp index de30891..88d547c 100644 --- vm/vmcore/src/jit/jit_runtime_support.cpp +++ vm/vmcore/src/jit/jit_runtime_support.cpp @@ -1834,6 +1834,7 @@ void *vm_malloc_with_thread_pointer( assert(!tmn_is_suspend_enabled()); void *result = gc_alloc(size,ah,tp); if (!result) { +INFO2(oom, out of gc heap memory); exn_throw(VM_Global_State::loader_env-java_lang_OutOfMemoryError); return 0; // whether this return is reached or not is solved via is_unwindable state } @@ -1863,6 +1864,7 @@ #endif //VM_STATS gc_alloc(c-instance_data_size, c-allocation_handle, vm_get_gc_thread_local()); if (!o) { +INFO2(oom, out of gc heap memory); exn_throw( VM_Global_State::loader_env- java_lang_OutOfMemoryError); //tmn_suspend_enable(); @@ -1887,6 +1889,7
Re: [classlib][tools] Announcement: JNI-style C Header File Generator contribution
Great! Thanks. This is very useful tool. SY, Alexey 2006/8/17, Dmitry M. Kononov [EMAIL PROTECTED]: Hi all, I have developed a tool to generate JNI-style headers. This tool is a replacement for javah tool from the JavaSE 1.5.0. I would like it to be included in Harmony tools sections. The archive can be found there: http://issues.apache.org/jira/browse/HARMONY-1217 The archive contains the source files of the tool, an ant task adapter, samples, building scripts and several text files. One of the text files is README, which explains in detail how the tool can be built and how you can use it as a standalone application. All the code is pure Java. There is an integration patch which integrates the ijh tool into Harmony build system. The patch is attached to the HARMONY-1217 JIRA. Please don't hesitate to contact me for more details. Thanks a lot. -- Dmitry M. Kononov Intel Managed Runtime Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Alexey A. Petrenko Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
OT: JFontChooser
Hi! Have a look at http://common.l2fprod.com/ https://l2fprod.dev.java.net/ https://l2fprod-common.dev.java.net/ there existing a JFontChooser https://l2fprod-common.dev.java.net/images/FontChooser.jpg under the Apache License. :-) And at http://jfontchooser.sourceforge.net/ is one under the BSD license. (just looking for extensions for JDK 7, if Sun makes its JDK OpenSource) :-) Greatings theuserbl - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OT: JFontChooser
I'm sure they'll make JDK7 open source... geir On Aug 17, 2006, at 2:35 PM, theUser BL wrote: Hi! Have a look at http://common.l2fprod.com/ https://l2fprod.dev.java.net/ https://l2fprod-common.dev.java.net/ there existing a JFontChooser https://l2fprod-common.dev.java.net/images/FontChooser.jpg under the Apache License. :-) And at http://jfontchooser.sourceforge.net/ is one under the BSD license. (just looking for extensions for JDK 7, if Sun makes its JDK OpenSource) :-) Greatings theuserbl - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [app-bug] mx4j
Not yet. I think that making minimal test cases from JUnit tests is simpler than making ones from an application though. I'm going to get down to it soon - I just wanted to discuss it before acting to make sure that nobody objects such approach. On 8/17/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: that's a great idea. Have you isolated any of the errors? geir On Aug 17, 2006, at 10:40 AM, Anton Luht wrote: Hello, Now some people in this list are trying to make ActiveMQ run on Harmony. ActiveMQ is based on MX4J [1] . MX4J 3.0.1 has 812 unit tests. Results of those tests: BEA WebLogic JRockit(TM) 1.4.2_04 JVM : 810 tests, 1 failure, 1 error (99.75%) Harmony DRLVM version 11.2.0 766 tests, 2 failures, 110 errors (85.38%) Maybe it's worth to consider MX4j JUnit tests first and then try to fix ActiveMQ? MX4J is used not only in ActiveMQ but in other apps like Tomcat as well. [1] http://mx4j.sourceforge.net -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [app-bug] mx4j
On Aug 17, 2006, at 3:28 PM, Anton Luht wrote: Not yet. I think that making minimal test cases from JUnit tests is simpler than making ones from an application though. I'm going to get down to it soon - I just wanted to discuss it before acting to make sure that nobody objects such approach. Oh - when I've tallked about app oriented testing, I didn't mean we have to slap the app into a test framework, but rather that we go out and find 'real-world' software (which I lazily labeled applications) to help flush out bugs. So, yes, this is really great if you've used the mx4j test suite to find Harmony bugs, and if you turn them into tests for us. Go! geir On 8/17/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: that's a great idea. Have you isolated any of the errors? geir On Aug 17, 2006, at 10:40 AM, Anton Luht wrote: Hello, Now some people in this list are trying to make ActiveMQ run on Harmony. ActiveMQ is based on MX4J [1] . MX4J 3.0.1 has 812 unit tests. Results of those tests: BEA WebLogic JRockit(TM) 1.4.2_04 JVM : 810 tests, 1 failure, 1 error (99.75%) Harmony DRLVM version 11.2.0 766 tests, 2 failures, 110 errors (85.38%) Maybe it's worth to consider MX4j JUnit tests first and then try to fix ActiveMQ? MX4J is used not only in ActiveMQ but in other apps like Tomcat as well. [1] http://mx4j.sourceforge.net -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[vote] HARMONY-1044 : Contribution of RMI Registry Service
All is in order and in SVN for Harmony-1044 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[vote] HARMONY-1105 : Accept Java Management Console
All is in order and in SVN for Harmony-1105 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[vote] HARMONY-1125 : thread manager patch for DRLVM
All is in order and in SVN for Harmony-1125 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [app-bug] mx4j
2006/8/17, Geir Magnusson Jr. [EMAIL PROTECTED]: On Aug 17, 2006, at 3:28 PM, Anton Luht wrote: Not yet. I think that making minimal test cases from JUnit tests is simpler than making ones from an application though. I'm going to get down to it soon - I just wanted to discuss it before acting to make sure that nobody objects such approach. Oh - when I've tallked about app oriented testing, I didn't mean we have to slap the app into a test framework, But if the application fails in some way we need to minimize test case somehow... I think that Anton is talking about this situation. but rather that we go out and find 'real-world' software (which I lazily labeled applications) to help flush out bugs. So, yes, this is really great if you've used the mx4j test suite to find Harmony bugs, and if you turn them into tests for us. Go! geir On 8/17/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: that's a great idea. Have you isolated any of the errors? geir On Aug 17, 2006, at 10:40 AM, Anton Luht wrote: Hello, Now some people in this list are trying to make ActiveMQ run on Harmony. ActiveMQ is based on MX4J [1] . MX4J 3.0.1 has 812 unit tests. Results of those tests: BEA WebLogic JRockit(TM) 1.4.2_04 JVM : 810 tests, 1 failure, 1 error (99.75%) Harmony DRLVM version 11.2.0 766 tests, 2 failures, 110 errors (85.38%) Maybe it's worth to consider MX4j JUnit tests first and then try to fix ActiveMQ? MX4J is used not only in ActiveMQ but in other apps like Tomcat as well. [1] http://mx4j.sourceforge.net -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Alexey A. Petrenko Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [vote] HARMONY-1044 : Contribution of RMI Registry Service
+1 Geir Magnusson Jr. wrote: All is in order and in SVN for Harmony-1044 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [vote] HARMONY-1105 : Accept Java Management Console
+1 Geir Magnusson Jr. wrote: All is in order and in SVN for Harmony-1105 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [vote] HARMONY-1125 : thread manager patch for DRLVM
+1 Geir Magnusson Jr. wrote: All is in order and in SVN for Harmony-1125 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [app-bug] mx4j
Alexey Petrenko wrote: 2006/8/17, Geir Magnusson Jr. [EMAIL PROTECTED]: On Aug 17, 2006, at 3:28 PM, Anton Luht wrote: Not yet. I think that making minimal test cases from JUnit tests is simpler than making ones from an application though. I'm going to get down to it soon - I just wanted to discuss it before acting to make sure that nobody objects such approach. Oh - when I've tallked about app oriented testing, I didn't mean we have to slap the app into a test framework, But if the application fails in some way we need to minimize test case somehow... I think that Anton is talking about this situation. And I'm trying to agree! :) but rather that we go out and find 'real-world' software (which I lazily labeled applications) to help flush out bugs. So, yes, this is really great if you've used the mx4j test suite to find Harmony bugs, and if you turn them into tests for us. Go! geir On 8/17/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: that's a great idea. Have you isolated any of the errors? geir On Aug 17, 2006, at 10:40 AM, Anton Luht wrote: Hello, Now some people in this list are trying to make ActiveMQ run on Harmony. ActiveMQ is based on MX4J [1] . MX4J 3.0.1 has 812 unit tests. Results of those tests: BEA WebLogic JRockit(TM) 1.4.2_04 JVM : 810 tests, 1 failure, 1 error (99.75%) Harmony DRLVM version 11.2.0 766 tests, 2 failures, 110 errors (85.38%) Maybe it's worth to consider MX4j JUnit tests first and then try to fix ActiveMQ? MX4J is used not only in ActiveMQ but in other apps like Tomcat as well. [1] http://mx4j.sourceforge.net -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm][vm, mmtk] adding thread-local storage functionality to vmmagic
On 8/17/06, Mikhail Fursov [EMAIL PROTECTED] wrote: Weldon, I agree that we need TLS access in vmmagic, but I thought about slightly different and more primitive implementation. Writing something like this: SegmentRegisterFS segFs = new SegmentRegisterFS(); or this: SegmentRegisterGS segGs = new SegmentRegisterGS(); we add the knowledge of the platform to Java code. (+ 'new' operation is not used (constructor is private) for the most of the MMTk types) My proposal is to write something like this: Address addr = TLS.getAddressByOffset(offset_in_TLS) Good idea! and to forget about platform related problems. Leave it to JIT or VM to decide how to access to TLS on particular platform. Egor, Why do you think we need to support platform specific issues in helpers? Is there any example that shows that we can't write a helper without reference platform details? I think we should avoid #ifdef's in Java as much as we can. -- Mikhail Fursov -- Weldon Washburn Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [DRLVM][GC] Goals for 2006/2007
On 8/17/06, Morozova, Nadezhda [EMAIL PROTECTED] wrote: All, I found some GC requirements description in the OPEN spec [1], section 5.3.5 and something inside 6.*. How does those suggestions relate to what is being discussed? Actually section 5.3.5 describes an interface between GC and JVM. What is being discussed on this thread is the design of the GC itself. Do you think we can use that doc as the basis and maybe track major decisions there? Mail threads tend to drop, and are not always a convenient means of finding the final decision for an issue :) I rather hold a conversation using email. A spec is not the right tool for the discussion. When we have agreement on what we are building and have some code working, we can think about moving chunks of the dialog in the spec. Its still too early. [1] http://issues.apache.org/jira/browse/HARMONY-459 Best regards, Nadya Morozova -Original Message- From: Weldon Washburn [mailto:[EMAIL PROTECTED] Sent: Monday, August 14, 2006 9:23 PM To: harmony-dev@incubator.apache.org Subject: [DRLVM][GC] Goals for 2006/2007 All, There is rough consensus that the immediate goal for Harmony JVM is to reliably run simple commercial workloads with acceptable performance. In regards to a garbage collector for a Harmony JVM in 2006 there are some data points worth noting. 1) A quick survey shows most basic commercial JVMs implement a generational collector. 2) While the existing drlvm garbage collector, gcv4, implements some interesting advanced concepts, it is not currently a generational collector. 3) The MMTk port to drlvm is not yet finished. Even assuming MMTk's generational configuration is appropriate, it is still too early to put this garbage collector on the roadmap for a 2006 Harmony JVM. It might be worth revisiting in 2007. But it's too far away to debate at this time. Given the above data points, the following is a first stab at requirements for Harmony GCV5. The intention is to set down some basic parameters. 1) Generational Collector with mark/compacting mature object space 2) Parallel collection, no concurrent collection (Editor's note: parallel collection is a specific term meaning that during gc collection, most CPUs in an SMP box are busy collecting garbage. This is fairly straight forward to build. Concurrent collection is a specific term meaning that Java application threads make forward progress while special GC threads are simultaneously collecting. This is hard to build) 3) Parallel allocation. (Again, this is very straight forward. Basically each Java thread gets private chunks of memory to allocate out of.) 4) Write barriers. A generational collector benefits from write barriers that detect whenever a pointer to a younger object is written inside an older object. 5) For expediency, GCV5 should try to plug into the existing JVM/GC interface. However, if this interface is broken, we need to jump at the opportunity to make it right. 6) The goal is to make this code readable/modifiable/debuggable by non-GC engineers. The code should read as nothing more than a basic generational GC. No experimental code should ever be checked into Harmony GCV5 source base. 7) Performance goals should be discussed after the initial implementation is committed. 8) Object pinning is not required at this time. However, be prepared that at a later date we might discover pinning is needed to get acceptable performance from native methods that use JNI. 9) Supports Java 1.5. This means GCV5 must implement functionality such as weak/soft/phantom references and finalization. 10) Though this work will be an investment, it is ultimately necessary for Harmony to meet medium term goals, eg., being maintainable, passing TcK successfully, etc. and be a platform for future, more advanced work, which is a requirement that v4 cannot meet. Thoughts on the above? -- Weldon Washburn Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Weldon Washburn Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [vote] HARMONY-1044 : Contribution of RMI Registry Service
Geir Magnusson Jr wrote: +1 +1 Geir Magnusson Jr. wrote: All is in order and in SVN for Harmony-1044 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Stefano. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [vote] HARMONY-1105 : Accept Java Management Console
Geir Magnusson Jr wrote: +1 +1 Geir Magnusson Jr. wrote: All is in order and in SVN for Harmony-1105 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Stefano. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [vote] HARMONY-1125 : thread manager patch for DRLVM
Geir Magnusson Jr wrote: +1 +0, I don't know enough to understand if this is good or bad don't take this as diplomatic negative vote, I just don't like to vote on things I don't know enough about. Geir Magnusson Jr. wrote: All is in order and in SVN for Harmony-1125 wrt BCC and ACQ. Please vote to accept or reject this codebase into the Apache Harmony class library : [ ] + 1 Accept [ ] -1 Reject (provide reason below) Lets let this run a minimum of 3 days unless a) someone states they need more time or b) we get all committer votes before then. geir - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Stefano. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [classlib][luni] Enable tests.api.java.net.DatagramSocketTest?
Tim Ellison wrote: Andrew Zhang wrote: Hi folks, After applying Harmony-1024, tests.api.java.net.DatagramSocketTest passes against Harmony on my machine. Before enabling it, I'd like to hear more feedbacks from community. Would you please provide your test result on running DatagramSocketTest against Harmony? Thank you very much in advance! Did you mean HARMONY-1024? that's a JNDI issue. Hello Tim, I think it should be HARMONY-1204 :-) Richard Regards, Tim -- Richard Liang China Software Development Lab, IBM
Re: [classlib][instrument]Using Support_Exec framework(was Re: [classlib][Instrument] Documents for non-unit-tests)
Hi, all: I wonder if we need to get the exception from the exec framework. As an exec result, we need only get whether it succeeds or not. Besides, I do not think it is so reliable to parse error message to get exception. We can design sophisticated testcase to deduce whether the expected exception has been thrown out from the status of exec. For example, during VM init there are some errors that can be caught by some java class. If we add a null object as Transformer, the VM will go down by nullpointerexception. But it can be caught be its caller: public static void premain(String agentArgs, Instrumentation inst) { try { inst.addTransformer(null); //should throw NullPointerException System.exit(1); } catch(NullPointerException e) { //expected } } From the exec result, if there is no error, that is return value is 0, we can deduce that the expected exception is thrown. As for those fault errors raised from VM init, if they cannot be caught by any java class, they are just error messages that can be got from console. I do not think some application will depend on such message. Furthermore, some of these messages cannot be classified to any exception type: some are errors about runtime environment, some are related to VM. Actually, in reality, some error events are related to Harmony's implemenation. For example, in our instrumentation impl class, there are two methods executePremain and transform, which are called duirng VM and might cause VM to die if these methods cannot be invoked. In such circumstances, we cannot behave just like RI. So in my opinion, if the exception can be caught by any java class, we try to design testcase to verify it; or else, they are just error messages that are related to implementation. On 8/17/06, Anton Luht [EMAIL PROTECTED] wrote: Jimmy, Ah, we are trying to catch the exact exception name, not its message. I agree parsing the message is a bad idea, but find an exact exception name in the output is still stable, am I right? Yes, it's stable. In fact, I have no idea to catch an exception in exec, it surely contains no such function, right? No, it doesn't. -- Regards, Anton Luht, Intel Middleware Products Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Leo Li China Software Development Lab, IBM
Re: [classlib][luni] Enable tests.api.java.net.DatagramSocketTest?
Tim Ellison wrote: Andrew Zhang wrote: Hi folks, After applying Harmony-1024, tests.api.java.net.DatagramSocketTest passes against Harmony on my machine. Before enabling it, I'd like to hear more feedbacks from community. Would you please provide your test result on running DatagramSocketTest against Harmony? Thank you very much in advance! Did you mean HARMONY-1024? that's a JNDI issue. I guess he meant HARMONY-1204:). Regards, Tim -- Paulex Yang China Software Development Lab IBM - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [continuum] BUILD FAILURE: Classlib/linux.ia32 Build/Test
build of drlvm failed today on my pc with message: [cc] compile.cpp [cc] C:\harmony\drlvm1.5\vm\vmcore\src\jit\compile.cpp(750) : error C3861: 'get_default_stack_size': identifier not found, even with argument-dependent lookup Could anybody reproduce it or it is my local failure? Thanks, Vladimir On 8/17/06, Mark Hindess [EMAIL PROTECTED] wrote: On 16 August 2006 at 8:50, Stefano Mazzocchi [EMAIL PROTECTED] wrote: Geir Magnusson Jr. wrote: On Aug 16, 2006, at 2:30 AM, Paulex Yang wrote: Oops...It's my fault, there is a error in the makefile for Linux, fixed at revision r431842. Thank you to point out this, I thought the linux build error is caused by network problem like windows I thought that it was clear - BUILD FAILURE versus BUILD ERROR Didn't even read the subject line, honestly. My suggestion would be to send build error messages only to those who can do something about it instead of spamming all of us. I should point out that continuum is configured to send only 'Success' and 'Failure' messages to the commit list. However this distinction seems to be ignored and it sends 'Errors' too. I will stop the windows build messages (all of them Success, Failures and Errors) until the banned proxies and other issues can be fixed. -Mark. - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [drlvm][vm, mmtk] adding thread-local storage functionality to vmmagic
On the 0x1C8 day of Apache Harmony Mikhail Fursov wrote: Egor, Why do you think we need to support platform specific issues in helpers? Is there any example that shows that we can't write a helper without reference platform details? It depends on how much of a helper code we want to write in Java. We can always say: hey, this is platform-dependent, let it be a whole vmmagic and let JIT take care. If it is a large piece of code, it is not good to code it down in JIT IR(s) and is better written in Java. I think, we all agree here. As a 1 more example ... maybe some day we decide to inline fast-path of spinlocks. Which is a) a helper b) is platfrom-dependent. Implementing fast-path-spins in JIT IR is not a lot to do. But specifying the interface and updating all components (JITs) to handle that way of interaction on all platforms .. may make a burden. Coding spin-locking in Java would make it difficult to write optimal (think of explicitly parallel architectures...) Both approaches seem to be quite complicated here. But all-in-JIT approach seems to have more chances to be faster here. Thus, it would be good to have both: * vmmagic (inlined by JITs) * helpers (partially) written in Java (using vmmagic) and decide how fine-grained those magics should be depending on specific situation. I think we should avoid #ifdef's in Java as much as we can. Yes, my vision is the same. At least, until we come accross a large piece of system-dependent code that is good to be inlined by JIT. I think, it is not likely to happen, large pieces of code tend to work longer :) and inlining them does not give so much benefit.. -- Egor Pasko, Intel Managed Runtime Division - Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]