Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PolylineCollection Test Failure #7892

Open
hpinkos opened this issue Jun 3, 2019 · 18 comments
Open

PolylineCollection Test Failure #7892

hpinkos opened this issue Jun 3, 2019 · 18 comments

Comments

@hpinkos
Copy link
Contributor

hpinkos commented Jun 3, 2019

http://localhost:8080/Specs/SpecRunner.html?spec=Scene%2FPolylineCollection%20renders%20more%20than%2064K%20vertices%20of%20different%20polylines

Scene/PolylineCollection renders more than 64K vertices of different polylines
Expected not to render [0,0,0,255], but actually rendered [0,0,0,255].
Error: Expected not to render [0,0,0,255], but actually rendered [0,0,0,255].
    at stack (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:1475:17)
    at buildExpectationResult (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:1445:14)
    at Spec.expectationResultFactory (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:584:18)
    at Spec.addExpectationResult (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:332:34)
    at Expectation.addExpectationResult (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:528:21)
    at Expectation.notToRender (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:1399:12)
    at http://localhost:8080/Specs/Scene/PolylineCollectionSpec.js:813:23
    at Object.<anonymous> (http://localhost:8080/Specs/spec-main.js:142:30)
    at attemptAsync (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:1793:24)
    at QueueRunner.run (http://localhost:8080/ThirdParty/jasmine-2.2.0/jasmine.js:1746:26)
@hpinkos
Copy link
Contributor Author

hpinkos commented Jun 3, 2019

@lilleyse are you seeing this test failure? I'm seeing it in both Chrome and Firefox. I haven't checked the other browsers yet.

@lilleyse
Copy link
Contributor

lilleyse commented Jun 3, 2019

The test fails at this commit between 1.37 and 1.38. Not sure why it's suddenly failing now.

809fa27

I might have to pass this off to someone else more familiar with the polyline collection.

@hpinkos
Copy link
Contributor Author

hpinkos commented Jun 3, 2019

Doesn't that change fix what the test is supposed to be testing for?

@lilleyse
Copy link
Contributor

lilleyse commented Jun 3, 2019

Maybe? It doesn't seem like the test should fail though. If you change CesiumMath.SIXTY_FOUR_KILOBYTES to 1 in the test it passes leading me to think there's a bug.

@hpinkos
Copy link
Contributor Author

hpinkos commented Jun 3, 2019

Well, if it's failing in previous releases, it doesn't have to hold up this release. Something must have changed outside of our code base, like a browser issue. It definitely didn't fail when I released 1.55, but I just checked out that tag and it fails now.

@hpinkos
Copy link
Contributor Author

hpinkos commented Jun 3, 2019

I'm going to label this next release so we can look at it before the July release

@tfili
Copy link
Contributor

tfili commented Jun 27, 2019

@hpinkos @lilleyse Is this going to get looked at before Monday?

@lilleyse
Copy link
Contributor

Probably not by either of us. Ok to push.

@hpinkos
Copy link
Contributor Author

hpinkos commented Jun 27, 2019

I changed the priority to priority - high
It appears to be something that changed at the browser level, not in our code, so we haven't introduced a breaking change that needs addressing by next release
However, obviously we don't want test failures in master so this should be looked at soon

@OmarShehata
Copy link
Contributor

Ran into this while doing the 1.61 release. It passes fine in Chrome, but errors in Edge and Firefox.

@thw0rted
Copy link
Contributor

I'm seeing this failure in master (afff7a4) right now on Chrome, Windows. Is it still inconsistent for other people?

These tests fail in Chrome for me:

  • Scene/Cesium3DTileset renders with lightColor
  • Scene/PolylineCollection renders more than 64K vertices of different polylines
  • Scene/PolylineCollection renders with model matrix

The first one also fails in Firefox for me, but the other two are fine there. I can't get the Jasmine page to render in Edge at all, it just gives a totally useless SCRIPT5022: SCRIPT5022: Syntax error

@kring
Copy link
Member

kring commented Sep 1, 2020

I'm seeing this failure in Firefox only while doing the 1.73 release. My Firefox is using my Intel GPU while Chrome is using the NVidia one, so that could be the cause rather than the browser. In any case, I'm not going to let this hold up the release.

@kring
Copy link
Member

kring commented Sep 1, 2020

Sorry it's not Scene/PolylineCollection renders more than 64K vertices of different polylines that is failing in Firefox, but rather Scene/PolylineCollection renders with model matrix. The other two mentioned by @thw0rted pass for me in both browsers. Also, when I switch Firefox to use my NVidia GPU, the test passes.

Long story short, in Firefox on my system at least, Scene/PolylineCollection renders with model matrix fails when run with my Intel UHD Graphics 630 but passes with my NVidia GTX 1650.

@thw0rted
Copy link
Contributor

thw0rted commented Sep 1, 2020

That's interesting, Tim, because my situation is exactly backwards: Firefox on NVidia, Chrome on Intel. So maybe the last two bullets in my previous post are particular to Intel GPUs?

@hpinkos
Copy link
Contributor Author

hpinkos commented Apr 1, 2021

Still failing

@ebogo1
Copy link
Contributor

ebogo1 commented Feb 21, 2022

I don't think this has come up during releases for the past while and I can't reproduce on an Intel mac in Chrome or Firefox. I'll close this for now.

@ebogo1 ebogo1 closed this as completed Feb 21, 2022
@ggetz ggetz moved this from In Progress to Issue/PR closed in CesiumJS Issue/PR backlog Feb 22, 2022
@thw0rted
Copy link
Contributor

@ebogo1 I finally got a chance to test again and I still get this error. Full output of npm run test:

1) applies show style to a tileset with glTF content
     Scene/Cesium3DTileset
     Error: Expected not to render [0,0,0,255], but actually rendered [0,0,0,255].
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2705:25
    at Promise.then (Source/ThirdParty/when.js:196:34)
    at Source/ThirdParty/when.js:297:13

2) applies show style to a tileset with glb content
     Scene/Cesium3DTileset
     Error: Expected not to render [0,0,0,255], but actually rendered [0,0,0,255].
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2720:25
    at Promise.then (Source/ThirdParty/when.js:196:34)
    at Source/ThirdParty/when.js:297:13

