> On April 3, 2014, 8:08 p.m., kturner wrote:
> > server/src/main/java/org/apache/accumulo/server/master/Master.java, line 276
> > <https://reviews.apache.org/r/19804/diff/4/?file=545884#file545884line276>
> >
> >     this should be volatile because upgradeZookeeper() and 
> > upgradeMetadata() will be run by separate threads.
> 
> Sean Busbey wrote:
>     in reading the code, I thought upgradeZooKeeper had to happen prior to 
> the thread that calls upgradeMetadata being created.  Am I reading the code 
> wrong?
>     
>     Master.run() calls getMasterLock (which is synchronous) and then several 
> lines later creates the status thread and starts it.

OK.  I did not look at the calling methods.  Actually, setMasterState() is 
whats synchronized, and that method calls both upgradeZooKeeper() and 
upgradeMetadata().  So different threads will see any changes other threads 
make to the boolean.  So it does not need to be volatile.

I also think upgradeZooKeeper will be called before upgradeMetadata.


- kturner


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19804/#review39468
-----------------------------------------------------------


On April 2, 2014, 3:10 p.m., Sean Busbey wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19804/
> -----------------------------------------------------------
> 
> (Updated April 2, 2014, 3:10 p.m.)
> 
> 
> Review request for accumulo and kturner.
> 
> 
> Bugs: ACCUMULO-2519
>     https://issues.apache.org/jira/browse/ACCUMULO-2519
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> Adds "make sure Fate has no outstanding items" to the upgrade instructions. 
> Makes sure the master and tabletservers don't take upgrade steps if they see 
> fate ops waiting.
> 
> 
> Diffs
> -----
> 
>   README 115a9b7 
>   server/src/main/java/org/apache/accumulo/server/Accumulo.java 99ec7e4 
>   server/src/main/java/org/apache/accumulo/server/master/Master.java 8c4c864 
>   
> server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
>  d76946d 
>   server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java 
> 7328a55 
> 
> Diff: https://reviews.apache.org/r/19804/diff/
> 
> 
> Testing
> -------
> 
> Took a 1.4.5-SNAP cluster
> 
> * loaded test data in a variety of table configs
> * alternate table creation and deletion
> * load additional table to cause !METADATA churn
> * shutdown cluster uncleanly
> * verified waiting Fate transactions (table deletion at success status)
> * verified waiting local WALs
> * verified waiting local WALs include !METADATA table (via LogReader)
> * verified /accumulo/version showed 4
> * Start upgrade to 1.5.2-SNAP
> * verified errors showing no upgrade and to go back to docs in: monitor, 
> master logs, tabletserver logs
> * verified same waiting Fate transactions
> * verified same waiting local WALs
> * verified /accumulo/version showed 4
> * Cleared Fate operations
> * Start upgrade to 1.5.2-SNAP
> * wait a terrifying long amount of time, check on progress via local logs
> * verify no errors shown for upgrade
> * verified WALs copied to HDFS
> * verified /accumulo/version showed 5
> * verified monitor showed normal start up
> * wait for all tablets to be hosted
> * verify test data
> 
> 
> Thanks,
> 
> Sean Busbey
> 
>

Reply via email to