Bruce Schuchardt created GEODE-5278:
---------------------------------------

             Summary: Unexpected CommitConflictException caused by faulty 
region synchronization
                 Key: GEODE-5278
                 URL: https://issues.apache.org/jira/browse/GEODE-5278
             Project: Geode
          Issue Type: Test
          Components: regions
            Reporter: Bruce Schuchardt
             Fix For: 1.8.0


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.

{noformat}
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
{noformat}

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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to