3) applies color style to tileset with glTF content
     Scene/Cesium3DTileset
     Error: Expected 0 to be greater than 0.
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2735:25
    at compare (Specs/addDefaultMatchers.js:292:13)
    at <Jasmine>
     Error: Expected 0 to be greater than 0.
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2746:25
    at compare (Specs/addDefaultMatchers.js:292:13)
    at <Jasmine>
     Error: Expected 0 to be greater than 0.
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2747:25
    at compare (Specs/addDefaultMatchers.js:292:13)
    at <Jasmine>

4) applies color style to tileset with glb content
     Scene/Cesium3DTileset
     Error: Expected 0 to be greater than 0.
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2735:25
    at compare (Specs/addDefaultMatchers.js:292:13)
    at <Jasmine>
     Error: Expected 0 to be greater than 0.
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2746:25
    at compare (Specs/addDefaultMatchers.js:292:13)
    at <Jasmine>
     Error: Expected 0 to be greater than 0.
    at <Jasmine>
    at Specs/Scene/Cesium3DTilesetSpec.js:2747:25
    at compare (Specs/addDefaultMatchers.js:292:13)
    at <Jasmine>

5) renders with model matrix
     Scene/PolylineCollection
     Error: Expected to render [0,0,0,255], but actually rendered [255,255,255,255].
    at <Jasmine>
    at Specs/Scene/PolylineCollectionSpec.js:1592:21
    at UserContext.<anonymous> (Specs/customizeJasmine.js:40:24)
    at <Jasmine>

