river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Trasuk <tras...@trasuk.com>
Subject Re: Next Release
Date Sun, 07 Apr 2013 01:28:31 GMT

The "2.2" branch is very clean.  It starts from release in 2011. Since then, Dennis applied
RIVER-417, added poms for listing at Maven Central, and applied the Levels fix.  I've applied
RIVER-149, and that's it.

A few days ago, I set out to see what else from the trunk should be rolled in for a "minimal"
release.  In particular, I wanted to include the fix for RIVER-149 which I did a while ago,
because it fixes a problem with the container work I've been doing separately.  But I also
figured we might want to include non-controversial fixes.  

Before then, I did a 'svn diff', but it appears that the vast majority of files have at least
cosmetic changes (may be tabs or something), because I got just about every file in the repository.

See below for the list of changes that svn says have been applied to the trunk since the release.
 I started going through all the revisions to see what they were, by doing 'svn diff ../trunk
-c XXX' where x is the revision number (perhaps there's a non-manual way to do this).   As
you can see, I didn't get too far before I started thinking that we'd better do some strategic
thinking.  So I just merged in:

 r1211940 - RIVER-149 Fixes
r1140819 - Update build documentation.

Back to the changes in trunkā€¦ 

To see what's gone on since 2.2.0, run the following:

	svn log https://svn.apache.org/repos/asf/river/jtsk/trunk -r 1137621:HEAD

I want to be very careful here because I don't want to sound like I'm criticizing anyone.
 I know that Peter, especially, has done a lot of work on the code.  

Having said that, as an observation and not a value judgement, I have to say that I'm not
confident about the state of the trunk.  There have been too many changes since a release,
both to the main code and the test code.  There are radical changes to the security policy
provider (for perceived concurrency issues and also for revokable grants, I think).  Much
cleaning, deleting, reorganizing.  Many alterations suggested by FindBugs.  Replacement of
string concatenation by StringBuilder.  Something about reference collections, which adds
a jar file that I can find no information on.  Additions of 'dnsjava name service provider'.
 Changes to tests that fail because of a ConcurrentPolicyProvider.  Changes to PreferredClassLoader
to supposedly improve concurrency.  More changes to tests.  Adding generics.  Many changes
to tests to fix test failures.

A lot of the changes look to me, like thrashing on problems.  Now I realize that chasing concurrency
bugs can be a long game of "whack-a-mole", but I see a lot of uncertainty and thrashing at
solution attempts.  And I don't recall anyone reporting concurrency problems in the field.
 And the first set of changes in there is a hell-of-a-long list of "incremental merge of concurrent
policy items". 

Short answer - for now I think we ought to test and release "2.2.1" from the "2.2" branch.
 This branch includes the Level fixes and RIVER-149 fix and not much else.  It fixes the immediate
problem that users have reported, the system doesn't run with JDK7.

List of longer-term reccommendations  to follow.  This message is already in tl;dr territory.

Cheers,

Greg



