• unknown's avatar
    BUG#9891 - ndb lcp · 5a1af9ed
    unknown authored
    Crash if ACC_CONTOPREQ was sent while ACC_LCPCONF was in job buffer
      if ACC_LCPCONF would have arrived eariler (before TUP_LCPSTARTED)
      operations could lockup. 
      But would be restarted on next LCP
    
    -- LQH
    1) Better check for LCP started that will also return true
       if ACC or TUP already has completed
        
    2) Remove incorrect if statement that prevented operations to
       be started if ACC has completed
    
    -- ACC
    Make sure all ACC_CONTOPCONF are sent before releasing lcp record
      i.e. use noOfLcpConf == 4 (2 ACC_LCPCONF + 2 ACC_CONTOPCONF)
    
    Check for == 4 also when sending ACC_CONTOPCONF
    
    
    ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
      Make sure all ACC_CONTOPCONF are sent before releasing lcp record
        i.e. use noOfLcpConf == 4 (2 ACC_LCPCONF + 2 ACC_CONTOPCONF)
      
      Check for == 4 also when sending ACC_CONTOPCONF
    ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
      Remove LCP_STARTED state
    ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
      1) Better check for LCP started that will also return true
         if ACC or TUP already has completed
      
      2) Remove incorrect if statement that prevented operations to
         be started if ACC has completed
    5a1af9ed
DbaccMain.cpp 577 KB