[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Java Problems



Hi.

I don't have a 2.0.7 to test on at the moment.  I will try again when I do.

I got rid of the object allocation inside the loop. And I retested. I don't hit the problem with int's on the call stack. I do hit the problem with floats and doubles.

The problem is quite easily reproducible (for me). Is someone there with knowledge of register/stack handle able to take a look with gdb or which ever tool you use?

Regards, Peter
http://rimuhosting.com - Xen VPS Hosting


public class FillTest {
    public static void main(String[] args) {
        System.out.println("Starting");
        foo f = new foo();
        for (int i = 0;i<100000000; i++) {
            f.iter = i;
            f.test();
        }
    }
    public static class foo {
        int iter;
        float f = 0.75f;
        int i=1;
        double d = 0.75d;
        void test() {
            testI(i);
            testD(d);
            test(f);
        }
        void test(float f1) {
            if(f1!=f) {
throw new RuntimeException("float value mismatch: " + f1 + " vs " + f + " at iteration " + iter);
            }
        }
        void testI(int fi) {
            if(fi!=i) {
throw new RuntimeException("int value mismatch: " + fi + " vs " + i + " at iteration " + iter);
            }
        }
        void testD(double fd) {
            if(fd!=d) {
throw new RuntimeException("double value mismatch: " + fd + " vs " + d + " at iteration " + iter);
            }
        }
    }
}


Starting
Exception in thread "main" java.lang.RuntimeException: double value mismatch: 0. 75 vs 0.75 at iteration 3981054
        at FillTest$foo.testD(FillTest.java:33)
        at FillTest$foo.test(FillTest.java:18)
        at FillTest.main(FillTest.java:8)
Starting
Starting
Exception in thread "main" java.lang.RuntimeException: double value mismatch: Na N vs 0.75 at iteration 33238270
        at FillTest$foo.testD(FillTest.java:33)
        at FillTest$foo.test(FillTest.java:18)
        at FillTest.main(FillTest.java:8)
Starting
Exception in thread "main" java.lang.RuntimeException: double value mismatch: 0.75 vs 0.75 at iteration 43731162
        at FillTest$foo.testD(FillTest.java:33)
        at FillTest$foo.test(FillTest.java:18)
        at FillTest.main(FillTest.java:8)
Starting
Exception in thread "main" java.lang.RuntimeException: double value mismatch: 0.75 vs 0.75 at iteration 26104068
        at FillTest$foo.testD(FillTest.java:33)
        at FillTest$foo.test(FillTest.java:18)
        at FillTest.main(FillTest.java:8)
Starting
Exception in thread "main" java.lang.RuntimeException: double value mismatch: 0.75 vs 0.75 at iteration 350370
        at FillTest$foo.testD(FillTest.java:33)
        at FillTest$foo.test(FillTest.java:18)
        at FillTest.main(FillTest.java:8)
Starting


Reuben Kabel wrote:



Does the following code exhibit the same problem? I've modified it so it
doesn't try to allocate many foo instances within the loop.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.