Return-Path: X-Original-To: apmail-river-dev-archive@www.apache.org Delivered-To: apmail-river-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5154FF3C6 for ; Mon, 1 Apr 2013 20:32:18 +0000 (UTC) Received: (qmail 79523 invoked by uid 500); 1 Apr 2013 20:32:18 -0000 Delivered-To: apmail-river-dev-archive@river.apache.org Received: (qmail 79505 invoked by uid 500); 1 Apr 2013 20:32:18 -0000 Mailing-List: contact dev-help@river.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@river.apache.org Delivered-To: mailing list dev@river.apache.org Received: (qmail 79496 invoked by uid 99); 1 Apr 2013 20:32:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Apr 2013 20:32:18 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of dan.creswell@gmail.com designates 209.85.214.175 as permitted sender) Received: from [209.85.214.175] (HELO mail-ob0-f175.google.com) (209.85.214.175) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Apr 2013 20:32:09 +0000 Received: by mail-ob0-f175.google.com with SMTP id va7so2187132obc.6 for ; Mon, 01 Apr 2013 13:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=Vo7XIyOnrH39K5Zof+7rveEwTf4VT8N+NhBVuiJySQU=; b=fdTFkaca/zolCplAU548V05mUflcZK2UhPylR0zoWsIVWYAaoVAyTAQpsJXWVDJlxF /X0BWPO/+qwalx50KOVFAqN3kzmSE9UShtMc/uosLYOuHN4RbscujBnzZQJ2FNHAmViC sHaOJgRjJ76spUi3doVDBCikqrOnbfCxtCzcDt8xRc/fK/vpIGrb0srlo+n696ANjZUi 1CGuyUNiuGdWe31dSFv8Ui66xt1gcpfuVoprHpXlLEsNrS/pp1yVb/g3LEsRzETO+YHo 0TfWniS2c4c4rTt85PpTc5IlPWBnTReqo4o3RqoZGflAtydYXxzJyqTniVVKDv16wtsM M1xQ== MIME-Version: 1.0 X-Received: by 10.60.137.194 with SMTP id qk2mr4469697oeb.138.1364848308666; Mon, 01 Apr 2013 13:31:48 -0700 (PDT) Received: by 10.76.122.161 with HTTP; Mon, 1 Apr 2013 13:31:48 -0700 (PDT) In-Reply-To: <5159E7FA.5010509@zeus.net.au> References: <51595E0D.3040006@zeus.net.au> <1364818250.1968.5.camel@Nokia-N900-51-1> <5159E7FA.5010509@zeus.net.au> Date: Mon, 1 Apr 2013 21:31:48 +0100 Message-ID: Subject: Re: test failure repeatability From: Dan Creswell To: dev@river.apache.org Content-Type: multipart/alternative; boundary=047d7b33c6989c486704d95282b6 X-Virus-Checked: Checked by ClamAV on apache.org --047d7b33c6989c486704d95282b6 Content-Type: text/plain; charset=ISO-8859-1 So... On 1 April 2013 21:03, Peter Firmstone wrote: > I understand, better the devil you know argument, if someone wants to make > a 2.2.1 release, I'm certainly not against it. > > Fair enough. > It won't take me long to track down & fix the concurrency bug, if that's > the cause. > I tend to agree with Greg's assessment that the tests are contrived. The > tests make a poor attempt at determining whether the leased resource is > still available by checking within a time window around lease expiry, it's > subject to so many assumptions that I can't see why that determination is > even made. > Well they seem contrived but given the size of the lease times we're dealing with and the room between them for clean expiry, I'm a little concerned. No question, they aren't the best tests, crude for sure, but they don't look broke as such. I'll keep looking... > I don't think we can guarantee a lease will expire during a specific time > window, most programmers will hopefully renew a lease long before it's due > to expire. Until we make that assessment, I think we'll struggle with the > tests. > > I think the point is a lease should expire exactly to the millisecond. What you can't guarantee is when an event gets issued against the leased object, before of after. Nevertheless with big enough windows before expiry, it should work so... > Remember were now dealing with concurrency over network connections. The > so called failures may just be due to timing. > > The network is asynchronous. > > Yep, preaching to the converted. > The old code appears to slow down network connections enough to make them > less asynchronous, heck even really bad concurrency race conditions and > obvious bugs didn't manifest during testing. > > Mmmm, see my gut says that if the network is "faster" these tests should be less likely to fail as it's more likely events are delivered in the time-frames required, not less. > Example of how old code makes network less asynchronous: > > 1. Thread runs, opens network connection, security check is performed. > 2. Second thread runs, opens network connection, security check is > performed, first thread is synchronized on a DNS check, the second > thread waits. > 3. Second thread will complete after first. > > New code: > > 1. Thread runs, opens network connection, security check is performed > and returns without contention. > 2. Second thread runs opens network connection, security check is > performed and returns without contention. > 3. Second thread by chance finishes communication prior to first. > > If we look at ClassLoader, the story is similar. > > Regards, > > Peter. > > Dan Creswell wrote: > >> I feel Bryan has a point. >> >> Putting out a release with just the Levels fix is better than the current >> release which won't run at all under various circumstances. i.e. It is a >> small step forward and in no way a backward step. >> >> Such a release mightn't be as much of a step forward as one also >> featuring the concurrency work *but* the concurrency work is also seemingly >> amplifying the occurrence of preexisting concurrency problems. It can be >> said then to perform both better and worse than previous releases. >> >> In essence, the small fix release is a known quantity, the new one less >> so. We maybe ought to give users the choice as to how much unknown'ness >> they wish to indulge in. >> >> >> >> >> On 1 April 2013 13:10, Peter > >> wrote: >> >> The big problem is there are less concurrency bugs in the present >> branch and there are definitely more in the previous release, they >> just haven't presented in test in previous releases, although they >> have in deployment. >> >> The issue appears to be with javaspaces / lease / transactions. >> >> It's also a possibility that there's just a timing issue with the >> tests. >> >> I'd like to fix the tests before releasing, it's unfortunate the >> last fix to jeri seemed to expose these new test failures. It's a >> little like fixing rust in an old car, the more you remove, the >> more you find. >> >> What I really need is more help, I don't work on this full time it >> takes longer than a team woking on commercial software. >> >> Peter. >> ----- Original message ----- >> > I am uncomfortable with a release that has known concurrency >> problems. I >> > am also uncomfortable that the custom Levels serialization change by >> > Oracle [1] has broken the current release for new JVMs. I would >> like to >> > see a minor release which fixes that serialization problem and a >> candidate >> > release which gives people a chance to discovery concurrent >> issues without >> > risking a release that is known to be unstable. >> > >> > I'm happy to review a few of the classes with known concurrency >> problems >> > to see if I can help nail some of these bugs. Since I do not >> know the >> > river internals, I would only be able to spot concurrency >> problems that >> > exist within a class. I am not in a good position to comment on >> > concurrency problems that might arise through the interactions among >> > classes. >> > >> > Bryan >> > >> > [1] https://issues.apache.org/**jira/browse/RIVER-416 >> > >> > On 4/1/13 6:14 AM, "Peter Firmstone" > > wrote: >> > >> > > The attachments will be removed from the list, so I've cc'd >> you, anyone >> > > who's interested, let me know I can forward the attachments. >> They can >> > > be opened with jvisualvm. >> > > >> > > The profiling isn't perfect, the test runs for about 8.5 >> minutes, so >> > > hotspot should have kicked in relatively early in both test runs. >> > > >> > > I guess a significant problem is; the more I remove performance >> > > impedances, like unnecessary DNS calls, the faster >> multithreading and >> > > context switching gets. >> > > >> > > Not only did the old policy providers create contention, but >> it was >> > > slower for single threaded performance (I'll have to run the >> previous >> > > release branch for comparison when I get some time). >> > > >> > > The URIGrant.implies call is now down to .228 ms per >> invocation, down >> > > from 1.68 ms per invocation this week, which was already quite >> good (on >> > > old UltraSparcII hardware), during stress tests this method is >> called >> > > almost 40,000 times. >> > > >> > > In comparison the old policy provider which required a DNS >> call (every >> > > time CodeSource.implies is called, functionality now replaced by >> > > URIGrant.implies), the old policy provider also cached all >> Permission's >> > > in highly contended PermissionCollection's, which during >> network calls >> > > invoked SocketPermission.implies, possibly for every >> SocketPermission in >> > > the PermissionCollection, DNS is also consulted by >> > > SocketPermission.implies, while synchronized, ouch! >> > > >> > > URIGrant.implies is non blocking, that's right zero contention. >> > > SocketPermission.implies DNS calls can be avoided in most cases if >> > > PermissionComparator finds an exact match or wild card. >> > > >> > > This is without the CombinerSecurityManager, which improves >> security >> > > performance by a factor of 10 (SocketPermission is only >> checked once for >> > > each AccessControlContext). >> > > >> > > PreferredClassProvider no longer creates unecessary DNS calls, and >> > > neither does SecureClassLoader, URLClassLoader or >> PreferredClassLoader. >> > > >> > > So the good news is the next release will feel much faster, >> the bad news >> > > is that existing concurrency bugs that previously didn't >> appear during >> > > test runs, but likely to manifest during production are now >> occurring >> > > during testing. There's more good news, we fixed a number of >> > > concurrency bugs since the last release too, I guess I have to >> draw the >> > > line somewhere and cut a release. >> > > >> > > DNS calls haven't been completely eliminated as some are still >> > > necessary, but a multitude of unnecessary DNS calls have been >> eliminated. >> > > >> > > Regards, >> > > >> > > Peter. >> > > >> > > Peter Firmstone wrote: >> > > > They've passed more consistently in the past, they're either >> > > > concurrency bugs or network timing related, it would be nice >> to at >> > > > least determine if it's the former or latter. >> > > > >> > > > Cheers, >> > > > >> > > > Peter. >> > > > >> > > > Tom Hobbs wrote: >> > > > > Are these all new failures, i.e. were they working >> before? Or are they >> > > > > "new" failures in that the test categories have only >> recently been >> > > > > reactivated and the failures discovered? >> > > > > >> > > > > Are they a big enough blocker to stop a release? >> > > > > >> > > > > >> > > > > On Sun, Mar 31, 2013 at 11:31 PM, Peter Firmstone >> > >> >> > > > > wrote: >> > > > > >> > > > > >> > > > > > The following test fails 30 times in a run of 130 tests: >> > > > > > >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > [java] # of tests passed = >> 0 >> > > > > > [java] # of tests passed = >> 1 >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > 100 >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > Buildfile: build.xml >> > > > > > >> > > > > > qa.run-tests: >> > > > > > >> > > > > > james-brown: >> > > > > > [delete] Deleting directory /opt/src/River_Fixed/** >> > > > > > peterConcurrentPolicy/qa/soul >> > > > > > [mkdir] Created dir: /opt/src/River_Fixed/** >> > > > > > peterConcurrentPolicy/qa/soul >> > > > > > [touch] Creating >> > > > > > /opt/src/River_Fixed/****peterConcurrentPolicy/qa/soul/*** >> > > > > > *soul.201303312239034808 >> > > > > > >> > > > > > run-tests: >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] CONFIGURATION FILE: >> > > > > > [java] >> > > > > > [java] /opt/src/River_Fixed/**** >> peterConcurrentPolicy/qa/src/**** >> > > > > > com/sun/jini/test/resources/****qaHarness.prop >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] SETTING UP THE TEST LIST: >> > > > > > [java] >> > > > > > [java] Adding test: >> > > > > > com/sun/jini/test/spec/****javaspace/conformance/ >> > > > > > **snapshot/****SnapshotExpirationNotifyTest.****td >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] GENERAL HARNESS CONFIGURATION INFORMATION: >> > > > > > [java] >> > > > > > [java] Date started: >> > > > > > [java] Sun Mar 31 22:39:37 EST 2013 >> > > > > > [java] Installation directory of the JSK: >> > > > > > [java] com.sun.jini.jsk.home=/opt/**** >> src/River_Fixed/** >> > > > > > peterConcurrentPolicy >> > > > > > [java] Installation directory of the harness: >> > > > > > [java] com.sun.jini.qa.home=/opt/src/* >> ***River_Fixed/** >> > > > > > peterConcurrentPolicy/qa >> > > > > > [java] Categories being tested: >> > > > > > [java] categories=No Categories >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] ENVIRONMENT PROPERTIES: >> > > > > > [java] >> > > > > > [java] JVM information: >> > > > > > [java] Java HotSpot(TM) Server VM, >> 20.5-b03, 32 bit VM mode >> > > > > > [java] Sun Microsystems Inc. >> > > > > > [java] OS information: >> > > > > > [java] SunOS, 5.10, sparc >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] STARTING TO RUN THE TESTS >> > > > > > [java] >> > > > > > [java] >> > > > > > [java] Running >> com/sun/jini/test/spec/****javaspace/conformance/** >> > > > > > snapshot/****SnapshotExpirationNotifyTest.****td >> > > > > > [java] Time is Sun Mar 31 22:39:38 EST 2013 >> > > > > > [java] Starting test in separate process with >> command: >> > > > > > [java] /usr/jdk/jdk1.6.0_30/jre/bin/****java >> > > > > > >> > > > > > >> -Djava.security.manager=org.****apache.river.api.security.**** >> CombinerSecur >> > > > > > ityManager >> > > > > > >> > > > > > -Djava.security.policy=file:/****opt/src/River_Fixed/** >> > > > > > >> peterConcurrentPolicy/qa/****harness/policy/defaulttest.****policy >> > > > > > >> > > > > > >> -Djava.rmi.server.codebase=**htt**p://bluto:9082/qa1-** >> javaspace-**dl.jar> > > > > > ttp://bluto:9082/qa1-**javaspace-dl.jar>-cp >> > > > > > /opt/src/River_Fixed/ >> > > > > > >> > > > > > >> **peterConcurrentPolicy/qa/**lib/**jiniharness.jar:/opt/** >> src/**River_Fixed >> > > > > > /** >> > > > > > >> > > > > > >> peterConcurrentPolicy/qa/lib/****jinitests.jar:/opt/src/River_**** >> > > > > > >> > > > > > >> Fixed/peterConcurrentPolicy/****lib/jsk-platform.jar:/opt/src/** >> **River_Fix >> > > > > > ed/ >> > > > > > >> > > > > > >> **peterConcurrentPolicy/lib/**jsk-**lib.jar:/opt/src/River_**Fixed/** >> > > > > > >> > > > > > >> peterConcurrentPolicy/lib/****high-scale-lib.jar:/opt/src/**** >> River_Fixed/* >> > > > > > * >> > > > > > >> > > > > > peterConcurrentPolicy/lib/****custard-apple-1.0.2.jar -ea >> -esa -client >> > > > > > >> -Djava.ext.dirs=/usr/jdk/jdk1.****6.0_30/jre/lib/ext:/usr/jdk/**** >> > > > > > >> > > > > > >> packages/lib/ext:/opt/src/****River_Fixed/**** >> peterConcurrentPolicy/qa/lib- >> > > > > > ** >> > > > > > >> > > > > > ext:/opt/src/River_Fixed/****peterConcurrentPolicy/lib-ext >> > > > > > -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 >> > > > > > >> -Dcom.sun.jini.jsk.home=/opt/****src/River_Fixed/**** >> peterConcurrentPolicy >> > > > > > >> > > > > > >> -Dcom.sun.jini.qa.home=/opt/****src/River_Fixed/**** >> peterConcurrentPolicy/q >> > > > > > a >> > > > > > >> > > > > > -Dcom.sun.jini.qa.harness.****harnessJar=/opt/src/River_** >> > > > > > Fixed/peterConcurrentPolicy/****qa/lib/jiniharness.jar >> > > > > > -Dcom.sun.jini.qa.harness.**** >> testJar=/opt/src/River_Fixed/**** >> > > > > > peterConcurrentPolicy/qa/lib/****jinitests.jar >> > > > > > -Dcom.sun.jini.qa.harness.****runjiniserver=true >> > > > > > -Dcom.sun.jini.qa.harness.****runkitserver=true >> > > > > > -Djava.security.properties=* >> > > > > > *file:/opt/src/River_Fixed/****peterConcurrentPolicy/qa/** >> > > > > > harness/trust/dynamic-policy.****properties >> > > > > > -Dcom.sun.jini.qa.harness.****testhosts= >> > > > > > >> -Djava.util.logging.config.****file=/home/peter/logging.**** >> properties >> > > > > > >> > > > > > >> -Dcom.sun.jini.test.home=/opt/****src/River_Fixed/**** >> peterConcurrentPolicy >> > > > > > /qa >> > > > > > >> > > > > > -Dcom.sun.jini.test.port=9082 -Dcom.sun.jini.qa.harness.** >> > > > > > >> policies=file:/opt/src/River_****Fixed/peterConcurrentPolicy/**** >> > > > > > qa/src/com/sun/jini/test/****resources/jinitest.policy >> > > > > > >> -Djava.ext.dirs=/usr/jdk/jdk1.****6.0_30/jre/lib/ext:/usr/jdk/**** >> > > > > > >> > > > > > >> packages/lib/ext:/opt/src/****River_Fixed/**** >> peterConcurrentPolicy/qa/lib- >> > > > > > ** >> > > > > > >> > > > > > ext:/opt/src/River_Fixed/****peterConcurrentPolicy/lib-ext >> > > > > > com.sun.jini.qa.harness.****MasterTest >> com/sun/jini/test/spec/** >> > > > > > >> javaspace/conformance/****snapshot/****SnapshotExpirationNotifyTest.* >> ***td >> > > > > > [java] com.sun.jini.qa.harness.****TestException: >> Not all >> > > > > > listeners've >> > > > > > got expected number of events. >> > > > > > [java] at >> com.sun.jini.test.spec.****javaspace.conformance.** >> > > > > > snapshot.****SnapshotExpirationNotifyTest.****run(** >> > > > > > SnapshotExpirationNotifyTest.****java:370) >> > > > > > [java] at >> > > > > > com.sun.jini.qa.harness.****MasterTest.doTest(MasterTest.* >> > > > > > *java:256) >> > > > > > [java] at >> > > > > > com.sun.jini.qa.harness.****MasterTest.main(MasterTest.** >> > > > > > java:144) >> > > > > > [java] >> > > > > > [java] TIME: 10:42:54 PM >> > > > > > [java] >> > > > > > [java] Test process was destroyed and returned code 1 >> > > > > > [java] >> > > > > > com/sun/jini/test/spec/****javaspace/conformance/**** >> snapshot/** >> > > > > > SnapshotExpirationNotifyTest.****td >> > > > > > [java] Test Failed: Test Failed: >> > > > > > com.sun.jini.qa.harness.****TestException: >> > > > > > Not all listeners've got expected number of events. >> > > > > > [java] >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] >> > > > > > [java] SUMMARY ==============================****=== >> > > > > > [java] >> > > > > > [java] >> > > > > > com/sun/jini/test/spec/****javaspace/conformance/**** >> snapshot/** >> > > > > > SnapshotExpirationNotifyTest.****td >> > > > > > [java] Test Failed: Test Failed: >> > > > > > com.sun.jini.qa.harness.****TestException: >> > > > > > Not all listeners've got expected number of events. >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] >> > > > > > [java] # of tests started = 1 >> > > > > > [java] # of tests completed = 1 >> > > > > > [java] # of tests passed = 0 >> > > > > > [java] # of tests failed = 1 >> > > > > > [java] >> > > > > > [java] ------------------------------****----------- >> > > > > > [java] >> > > > > > [java] Date finished: >> > > > > > [java] Sun Mar 31 22:42:59 EST 2013 >> > > > > > [java] Time elapsed: >> > > > > > [java] 201 seconds >> > > > > > [java] >> > > > > > [java] Java Result: 1 >> > > > > > >> > > > > > collect-result: >> > > > > > >> > > > > > BUILD FAILED >> > > > > > >> /opt/src/River_Fixed/****peterConcurrentPolicy/build.****xml:2105: >> The >> > > > > > following error occurred while executing this line: >> > > > > > >> /opt/src/River_Fixed/****peterConcurrentPolicy/qa/****build.xml:357: >> > > > > > condition satisfied >> > > > > > >> > > > > > Total time: 3 minutes 30 seconds >> > > > > > >> > > > > > >> > > > > > >> > > > > >> > > > > >> > > > >> > > > >> > > >> > >> >> >> > --047d7b33c6989c486704d95282b6--