[ 
https://issues.apache.org/jira/browse/LUCENE-7511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15781635#comment-15781635
 ] 

Karl Wright commented on LUCENE-7511:
-------------------------------------

The documents that are improperly dropped are:

{code}
   [junit4]   1> doc=6 should match but did not
   [junit4]   1>   point=[X=-0.2719508674921135, Y=-2.3309121299774915E-10, 
Z=0.9602434144124582]
   [junit4]   1>   mappedPoint=[lat=1.2948131611512503, 
lon=-3.141592653589793([X=-0.27195086739770846, Y=-3.3304375928395E-17, 
Z=0.9602434145569013])]
   [junit4]   1> doc=879 should match but did not
   [junit4]   1>   point=[X=-0.2651433682229679, Y=2.3309121299774915E-10, 
Z=0.9621326350101899]
   [junit4]   1>   mappedPoint=[lat=1.3018920791218538, 
lon=3.141592653589793([X=-0.2651433680629479, Y=3.247069770134377E-17, 
Z=0.962132635034695])]
   [junit4]   1> doc=3203 should match but did not
   [junit4]   1>   point=[X=-0.30146136839295046, Y=2.3309121299774915E-10, 
Z=0.9514510040760914]
   [junit4]   1>   mappedPoint=[lat=1.2639590100387652, 
lon=3.141592653589793([X=-0.30146136829285364, Y=3.691836997464246E-17, 
Z=0.9514510040336378])]
{code}

The comparison that apparently fails is this one:

{code}
   [junit4]   1>   cycle: cell=37518 parentCellID=37517 x: -1487435755 TO 
-198220247, y: -3 TO 2, z: -3 TO 2076512254, splits: 2 queue.size()=1
   [junit4]   1>     minx=-0.6934164087783456 maxx=-0.09240679516170448 
miny=-1.398547277986495E-9 maxy=1.3985472779864947E-9 
minz=-1.398547277986495E-9 maxz=0.9680335206452827
   [junit4]   1>     GeoArea.DISJOINT: drop this cell
{code}

The shape is an extremely narrow rectangle, which no doubt winds up including 
points on the opposite side of the globe because of its extreme narrowness:

{code}
GeoRectangle: {planetmodel=PlanetModel.WGS84, 
toplat=1.3252830142514311(75.93312337698313), 
bottomlat=2.4457272005608357E-47(1.401298464324817E-45), 
leftlon=2.4457272005608357E-47(1.401298464324817E-45), 
rightlon=2.884269796461926E-12(1.6525648631432533E-10)}
{code}

So what is apparent is that the logic and reasoning we've been using to handle 
the extremely-narrow-angle case is flawed.  We cannot reasonably treat the 
matching set of points to include the antipodes but still manage to properly 
decide whether an intersection has taken place or not.

Extremely narrow GeoRectangles are usually mapped to GeoDegenerateVerticalLine 
whenever this situation arises.  I'll look at the criteria for that decision as 
a first step.





