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

Karl Wright edited comment on LUCENE-8227 at 3/28/18 2:35 PM:
--------------------------------------------------------------

Here's the plane that is rejecting the bounds point:

{code}
[junit4]   1>  x-bound point1: [X=-0.9660600853870557, Y=0.26132624795300813, 
Z=-0.02590253971121584]
[junit4]   1>   in addPoint() for [X=-0.9660600853870557, 
Y=0.26132624795300813, Z=-0.02590253971121584]
[junit4]   1>   rejected due to [A=0.3322732772082172, B=-0.18309880331194991, 
C=-0.9252401296307047, D=0.0, side=1.0]
{code}

I'm now wondering if the problem is that the polygon is very close to being 
greater than 180 degrees, and the min X point is outside of the bounds for that 
reason, but the endpoints of the segment are not.  If that's the case, we would 
need to only use the adjoining edge bounds rather than all polygon bounds when 
computing the bounds.



was (Author: [email protected]):
Interesting.
The good one is *not* rejected.  But it isn't apparently tallied either.  We 
also multiple-reject some points.  This is weird.

{code}
   [junit4]   1> Computing new x bound for plane [A=-0.2623138822938212, 
B=-0.9602137546257182; C=0.09581739186350438; D=0.0]
   [junit4]   1>  x-bound point1: [X=-0.9660600853870557, 
Y=0.26132624795300813, Z=-0.02590253971121584]
   [junit4]   1>  x-bound point2: [X=0.9660600853870557, 
Y=-0.26132624795300813, Z=0.02590253971121584]
   [junit4]   1>   rejected due to [A=0.3322732772082172, 
B=-0.18309880331194991, C=-0.9252401296307047, D=0.0, side=1.0]
   [junit4]   1>   rejected due to [A=0.9019262009761722, 
B=-0.2792660835611461, C=-0.32945346039328305, D=0.0, side=-1.0]
   [junit4]   1>   rejected due to [A=0.9019262009761722, 
B=-0.2792660835611461, C=-0.32945346039328305, D=0.0, side=-1.0]
   [junit4]   1>   rejected due to [A=0.3322732772082172, 
B=-0.18309880331194991, C=-0.9252401296307047, D=0.0, side=1.0]
{code}


