Nomad: Possible 0.9.2 UI Bug

Created on 21 May 2019  路  4Comments  路  Source: hashicorp/nomad

I built a test release of the current master branch and deployed it - I believe everything in the scheduler is working as expected but I've encountered a bug in the UI. Seems like it's trying to index into a null array, though the XHR requests to /v1/jobs is returning populated arrays . I get this from firefox:

TypeError: t.match(...) is null[Learn More] nomad-ui-3862716e00185c2061ad87166e17726a.js:425:336
    a https://nomad.example.com/ui/assets/nomad-ui-3862716e00185c2061ad87166e17726a.js:425
    reduce self-hosted:359
    optionsPrefix https://nomad.example.com/ui/assets/nomad-ui-3862716e00185c2061ad87166e17726a.js:425
    get https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3379
    ne https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3296
    compute https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2825
    value https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2821
    value https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2492
    bt https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2961
    create https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2974
    <anonymous> https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2259
    evaluate https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2136
    evaluateSyscall https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2395
    evaluateInner https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2387
    evaluateOuter https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2387
    next https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2513
    execute https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2512
    handleException https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2453
    handleException https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2465
    throw https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2448
    evaluate https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2200
    execute https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2448
    rerender https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2466
    render https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3004
    C https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3257
    _renderRoots https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3025
    _renderRootsTransaction https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3030
    _revalidate https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:3032
    invoke https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2607
    flush https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2600
    flush https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2611
    _end https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2658
    end https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2624
    _run https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2659
    _join https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2658
    join https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:2635
    h https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:1817
    success https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:7409
    u https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:1283
    fireWith https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:1284
    O https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:1556
    n https://nomad.example.com/ui/assets/vendor-121fbe0a713949ae14198625db799c6f.js:1566

and this from chrome:

Uncaught TypeError: Cannot read property '1' of null
    at nomad-ui-3862716e00185c2061ad87166e17726a.js:425
    at Array.reduce (<anonymous>)
    at n.<anonymous> (nomad-ui-3862716e00185c2061ad87166e17726a.js:425)
    at n.get (vendor-121fbe0a713949ae14198625db799c6f.js:3379)
    at ne (vendor-121fbe0a713949ae14198625db799c6f.js:3296)
    at t.compute (vendor-121fbe0a713949ae14198625db799c6f.js:2825)
    at t.value (vendor-121fbe0a713949ae14198625db799c6f.js:2821)
    at e.value (vendor-121fbe0a713949ae14198625db799c6f.js:2492)
    at bt (vendor-121fbe0a713949ae14198625db799c6f.js:2961)
    at r.create (vendor-121fbe0a713949ae14198625db799c6f.js:2974)

Results in a blank screen at /ui/jobs. To build this release, I used make prerelease followed by make release in the vagrant VM. I had to do a bit of work to get everything actually working in that VM so it's totally possible I messed something up, just wanted to call this out just in case.

themui typbug

All 4 comments

Hi @rsigrest, I tried reproducing this just now and couldn't. Unfortunately the production build stack traces are worthless.

You mentioned that /v1/jobs returns a populated array. What jobs are you running? Can you share the JSON response?

I think I just figured it out. You must have job names using underscores?

Looks like the first regex here matches underscores, but then the next one doesn't 馃う鈥嶁檪.

This is definitely a bug that needs to be fixed before 0.9.2.

I do - my jobs include underscores, dashes and forward-slashes. That's probably it.

I'll have a PR up soon. It's a quick fix. Thank you for kicking the tires!

Was this page helpful?
0 / 5 - 0 ratings