> TestGeo3DPoint.testGeo3DRelations() failure: invalid hits for 
> shape=GeoRectangle
> --------------------------------------------------------------------------------
>
>                 Key: LUCENE-7511
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7511
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/spatial3d
>            Reporter: Steve Rowe
>            Assignee: Karl Wright
>
> Policeman Jenkins found a seed 
> [https://jenkins.thetaphi.de/job/Lucene-Solr-6.x-Linux/1989/], that 
> reproduces for me with Java8 on Linux, both on master and on branch_6x:
> {noformat}
>    [junit4] Suite: org.apache.lucene.spatial3d.TestGeo3DPoint
>    [junit4] IGNOR/A 0.01s J1 | TestGeo3DPoint.testRandomBig
>    [junit4]    > Assumption #1: 'nightly' test group is disabled (@Nightly())
>    [junit4]   1> doc=23 should match but did not
>    [junit4]   1>   point=[X=-0.3032237416849336, Y=2.3309121299774915E-10, 
> Z=-0.9508945608073219]
>    [junit4]   1>   mappedPoint=[lat=-1.2621073061661279, 
> lon=3.141592653589793([X=-0.3032237417663322, Y=3.7134198477962236E-17, 
> Z=-0.9508945610068391])]
>    [junit4]   1> doc=30 should match but did not
>    [junit4]   1>   point=[X=-0.19482888783564378, Y=2.3309121299774915E-10, 
> Z=-0.9786855487622393]
>    [junit4]   1>   mappedPoint=[lat=-1.3742932353673953, 
> lon=3.141592653589793([X=-0.1948288878124478, Y=2.3859657384095297E-17, 
> Z=-0.9786855486360273])]
>    [junit4]   1> doc=83 should match but did not
>    [junit4]   1>   point=[X=-0.2892999513665818, Y=2.3309121299774915E-10, 
> Z=-0.9551939133132278]
>    [junit4]   1>   mappedPoint=[lat=-1.2767082336466407, 
> lon=3.141592653589793([X=-0.2892999511883776, Y=3.5429025921633215E-17, 
> Z=-0.9551939133776381])]
>    [junit4]   1> doc=204 should match but did not
>    [junit4]   1>   point=[X=-0.2304883857492458, Y=-2.3309121299774915E-10, 
> Z=-0.970958461302852]
>    [junit4]   1>   mappedPoint=[lat=-1.3377279126209909, 
> lon=-3.141592653589793([X=-0.23048838553642823, Y=-2.8226686358782794E-17, 
> Z=-0.9709584613946622])]
>    [junit4]   1> doc=295 should match but did not
>    [junit4]   1>   point=[X=-0.38044050228897974, Y=2.3309121299774915E-10, 
> Z=-0.9229103565532143]
>    [junit4]   1>   mappedPoint=[lat=-1.1798015420947494, 
> lon=3.141592653589793([X=-0.38044050220203357, Y=4.6590524328773195E-17, 
> Z=-0.9229103567469498])]
>    [junit4]   1> doc=335 should match but did not
>    [junit4]   1>   point=[X=-0.34552679276447196, Y=-2.3309121299774915E-10, 
> Z=-0.9364507784902717]
>    [junit4]   1>   mappedPoint=[lat=-1.2173184081667363, 
> lon=-3.141592653589793([X=-0.3455267925813584, Y=-4.2314828055441195E-17, 
> Z=-0.9364507786023997])]
>    [junit4]   1> doc=444 should match but did not
>    [junit4]   1>   point=[X=-0.35565273191587166, Y=2.3309121299774915E-10, 
> Z=-0.9326775916369318]
>    [junit4]   1>   mappedPoint=[lat=-1.2064925301928429, 
> lon=3.141592653589793([X=-0.35565273187036933, Y=4.355489796930597E-17, 
> Z=-0.9326775917892445])]
>    [junit4]   1> doc=456 should match but did not
>    [junit4]   1>   point=[X=-0.24059621278103072, Y=2.3309121299774915E-10, 
> Z=-0.9685197822476396]
>    [junit4]   1>   mappedPoint=[lat=-1.3273086505286442, 
> lon=3.141592653589793([X=-0.24059621266986583, Y=2.9464538173312706E-17, 
> Z=-0.9685197820947206])]
>    [junit4]   1> doc=749 should match but did not
>    [junit4]   1>   point=[X=-0.27931563097728074, Y=2.3309121299774915E-10, 
> Z=-0.9581412458781736]
>    [junit4]   1>   mappedPoint=[lat=-1.2871390311991375, 
> lon=3.141592653589793([X=-0.27931563076181104, Y=3.420629931642758E-17, 
> Z=-0.9581412457046323])]
>    [junit4]   1> doc=978 should match but did not
>    [junit4]   1>   point=[X=-0.20014590305820745, Y=-2.3309121299774915E-10, 
> Z=-0.9776192380446992]
>    [junit4]   1>   mappedPoint=[lat=-1.3688589001639526, 
> lon=-3.141592653589793([X=-0.20014590297436863, Y=-2.4510803944001724E-17, 
> Z=-0.9776192382200114])]
>    [junit4]   1> doc=1019 should match but did not
>    [junit4]   1>   point=[X=-0.1895701514767011, Y=-2.3309121299774915E-10, 
> Z=-0.9797108368248392]
>    [junit4]   1>   mappedPoint=[lat=-1.3796623403968673, 
> lon=-3.141592653589793([X=-0.18957015125823026, Y=-2.3215647895227127E-17, 
> Z=-0.9797108369364872])]
>    [junit4]   1> doc=1050 should match but did not
>    [junit4]   1>   point=[X=-0.37669388969865125, Y=-2.3309121299774915E-10, 
> Z=-0.9244356257338767]
>    [junit4]   1>   mappedPoint=[lat=-1.1838538424170673, 
> lon=-3.141592653589793([X=-0.37669388956862926, Y=-4.613169661185884E-17, 
> Z=-0.9244356256615374])]
>    [junit4]   1> doc=1077 should match but did not
>    [junit4]   1>   point=[X=-0.281464835919801, Y=-2.3309121299774915E-10, 
> Z=-0.9575163092226472]
>    [junit4]   1>   mappedPoint=[lat=-1.2848963877296418, 
> lon=-3.141592653589793([X=-0.2814648357291603, Y=-3.4469501014825175E-17, 
> Z=-0.957516309437251])]
>    [junit4]   1> doc=1087 should match but did not
>    [junit4]   1>   point=[X=-0.22993880934761124, Y=-2.3309121299774915E-10, 
> Z=-0.9710878847326866]
>    [junit4]   1>   mappedPoint=[lat=-1.3382936874912785, 
> lon=-3.141592653589793([X=-0.22993880922160065, Y=-2.8159382671298716E-17, 
> Z=-0.9710878846374904])]
>    [junit4]   1> doc=1245 should match but did not
>    [junit4]   1>   point=[X=-0.2977325835509569, Y=-2.3309121299774915E-10, 
> Z=-0.9526165659644908]
>    [junit4]   1>   mappedPoint=[lat=-1.2678732944040285, 
> lon=-3.141592653589793([X=-0.2977325833240384, Y=-3.6461725516965625E-17, 
> Z=-0.9526165658097825])]
>    [junit4]   1> doc=1274 should match but did not
>    [junit4]   1>   point=[X=-0.2230123351953449, Y=-2.3309121299774915E-10, 
> Z=-0.9726911285182859]
>    [junit4]   1>   mappedPoint=[lat=-1.345418012127493, 
> lon=-3.141592653589793([X=-0.2230123354014425, Y=-2.7311134271975252E-17, 
> Z=-0.9726911284129601])]
>    [junit4]   1> doc=1365 should match but did not
>    [junit4]   1>   point=[X=-0.21337764463280406, Y=-2.3309121299774915E-10, 
> Z=-0.9748355592865815]
>    [junit4]   1>   mappedPoint=[lat=-1.3553090486591461, 
> lon=-3.141592653589793([X=-0.21337764449242597, Y=-2.6131224933725133E-17, 
> Z=-0.9748355591900344])]
>    [junit4]   1> doc=1421 should match but did not
>    [junit4]   1>   point=[X=-0.357719833275708, Y=-2.3309121299774915E-10, 
> Z=-0.9318920262323395]
>    [junit4]   1>   mappedPoint=[lat=-1.2042771838760873, 
> lon=-3.141592653589793([X=-0.3577198333651691, Y=-4.380804489221789E-17, 
> Z=-0.9318920261236907])]
>    [junit4]   1> doc=1567 should match but did not
>    [junit4]   1>   point=[X=-0.2019549943558293, Y=2.3309121299774915E-10, 
> Z=-0.977249613653688]
>    [junit4]   1>   mappedPoint=[lat=-1.367008546421418, 
> lon=3.141592653589793([X=-0.2019549945354198, Y=2.4732353762962308E-17, 
> Z=-0.9772496136297395])]
>    [junit4]   1> doc=1695 should match but did not
>    [junit4]   1>   point=[X=-0.21798690729041048, Y=-2.3309121299774915E-10, 
> Z=-0.9738220605113527]
>    [junit4]   1>   mappedPoint=[lat=-1.3505798311224506, 
> lon=-3.141592653589793([X=-0.2179869073694118, Y=-2.6695696836598075E-17, 
> Z=-0.9738220602853552])]
>    [junit4]   1> doc=1858 should match but did not
>    [junit4]   1>   point=[X=-0.2881195858552449, Y=2.3309121299774915E-10, 
> Z=-0.9555482278071868]
>    [junit4]   1>   mappedPoint=[lat=-1.2779430458945407, 
> lon=3.141592653589793([X=-0.2881195859095498, Y=3.5284472865579097E-17, 
> Z=-0.9555482277022879])]
>    [junit4]   1> doc=2207 should match but did not
>    [junit4]   1>   point=[X=-0.32595903903655066, Y=-2.3309121299774915E-10, 
> Z=-0.9433936450151833]
>    [junit4]   1>   mappedPoint=[lat=-1.2381203695374021, 
> lon=-3.141592653589793([X=-0.3259590392236278, Y=-3.991846940383623E-17, 
> Z=-0.9433936449254461])]
>    [junit4]   1> doc=2349 should match but did not
>    [junit4]   1>   point=[X=-0.20974591943808518, Y=-2.3309121299774915E-10, 
> Z=-0.9756181369280056]
>    [junit4]   1>   mappedPoint=[lat=-1.3590319035018428, 
> lon=-3.141592653589793([X=-0.20974591957164881, Y=-2.5686466903763788E-17, 
> Z=-0.9756181367786224])]
>    [junit4]   1> doc=2380 should match but did not
>    [junit4]   1>   point=[X=-0.4875463924984321, Y=2.3309121299774915E-10, 
> Z=-0.8714467112499943]
>    [junit4]   1>   mappedPoint=[lat=-1.06071322725801, 
> lon=3.141592653589793([X=-0.48754639238198005, Y=5.970721288664315E-17, 
> Z=-0.8714467113481478])]
>    [junit4]   1> doc=2403 should match but did not
>    [junit4]   1>   point=[X=-0.5307326574182415, Y=2.3309121299774915E-10, 
> Z=-0.8460130563140477]
>    [junit4]   1>   mappedPoint=[lat=-1.0105204721369465, 
> lon=3.141592653589793([X=-0.5307326575599536, Y=6.499600502837654E-17, 
> Z=-0.8460130563310785])]
>    [junit4]   1> doc=2647 should match but did not
>    [junit4]   1>   point=[X=-0.41216428024496576, Y=-2.3309121299774915E-10, 
> Z=-0.9092785241675204]
>    [junit4]   1>   mappedPoint=[lat=-1.1452121604915835, 
> lon=-3.141592653589793([X=-0.41216428042536374, Y=-5.047556667457938E-17, 
> Z=-0.9092785241822108])]
>    [junit4]   1> doc=2672 should match but did not
>    [junit4]   1>   point=[X=-0.18909431254793352, Y=-2.3309121299774915E-10, 
> Z=-0.9798021745490172]
>    [junit4]   1>   mappedPoint=[lat=-1.380147893716371, 
> lon=-3.141592653589793([X=-0.18909431255244671, Y=-2.3157374460432306E-17, 
> Z=-0.9798021744231401])]
>    [junit4]   1> doc=2676 should match but did not
>    [junit4]   1>   point=[X=-0.2859003155588272, Y=-2.3309121299774915E-10, 
> Z=-0.9562101196759868]
>    [junit4]   1>   mappedPoint=[lat=-1.2802634653663008, 
> lon=-3.141592653589793([X=-0.2859003156392869, Y=-3.501269064228707E-17, 
> Z=-0.9562101195662314])]
>    [junit4]   1> doc=2682 should match but did not
>    [junit4]   1>   point=[X=-0.5068398365617964, Y=-2.3309121299774915E-10, 
> Z=-0.86044329743017]
>    [junit4]   1>   mappedPoint=[lat=-1.038470904936626, 
> lon=-3.141592653589793([X=-0.5068398363428848, Y=-6.206997832576823E-17, 
> Z=-0.8604432975645862])]
>    [junit4]   1> doc=2784 should match but did not
>    [junit4]   1>   point=[X=-0.37840497686340335, Y=-2.3309121299774915E-10, 
> Z=-0.9237412167084987]
>    [junit4]   1>   mappedPoint=[lat=-1.1820039671839628, 
> lon=-3.141592653589793([X=-0.37840497689182123, Y=-4.6341244373199705E-17, 
> Z=-0.92374121663021])]
>    [junit4]   1> doc=2880 should match but did not
>    [junit4]   1>   point=[X=-0.2569863542772196, Y=-2.3309121299774915E-10, 
> Z=-0.9643286344122667]
>    [junit4]   1>   mappedPoint=[lat=-1.3103565403065773, 
> lon=-3.141592653589793([X=-0.25698635432302114, Y=-3.1471751624623544E-17, 
> Z=-0.9643286344522917])]
>    [junit4]   1> doc=2902 should match but did not
>    [junit4]   1>   point=[X=-0.5314576316943799, Y=-2.3309121299774915E-10, 
> Z=-0.8455608705492103]
>    [junit4]   1>   mappedPoint=[lat=-1.0096649353953517, 
> lon=-3.141592653589793([X=-0.5314576318897689, Y=-6.508478877762378E-17, 
> Z=-0.8455608705872797])]
>    [junit4]   1> doc=2961 should match but did not
>    [junit4]   1>   point=[X=-0.22611501186537553, Y=-2.3309121299774915E-10, 
> Z=-0.9719793532651747]
>    [junit4]   1>   mappedPoint=[lat=-1.3422281433038927, 
> lon=-3.141592653589793([X=-0.2261150116836731, Y=-2.7691102529757665E-17, 
> Z=-0.9719793532388703])]
>    [junit4]   1> doc=3060 should match but did not
>    [junit4]   1>   point=[X=-0.3694237626445084, Y=2.3309121299774915E-10, 
> Z=-0.9273452879617076]
>    [junit4]   1>   mappedPoint=[lat=-1.1916984985376446, 
> lon=3.141592653589793([X=-0.36942376251911235, Y=4.524136282980029E-17, 
> Z=-0.9273452880788157])]
>    [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestGeo3DPoint 
> -Dtests.method=testGeo3DRelations -Dtests.seed=7FEDE7A41EB3B240 
> -Dtests.multiplier=3 -Dtests.slow=true -Dtests.locale=en-IE 
> -Dtests.timezone=America/St_Kitts -Dtests.asserts=true 
> -Dtests.file.encoding=UTF-8
>    [junit4] FAILURE 0.21s J1 | TestGeo3DPoint.testGeo3DRelations <<<
>    [junit4]    > Throwable #1: java.lang.AssertionError: invalid hits for 
> shape=GeoRectangle: {planetmodel=PlanetModel.WGS84, 
> toplat=0.017453291479645996(0.9999999403953552), 
> bottomlat=-1.3962634015954636(-80.0), 
> leftlon=2.4457272005608357E-47(1.401298464324817E-45), 
> rightlon=1.869241958456853E-12(1.0709967510834605E-10)}
>    [junit4]    >      at 
> __randomizedtesting.SeedInfo.seed([7FEDE7A41EB3B240:CF929A3091FE1CDC]:0)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.TestGeo3DPoint.testGeo3DRelations(TestGeo3DPoint.java:464)
>    [junit4]    >      at java.lang.Thread.run(Thread.java:745)
>    [junit4]   2> NOTE: test params are: codec=Asserting(Lucene62): 
> {id=PostingsFormat(name=LuceneFixedGap)}, 
> docValues:{id=DocValuesFormat(name=Lucene54), 
> point=DocValuesFormat(name=Direct)}, maxPointsInLeafNode=1896, 
> maxMBSortInHeap=5.304289065936136, 
> sim=RandomSimilarity(queryNorm=true,coord=crazy): {}, locale=en-IE, 
> timezone=America/St_Kitts
>    [junit4]   2> NOTE: Linux 4.4.0-42-generic amd64/Oracle Corporation 
> 1.8.0_102 (64-bit)/cpus=12,threads=1,free=452209936,total=508887040
>    [junit4]   2> NOTE: All tests run in this JVM: [TestGeo3DPoint]
>    [junit4] Completed [10/11 (1!)] on J1 in 68.45s, 14 tests, 1 failure, 1 
> skipped <<< FAILURES!
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to