6) stops the render loop when render throws
     Widgets/CesiumWidget/CesiumWidget
     Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>

7) shows the error panel when render throws
     Widgets/CesiumWidget/CesiumWidget
     Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>

8) does not show the error panel if disabled
     Widgets/CesiumWidget/CesiumWidget
     Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>

9) stops the render loop when render throws
     Widgets/Viewer/Viewer
     Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>

10) shows the error panel when render throws
     Widgets/Viewer/Viewer
     Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>

11) does not show the error panel if disabled
     Widgets/Viewer/Viewer
     Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>

That's Chrome latest, Win10, on Intel HD 630 (iGPU). I ran again in Firefox latest, on NVidia 1060 (dGPU):

1) draws with a cube map while allowing color profiles
     Renderer/CubeMap
     Expected context to render 0,59,0,255, but rendered: 0,58,2,255
<Jasmine>
expectCubeMapFaces@Specs/Renderer/CubeMapSpec.js:63:12
@Specs/Renderer/CubeMapSpec.js:340:25
customizeJasmine/window.it/<@Specs/customizeJasmine.js:40:24
<Jasmine>
     Expected context to render 193,0,0,255, but rendered: 192,2,1,255
<Jasmine>
expectCubeMapFaces@Specs/Renderer/CubeMapSpec.js:63:12
@Specs/Renderer/CubeMapSpec.js:340:25
customizeJasmine/window.it/<@Specs/customizeJasmine.js:40:24
<Jasmine>
     Expected context to render 0,59,0,255, but rendered: 0,58,2,255
<Jasmine>
expectCubeMapFaces@Specs/Renderer/CubeMapSpec.js:63:12
@Specs/Renderer/CubeMapSpec.js:340:25
customizeJasmine/window.it/<@Specs/customizeJasmine.js:40:24
<Jasmine>
     Expected context to render 193,0,0,255, but rendered: 192,2,1,255
<Jasmine>
expectCubeMapFaces@Specs/Renderer/CubeMapSpec.js:63:12
@Specs/Renderer/CubeMapSpec.js:340:25
customizeJasmine/window.it/<@Specs/customizeJasmine.js:40:24
<Jasmine>
     Expected context to render 0,59,0,255, but rendered: 0,58,2,255
<Jasmine>
expectCubeMapFaces@Specs/Renderer/CubeMapSpec.js:63:12
@Specs/Renderer/CubeMapSpec.js:340:25
customizeJasmine/window.it/<@Specs/customizeJasmine.js:40:24
<Jasmine>
     Expected context to render 193,0,0,255, but rendered: 192,2,1,255
<Jasmine>
expectCubeMapFaces@Specs/Renderer/CubeMapSpec.js:63:12
@Specs/Renderer/CubeMapSpec.js:340:25
customizeJasmine/window.it/<@Specs/customizeJasmine.js:40:24
<Jasmine>

2) applies show style to a tileset with glTF content
     Scene/Cesium3DTileset
     Expected not to render [0,0,0,255], but actually rendered [0,0,0,255].
<Jasmine>
@Specs/Scene/Cesium3DTilesetSpec.js:2705:25
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16

3) applies show style to a tileset with glb content
     Scene/Cesium3DTileset
     Expected not to render [0,0,0,255], but actually rendered [0,0,0,255].
<Jasmine>
@Specs/Scene/Cesium3DTilesetSpec.js:2720:25
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16

4) applies color style to tileset with glTF content
     Scene/Cesium3DTileset
     Expected 0 to be greater than 0.
<Jasmine>
expectColorStyle/<@Specs/Scene/Cesium3DTilesetSpec.js:2735:25
compare@Specs/addDefaultMatchers.js:292:21
<Jasmine>
expectColorStyle@Specs/Scene/Cesium3DTilesetSpec.js:2732:21
@Specs/Scene/Cesium3DTilesetSpec.js:2793:27
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16
     Expected 0 to be greater than 0.
