Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-5278

Unexpected CommitConflictException caused by faulty region synchronization

    XMLWordPrintableJSON

Details

    Description

      I was running tests for another ticket and found that several times my test failed with a weird CommitConflictException. I traced this down to faulty region-synchronization code. When a server crashes other members exchange version vector information about the crashed server in order to recover operations that may have only reached a subset of the servers. This is supposed to return only region entries concerning the crashed server but I noticed it also returned all entries modified by the requesting server as well.

      before the transaction begins we have v48 of key Object_194:
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:14.813 PDT bridgegemfire5_trout_2643 <ServerConnection on port 29940 Thread 8> tid=0x83] generated tag {v48; rv220; ds=1; time=1527830894813}; key=Object_194; oldvalue=util.QueryObject with id 1775 (contains 1 levels, aPrimitiveLong=-197) newvalue=util.QueryObject with id 1780 (contains 1 levels, aPrimitiveLong=197) client=edgegemfire1_trout_377 region=/testRegion; rvv=RegionVersionVector{rv220 gc0}@2057394665
      
      server "bridge5" begins a GII sync with "bridge4" for loss of server "bridge2"
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.144 PDT bridgegemfire5_trout_2643 <Pooled Waiting Message Processor 2> tid=0x7d] Sending (InitialImageOperation$RequestImageMessage(region path='/testRegion'; sender=trout(bridgegemfire5_trout_2643:2643)<ec><v12>:1028; keysOnly=false; processorId=712; waitForInit=false; checkTombstoneVersions=false; lostMember=trout(bridgegemfire2_trout_3364:3364)<ec><v15>:1025; versionVector=RegionVersionVector[trout(bridgegemfire5_trout_2643:2643)<ec><v12>:1028={rv-1 gc0 localVersion=0 local exceptions=[]} others={trout(bridgegemfire2_trout_3364:3364)<ec><v15>:1025={rv-1 bsv1 bs=[]}, gc={}]; unfinished keys=null)) to 1 peers ([trout(bridgegemfire4_trout_3956:3956)<ec><v17>:1029]) via tcp/ip
      
      the transaction begins
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.201 PDT bridgegemfire5_trout_2643 <ServerConnection on port 29940 Thread 8> tid=0x83] Server connection from [identity(trout(edgegemfire1_trout_377:377:loner):44872:32e1cab9:edgegemfire1_trout_377,connection=1; port=46982]: Received 7.0 get request (31 bytes) from /10.118.26.122:46982 timeout: 0 for region /testRegion key Object_194 txId 105
      
      bridge5 gets back an odd result - the sync GII should only have entries modified by "bridge2" but it has stuff from "bridge5", including Object_194 with the same revision as bridge5 already contains
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.203 PDT bridgegemfire5_trout_2643 <Pooled High Priority Message Processor 4> tid=0x70] processed these initial image keys: [Object_179,v={v1; rv42; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690427; remote}, Object_185,v={v1; rv63; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691143; remote}, Object_190,v={v1; rv74; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691522; remote}, Object_228,v={v1; rv133; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760434; remote}, Object_257,v={v1; rv181; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829825; remote}, Object_269,v={v1; rv199; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830324; remote}, Object_151,v={v1; rv1; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689202; remote}, Object_212,v={v1; rv109; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759779; remote}, Object_204,v={v1; rv99; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759529; remote}, Object_163,v={v1; rv16; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689717; remote}, Object_256,v={v1; rv179; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829744; remote}, Object_251,v={v1; rv171; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829527; remote}, Object_193,v={v1; rv81; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830758973; remote}, Object_220,v={v1; rv121; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760065; remote}, Object_215,v={v1; rv115; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759925; remote}, Object_214,v={v1; rv114; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759907; remote}, Object_201,v={v1; rv94; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759401; remote}, Object_166,v={v1; rv23; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689938; remote}, Object_210,v={v1; rv105; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759683; remote}, Object_211,v={v1; rv108; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759746; remote}, Object_238,v={v1; rv150; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760864; remote}, Object_216,v={v1; rv116; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759951; remote}, Object_195,v={v1; rv83; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759044; remote}, Object_253,v={v1; rv176; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829673; remote}, Object_160,v={v1; rv13; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689629; remote}, Object_186,v={v1; rv65; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691241; remote}, Object_245,v={v1; rv162; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829291; remote}, Object_178,v={v1; rv41; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690410; remote}, Object_280,v={v1; rv213; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830684; remote}, Object_249,v={v1; rv169; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829454; remote}, Object_206,v={v1; rv101; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759581; remote}, Object_156,v={v1; rv9; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689528; remote}, Object_157,v={v1; rv10; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689555; remote}, Object_287,v={v1; rv222; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830895187; remote}, Object_205,v={v1; rv100; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759554; remote}, Object_203,v={v1; rv96; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759464; remote}, Object_189,v={v1; rv72; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691452; remote}, Object_184,v={v1; rv54; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690752; remote}, Object_209,v={v1; rv104; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759660; remote}, Object_159,v={v1; rv12; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689605; remote}, Object_164,v={v1; rv20; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689836; remote}, Object_235,v={v1; rv147; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760800; remote}, Object_202,v={v1; rv95; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759432; remote}, Object_254,v={v1; rv177; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829693; remote}, Object_230,v={v1; rv138; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760570; remote}, Object_167,v={v1; rv24; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689960; remote}, Object_171,v={v1; rv30; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690121; remote}, Object_237,v={v1; rv149; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760844; remote}, Object_277,v={v1; rv208; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830566; remote}, Object_182,v={v1; rv48; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690561; remote}, Object_234,v={v1; rv145; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760760; remote}, Object_255,v={v1; rv178; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829720; remote}, Object_229,v={v1; rv135; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760488; remote}, Object_263,v={v1; rv190; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830096; remote}, Object_221,v={v1; rv122; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760084; remote}, Object_224,v={v1; rv128; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760292; remote}, Object_225,v={v1; rv130; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760337; remote}, Object_196,v={v1; rv85; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759153; remote}, Object_162,v={v1; rv15; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689677; remote}, Object_192,v={v1; rv80; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830758895; remote}, Object_180,v={v1; rv43; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690449; remote}, Object_232,v={v1; rv142; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760678; remote}, Object_243,v={v1; rv160; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829243; remote}, Object_261,v={v1; rv186; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829991; remote}, Object_240,v={v1; rv156; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829088; remote}, Object_161,v={v1; rv14; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689655; remote}, Object_200,v={v1; rv92; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759343; remote}, Object_154,v={v1; rv7; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689469; remote}, Object_165,v={v1; rv22; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689914; remote}, Object_244,v={v1; rv161; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829267; remote}, Object_267,v={v1; rv197; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830284; remote}, Object_279,v={v1; rv211; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830633; remote}, Object_226,v={v1; rv131; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760357; remote}, Object_199,v={v1; rv91; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759323; remote}, Object_223,v={v1; rv125; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760215; remote}, Object_271,v={v1; rv201; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830372; remote}, Object_265,v={v1; rv195; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830248; remote}, Object_276,v={v1; rv207; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830533; remote}, Object_194,v={v48; rv220; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830894818; remote}, Object_272,v={v1; rv202; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830390; remote}, Object_207,v={v1; rv102; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759622; remote}, Object_246,v={v1; rv163; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829319; remote}, Object_172,v={v1; rv33; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690226; remote}, Object_275,v={v1; rv206; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830510; remote}, Object_248,v={v1; rv167; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829408; remote}, Object_198,v={v1; rv90; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759293; remote}, Object_218,v={v1; rv118; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759992; remote}, Object_174,v={v1; rv36; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690302; remote}, Object_222,v={v1; rv123; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760104; remote}, Object_173,v={v1; rv34; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690251; remote}, Object_278,v={v1; rv209; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830586; remote}, Object_236,v={v1; rv148; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760824; remote}, Object_286,v={v1; rv221; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830895167; remote}, Object_191,v={v1; rv78; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691638; remote}, Object_233,v={v1; rv144; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760724; remote}, Object_268,v={v1; rv198; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830302; remote}, Object_175,v={v1; rv37; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690322; remote}, Object_281,v={v1; rv214; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830705; remote}, Object_152,v={v1; rv3; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689330; remote}, Object_208,v={v1; rv103; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759641; remote}, Object_170,v={v1; rv29; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690087; remote}, Object_187,v={v1; rv68; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691342; remote}, Object_266,v={v1; rv196; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830265; remote}, Object_227,v={v1; rv132; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760386; remote}, Object_270,v={v1; rv200; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830355; remote}, Object_169,v={v1; rv28; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690065; remote}, Object_282,v={v1; rv215; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830727; remote}, Object_260,v={v1; rv185; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829968; remote}, Object_213,v={v1; rv111; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759825; remote}, Object_274,v={v1; rv205; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830465; remote}, Object_158,v={v1; rv11; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689578; remote}, Object_188,v={v1; rv69; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691371; remote}, Object_258,v={v1; rv182; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829851; remote}, Object_241,v={v1; rv158; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829175; remote}, Object_259,v={v1; rv183; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829884; remote}, Object_264,v={v1; rv194; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830225; remote}, Object_262,v={v1; rv187; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830018; remote}, Object_181,v={v1; rv47; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690541; remote}, Object_183,v={v1; rv50; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690645; remote}, Object_153,v={v1; rv6; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689436; remote}, Object_217,v={v1; rv117; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759969; remote}, Object_176,v={v1; rv38; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690343; remote}, Object_231,v={v1; rv140; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760638; remote}, Object_177,v={v1; rv39; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830690369; remote}, Object_250,v={v1; rv170; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829497; remote}, Object_130,v={v46; rv79; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830691662; remote}, Object_219,v={v1; rv120; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830760036; remote}, Object_239,v={v1; rv151; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830826783; remote}, Object_273,v={v1; rv204; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830443; remote}, Object_285,v={v1; rv219; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830806; remote}, Object_168,v={v1; rv25; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689980; remote}, Object_197,v={v1; rv86; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830759189; remote}, Object_155,v={v1; rv8; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830689505; remote}, Object_252,v={v1; rv175; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829649; remote}, Object_242,v={v1; rv159; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829204; remote}, Object_247,v={v1; rv165; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830829362; remote}, Object_284,v={v1; rv218; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830785; remote}, Object_283,v={v1; rv216; mbr=trout(bridgegemfire5_trout_2643)<ec><v12>:1028; ds=1; time=1527830830744; remote}]
      
      the transaction is committed but since the new value of Object_194 is not == the old value the transaction fails
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.206 PDT bridgegemfire5_trout_2643 <ServerConnection on port 29940 Thread 8> tid=0x83] TXRegionState.createLockRequest 1 DistributedRegion region-state={org.apache.geode.internal.cache.TXRegionState@63d8baad  ,entryMods={Object_194={org.apache.geode.internal.cache.TXEntryState@75f1bb38 23}} ,isCreatedDuringCommit=false}
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.206 PDT bridgegemfire5_trout_2643 <ServerConnection on port 29940 Thread 8> tid=0x83] [TXLockServiceImpl.txLock] acquire try-locks for [TXLockBatch: txLockId=TXLockId: trout(bridgegemfire5_trout_2643:2643)<ec><v12>:1028-222; reqs=[regionPath=/testRegion keys=[Object_194]]; participants=[trout(bridgegemfire4_trout_3956:3956)<ec><v17>:1029, trout(bridgegemfire1_trout_4249:4249)<ec><v19>:1026, trout(bridgegemfire3_trout_2101:2101)<ec><v8>:1027]]
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.206 PDT bridgegemfire5_trout_2643 <ServerConnection on port 29940 Thread 8> tid=0x83] <DLockRequestProcessor 721 waiting for 1 replies from [trout(bridgegemfire5_trout_2643:2643)<ec><v12>:1028]> got process(DLockRequestProcessor.DLockResponseMessage responding GRANT; serviceName=DTLS(version 3); objectName=[TXLockBatch: txLockId=TXLockId: trout(bridgegemfire5_trout_2643:2643)<ec><v12>:1028-222; reqs=[regionPath=/testRegion keys=[Object_194]]; participants=[trout(bridgegemfire4_trout_3956:3956)<ec><v17>:1029, trout(bridgegemfire1_trout_4249:4249)<ec><v19>:1026, trout(bridgegemfire3_trout_2101:2101)<ec><v8>:1027]]; responseCode=0; keyIfFailed=null; leaseExpireTime=9223372036854775807; processorId=721; lockId=721) from trout(bridgegemfire5_trout_2643:2643)<ec><v12>:1028
      bridgegemfire5_2643/system.log: [fine 2018/05/31 22:28:15.211 PDT bridgegemfire5_trout_2643 <ServerConnection on port 29940 Thread 8> tid=0x83] Server connection from [identity(trout(edgegemfire1_trout_377:377:loner):44872:32e1cab9:edgegemfire1_trout_377,connection=1; port=46982]: Wrote exception: Entry for key  Object_194  on region  testRegion  had a state change
      
      org.apache.geode.cache.CommitConflictException: Entry for key  Object_194  on region  testRegion  had a state change
      

      The problem seems to be in RegionVersionVector.contains(id, version). This method is not checking to see if the vector is for synchronization purposes if the argument "id" names the owner of the vector - that is, the server requesting synchronization.

      Due to this flaw the synchronization return value will be all of the region entries modified by the requester.

      Attachments

        Issue Links

          Activity

            People

              bschuchardt Bruce J Schuchardt
              bschuchardt Bruce J Schuchardt
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h