Changeset cab69f65


Ignore:
Timestamp:
Dec 3, 2015 6:07:29 PM (5 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
68c3121
Parents:
5bd0041f
Message:

NetDb?: Fix deadlock (ticket #1722)

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • history.txt

    r5bd0041f rcab69f65  
    112015-12-03 zzz
    22 * Console: Add experimental Sybil analysis tool
     3 * NetDb: Fix deadlock (ticket #1722)
    34
    452015-12-01 zzz
  • router/java/src/net/i2p/router/Router.java

    r5bd0041f rcab69f65  
    489489     *  Our current router info.
    490490     *  Warning, may be null if called very early.
     491     *
     492     *  Warning - risk of deadlock - do not call while holding locks
     493     *
    491494     */
    492495    public RouterInfo getRouterInfo() {
     
    499502     *  Caller must ensure info is valid - no validation done here.
    500503     *  Not for external use.
     504     *
     505     *  Warning - risk of deadlock - do not call while holding locks
     506     *
    501507     */
    502508    public void setRouterInfo(RouterInfo info) {
     
    807813     * has changed.
    808814     * Not for external use.
     815     *
     816     *  Warning - risk of deadlock - do not call while holding locks
     817     *
    809818     */
    810819    public void rebuildRouterInfo(boolean blockingRebuild) {
     
    960969    }
    961970   
     971    /*
     972     *
     973     *  Warning - risk of deadlock - do not call while holding locks
     974     *
     975     */
    962976    public boolean isHidden() {
    963977        RouterInfo ri;
  • router/java/src/net/i2p/router/RouterContext.java

    r5bd0041f rcab69f65  
    262262     *  Convenience method for getting the router hash.
    263263     *  Equivalent to context.router().getRouterInfo().getIdentity().getHash()
     264     *
     265     *  Warning - risk of deadlock - do not call while holding locks
     266     *
    264267     *  @return may be null if called very early
    265268     */
  • router/java/src/net/i2p/router/RouterVersion.java

    r5bd0041f rcab69f65  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 7;
     21    public final static long BUILD = 8;
    2222
    2323    /** for example "-test" */
  • router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java

    r5bd0041f rcab69f65  
    200200        }
    201201        final boolean empty;
     202        // outside sync to avoid deadlock
     203        final Hash us = getContext().routerHash();
    202204        synchronized(this) {
    203205            _toTry.addAll(floodfillPeers);
    204206            // don't ask ourselves or the target
    205             _toTry.remove(getContext().routerHash());
     207            _toTry.remove(us);
    206208            _toTry.remove(_key);
    207209            empty = _toTry.isEmpty();
Note: See TracChangeset for help on using the changeset viewer.