> TestGeo3DPoint.testGeo3DRelations() reproducing failures
> --------------------------------------------------------
>
>                 Key: LUCENE-8227
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8227
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: general/test, modules/spatial3d
>            Reporter: Steve Rowe
>            Assignee: Karl Wright
>            Priority: Major
>
> Three failures: two NPEs and one assert "assess edge that ends in a crossing 
> can't both up and down":
> 1.a. (NPE) From 
> [https://builds.apache.org/job/Lucene-Solr-NightlyTests-master/1512/]:
> {noformat}
>    [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestGeo3DPoint 
> -Dtests.method=testGeo3DRelations -Dtests.seed=C1F88333EC85EAE0 
> -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true 
> -Dtests.linedocsfile=/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-master/test-data/enwiki.random.lines.txt
>  -Dtests.locale=ga -Dtests.timezone=America/Ojinaga -Dtests.asserts=true 
> -Dtests.file.encoding=UTF-8
>    [junit4] ERROR   10.4s J1 | TestGeo3DPoint.testGeo3DRelations <<<
>    [junit4]    > Throwable #1: java.lang.NullPointerException
>    [junit4]    >      at 
> __randomizedtesting.SeedInfo.seed([C1F88333EC85EAE0:7187FEA763C8447C]:0)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$DualCrossingEdgeIterator.countCrossingPoint(GeoComplexPolygon.java:1382)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$DualCrossingEdgeIterator.matches(GeoComplexPolygon.java:1283)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:564)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:572)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:569)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Tree.traverse(GeoComplexPolygon.java:660)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Tree.traverse(GeoComplexPolygon.java:646)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.isWithin(GeoComplexPolygon.java:370)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoBaseMembershipShape.isWithin(GeoBaseMembershipShape.java:36)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoBaseShape.getBounds(GeoBaseShape.java:35)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.getBounds(GeoComplexPolygon.java:440)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.TestGeo3DPoint.testGeo3DRelations(TestGeo3DPoint.java:225)
>    [junit4]    >      at java.lang.Thread.run(Thread.java:748)
> {noformat}
> 1.b. (NPE) From 
> [https://builds.apache.org/job/Lucene-Solr-SmokeRelease-7.x/184/]:
> {noformat}
>    [smoker]    [junit4]   2> NOTE: reproduce with: ant test  
> -Dtestcase=TestGeo3DPoint -Dtests.method=testGeo3DRelations 
> -Dtests.seed=F2A368AB96A2FD75 -Dtests.multiplier=2 -Dtests.locale=fr-ML 
> -Dtests.timezone=America/Godthab -Dtests.asserts=true 
> -Dtests.file.encoding=UTF-8
>    [smoker]    [junit4] ERROR   0.99s J0 | TestGeo3DPoint.testGeo3DRelations 
> <<<
>    [smoker]    [junit4]    > Throwable #1: java.lang.NullPointerException
>    [smoker]    [junit4]    >  at 
> __randomizedtesting.SeedInfo.seed([F2A368AB96A2FD75:42DC153F19EF53E9]:0)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$DualCrossingEdgeIterator.countCrossingPoint(GeoComplexPolygon.java:1382)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$DualCrossingEdgeIterator.matches(GeoComplexPolygon.java:1283)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:564)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:572)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:572)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Tree.traverse(GeoComplexPolygon.java:660)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Tree.traverse(GeoComplexPolygon.java:646)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.isWithin(GeoComplexPolygon.java:370)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoBaseMembershipShape.isWithin(GeoBaseMembershipShape.java:36)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoBaseShape.getBounds(GeoBaseShape.java:43)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.getBounds(GeoComplexPolygon.java:440)
>    [smoker]    [junit4]    >  at 
> org.apache.lucene.spatial3d.TestGeo3DPoint.testGeo3DRelations(TestGeo3DPoint.java:224)
>    [smoker]    [junit4]    >  at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    [smoker]    [junit4]    >  at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>    [smoker]    [junit4]    >  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    [smoker]    [junit4]    >  at 
> java.base/java.lang.reflect.Method.invoke(Method.java:564)
>    [smoker]    [junit4]    >  at 
> java.base/java.lang.Thread.run(Thread.java:844)
> {noformat}
> 2. (both up&down) From 
> [https://jenkins.thetaphi.de/job/Lucene-Solr-7.x-Linux/1598/]:
> {noformat}
>    [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestGeo3DPoint 
> -Dtests.method=testGeo3DRelations -Dtests.seed=BACC479CC2D38CCA 
> -Dtests.multiplier=3 -Dtests.slow=true -Dtests.badapples=true 
> -Dtests.locale=lv -Dtests.timezone=SystemV/AST4ADT -Dtests.asserts=true 
> -Dtests.file.encoding=UTF-8
>    [junit4] FAILURE 3.01s J2 | TestGeo3DPoint.testGeo3DRelations <<<
>    [junit4]    > Throwable #1: java.lang.AssertionError: assess edge that 
> ends in a crossing can't both up and down
>    [junit4]    >      at 
> __randomizedtesting.SeedInfo.seed([BACC479CC2D38CCA:AB33A084D9E2256]:0)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$DualCrossingEdgeIterator.countCrossingPoint(GeoComplexPolygon.java:1438)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$DualCrossingEdgeIterator.matches(GeoComplexPolygon.java:1283)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Node.traverse(GeoComplexPolygon.java:564)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Tree.traverse(GeoComplexPolygon.java:660)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Tree.traverse(GeoComplexPolygon.java:646)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.isWithin(GeoComplexPolygon.java:370)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoBaseMembershipShape.isWithin(GeoBaseMembershipShape.java:36)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoBaseShape.getBounds(GeoBaseShape.java:43)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.getBounds(GeoComplexPolygon.java:440)
>    [junit4]    >      at 
> org.apache.lucene.spatial3d.TestGeo3DPoint.testGeo3DRelations(TestGeo3DPoint.java:224)
>    [junit4]    >      at java.lang.Thread.run(Thread.java:748)
> {noformat}



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

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

Reply via email to