Changes to the trunk since 2.2.0
=========================
N r1128239 Added rat_reports.sh.  Superseded 
Y r1140819 Updated minimum Java version in build.html
Y r1211940 Fix RIVER-149
N r1213641 River-265 Fix for unlucky caching as requested. River-401 Changed to utilise URI
in place of URL in map's and arrays to avoid unnecessary DNS lookups.
r1213675 RIVER-401 Fix null pointer.  Seems to be related to above.
r1222914 Fix exception cast and reset interrupt status.
Y r1224722 Fix JDK7 compile errors (inner class private field accessibility)
Y r1227948 Commit msg says "RIVER-402 Fix null pointer exception.  Looks like JDK7 inner class
private field accessibility stuff.
r1231478 Fix RIVER-403.  DGC Leaks threads.
N r1231673 Reverted common.xml to trunk version.  This is superseded by dreedy's commit on
20130403.
N r1231675 Changed common.xml.  As above.
N r1238468 Changed common.xml. As above.
Y r1241254 Propagate cause of interrupt.  Very minor change to assist service developers during
debugging.
r1290906 Prepare for merge 2nd try.  What?
r1290925 Incremental merge of concurrent policy items.
r1290926 Incremental merge of concurrent policy items.
r1290929 Continuing merge of concurrent policy items.
r1290940 Continuing incremental merge.
r1290947 Continuing concurrent policy merge
r1290948 Continuing concurrent policy merge
r1290949 Continuing concurrent policy merge
r1290965 Completion of concurrent policy merge (replace trunk).
r1290982 Minor post-merge changes for above.
r1291177 Removed source/target overrides in javac-cmd in build.xml (JDK7?)
r1291182 Up 5 to 6 in javadoc.source property
r1301927 Cleaning, deleting, reorganizing
r1301929 Cleaning, deleting, reorganizing
r1302036 Cleaning, deleting, reorganizing
r1302083 Cleaning, deleting, reorganizing
r1302114 Deleted failing test, it was no longer relevant, tested Delegate Security Manager
functionality, which is now disabled.  Reduced the number of Integer, Long, Float, Char etc
objects created, by using valueOf instead of new.  Fixed minor bugs found with FindBugs -
some string concatenations in loops outstanding
r1302267 Deleted failing test, it was no longer relevant, tested Delegate Security Manager
functionality, which is now disabled.  Reduced the number of Integer, Long, Float, Char etc
objects created, by using valueOf instead of new.  Fixed minor bugs found with FindBugs -
some string concatenations in loops outstanding
r1302364 Reduced the number of Integer, Long, Float, Char, Short, etc objects created, by
using valueOf instead of new.  Replaced string concatenation in loops with StringBuilder.
 Fixed some bugs reported by FindBugs.