<Jasmine>
expectColorStyle/<@Specs/Scene/Cesium3DTilesetSpec.js:2746:25
compare@Specs/addDefaultMatchers.js:292:21
<Jasmine>
expectColorStyle@Specs/Scene/Cesium3DTilesetSpec.js:2744:21
@Specs/Scene/Cesium3DTilesetSpec.js:2793:27
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16
     Expected 0 to be greater than 0.
<Jasmine>
expectColorStyle/<@Specs/Scene/Cesium3DTilesetSpec.js:2747:25
compare@Specs/addDefaultMatchers.js:292:21
<Jasmine>
expectColorStyle@Specs/Scene/Cesium3DTilesetSpec.js:2744:21
@Specs/Scene/Cesium3DTilesetSpec.js:2793:27
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16

5) applies color style to tileset with glb content
     Scene/Cesium3DTileset
     Expected 0 to be greater than 0.
<Jasmine>
expectColorStyle/<@Specs/Scene/Cesium3DTilesetSpec.js:2735:25
compare@Specs/addDefaultMatchers.js:292:21
<Jasmine>
expectColorStyle@Specs/Scene/Cesium3DTilesetSpec.js:2732:21
@Specs/Scene/Cesium3DTilesetSpec.js:2802:27
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16
     Expected 0 to be greater than 0.
<Jasmine>
expectColorStyle/<@Specs/Scene/Cesium3DTilesetSpec.js:2746:25
compare@Specs/addDefaultMatchers.js:292:21
<Jasmine>
expectColorStyle@Specs/Scene/Cesium3DTilesetSpec.js:2744:21
@Specs/Scene/Cesium3DTilesetSpec.js:2802:27
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16
     Expected 0 to be greater than 0.
<Jasmine>
expectColorStyle/<@Specs/Scene/Cesium3DTilesetSpec.js:2747:25
compare@Specs/addDefaultMatchers.js:292:21
<Jasmine>
expectColorStyle@Specs/Scene/Cesium3DTilesetSpec.js:2744:21
@Specs/Scene/Cesium3DTilesetSpec.js:2802:27
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:297:13
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
when</</fulfilled/p<@Source/ThirdParty/when.js:196:34
when</</defer/_then/<@Source/ThirdParty/when.js:298:7
processQueue@Source/ThirdParty/when.js:647:11
_resolve@Source/ThirdParty/when.js:333:16
promiseResolve@Source/ThirdParty/when.js:359:11
poller@Specs/pollToPromise.js:26:16

TOTAL: 5 FAILED, 13006 SUCCESS

(Sorry about the formatting, the Firefox webdriver doesn't seem to be as well supported as the Chrome one.)

As stated in previous comments, it looks like the subject failures only happen on Windows, when using an Intel GPU. Please re-open and test on a Windows machine.

Also: the "render loop" test failures wouldn't be caught by Travis because it runs with --webgl-stub (full CLI is npm --silent run test -- --browsers ChromeCI --failTaskOnError --webgl-stub --release --suppressPassed); maybe that's another ticket though?

@thw0rted
Copy link
Contributor

In case it helps: I spent at least 15 minutes faffing around with the "--include" CLI option trying to get it to work before I remembered I can just change the spec I'm interested in to use fdescribe, it cut my test run from 5+ minutes per browser to 1 minute on both browsers forCesium3DTileset, or 30 seconds for PolylineCollection.

TL;DR: change describe to fdescribe in Specs/Scene/PolylineCollectionSpec.js and save yourself a lot of test time.

@ggetz ggetz reopened this Feb 24, 2022
@ggetz ggetz moved this from Issue/PR closed to Next priority in CesiumJS Issue/PR backlog Mar 2, 2022
@ggetz ggetz moved this from Item is planned to Notable backlog items in CesiumJS Issue/PR backlog May 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Notable backlog items
Development

Successfully merging a pull request may close this issue.

8 participants