r1303195 Fixed bug in Reggie, when random number returns Integer.MIN_VALUE, then Maths.abs
returns a negative number.  Fixed a classpath issue in the qa suite, caused by separating
reference collections.
r1309816 Added missing ASF license header.
r1309818 Updated rat version.
r1332577 Add doap.rdf file
r1337773 Add reference-collections to class path in two qa tests.
r1338673 Session class delayed instantiation in jdk1.6 caused SecurityException because proxy
ProtectionDomain was on the stack.  This caused some jtreg tests to fail, small fix, the bug
doesn't exist in any releases.
r1344606 Added netbeans onebigjar project.
r1344639 forced default compile options in project.properties (onebigjar)
r1344736 added proper label (onebigjar).
r1355351 Refactoring for release, clean up and decrease size of new public api.  Separated
RemotePolicy implementation from DynamicPolicyProvider.  Version numbers and documentation
still requires update prior to release.
r1355851 Refactoring for release, clean up and review new public api, sanity check and remove
unnecessary methods.  Added dnsjava name service provider to handle reverse dns lookup and
to provide concurrent dns lookups.  Updated reference-collections, these were updated to avoid
calling hashCode during initialisation of Timed references and temporary referrers, this helped
reduced SocketPermission.hashCode calls that caused reverse lookups and recursive permission
checks that cause stack overflow in the CombinerSecurityManager.  Two tests are failling due
to a change to ConcurrentPolicyFile, now only privileged domains are returned by getPermissions(CodeSource)
and all other instances are diverted to the java.security.Policy superclass which returns
an empty PermissionCollection this is to avoid checking permissions twice.
r1355852 Refactoring for release, clean up and review new public api, sanity check and remove
unnecessary methods.  Added dnsjava name service provider to handle reverse dns lookup and
to provide concurrent dns lookups.  Updated reference-collections, these were updated to avoid
calling hashCode during initialisation of Timed references and temporary referrers, this helped
reduced SocketPermission.hashCode calls that caused reverse lookups and recursive permission
checks that cause stack overflow in the CombinerSecurityManager.  Two tests are failling due
to a change to ConcurrentPolicyFile, now only privileged domains are returned by getPermissions(CodeSource)
and all other instances are diverted to the java.security.Policy superclass which returns
an empty PermissionCollection this is to avoid checking permissions twice.
r1358131 Fixed failing junit tests caused by change to ConcurrentPolicyFile.getPermissions(CodeSource)
method that now only returns Permissions for privileged CodeSource and delegates up to the
super class java.security.Policy if the CodeSource is not privileged.
r1358143 seems to be some (deleted reference-collections.jar)
r1358709 Alter tests that fail due to ConcurrentPolicyFile delegating up to java.security.Policy.getPermissions(CodeSource)
when CodeSource is found not to have AllPermission.  Only CodeSources that are privileged
have Permissions returned that contains AllPermission. This is an optimisation that complies
with java.security.Policy.
r1359548 URI spaces in codebase strings caused problems with Windows platforms - fixed. Removed
calls to Thread.yield().
r1360043
r1360396
r1361523
r1361645
r1361646
r1361661
r1361671
r1362432
r1362433
r1362435
r1362452
r1362463
r1362797
r1362940
r1363295
r1363313
r1364250
r1364614
r1366641
r1366657
r1366659
r1367884
r1367889
r1369328
r1369509
r1369512
r1369513
r1369533
r1369538
r1369539
r1369541
r1369570
r1369573
r1369578
r1369666
r1369771
r1370679
r1371049
r1371855
r1373770
r1379716
r1379717
r1379720
r1379725
r1379730
r1379873
r1384715
r1384716
r1384728
r1384729
r1384733
r1384734
r1384740
r1384792
r1384812
r1385061
r1385068
r1385070
r1385072
r1385073
r1385083
r1385085
r1388003
r1389755
r1389763
r1389766
r1389804
r1389823
r1392387
r1393401
r1393420
r1393421
r1393422
r1393979
r1394412
r1394431
r1394432
r1394434
r1394435
r1394437
r1394438
r1395185
r1395234
r1395235
r1396151
r1396153
r1396157
r1396166
r1396173
r1396177
r1396180
r1396183
r1396187
r1396193
r1396198
r1396199
r1396240
r1396251
r1396254
r1396303
r1397599
r1397600
r1397613
r1397824
r1398558
r1398721
r1398725
r1398739
r1398740
r1400681
r1400842
r1400937
r1402752
r1402753
r1402754
r1402755
r1402756
r1402757
r1402758
r1402759
r1402772
r1402959
r1402960
r1402961
r1402989
r1403001
r1404526
r1404527
r1404528
r1404531
r1404901
r1404907
r1404911
r1404913
r1406894
r1406926
r1406927
r1407017
r1407431
r1415845
r1444164
r1444556
r1444557
r1449248
r1455692

On 2013-04-06, at 11:22 AM, Dan Creswell <dan.creswell@gmail.com> wrote:

> On 6 April 2013 14:44, Dennis Reedy <dennis.reedy@gmail.com> wrote:
> 
>> 
>> On Apr 6, 2013, at 532AM, Dan Creswell wrote:
>> 
>>> Right so we're into brutal tradeoffs aren't we?
>>> 
>>> It's beginning to smell like none of the available branches are suitable
>>> for doing releases from. So we need a branch that is.
>> 
>> AFAIK we are going to be releasing 2.2.1 from the 2.2 branch. Once
>> everything passes muster (Greg is running tests) we will tag the branch
>> 2.2.1 and release.
>> 
>>> 
>>> i.e. We shouldn't just pick a branch we have, we should get one sorted
>> and
>>> right now.
>>> 
>>> What are our chances of pulling just qa changes out of qa-refactoring?
>> Have
>>> we at least got changesets that don't mix concurrency fixes with anything
>>> other than concurrency related changes to tests?
>> 
>> You are talking 2.3.0 here? I though qa-trunk was being used for that?
>> 
>> 
> Peter is having some comms trouble looks like so I'll leave it at an open
> question:
> 
> Have we got a shared, agreed view of what unreleased code changes are in
> which branch?
> 
> 
>> Dennis


Mime
View raw message