Skip to content

[BUG] No error when parsing timestamps with hour > 24 #5563

@acailly

Description

@acailly

Steps to Reproduce (for bugs)

Setup a graph with a time scale and values "00:34:12" for example, with HH > 24

Current Behavior

First a null value

In scale.time.js, method determineDataLimits, the value is parsed:

timestamp = parse(data[j], me);

for the value "00:34:12" it returns null because HH > 24.

Then, the null value comes first

In the same method, the timestamps values are sorted:

timestamps = arrayUnique(timestamps).sort(sorter);

The previous null value is now first in timestamps array.

The null becomes a 0

The following line is:

min = Math.min(min, timestamps[0]);

Because timestamps[0] is null, min value is now 0

And finally...

Now we are in scale.time.js, method buildTicks.

The min value is 0 and the max value is something like 1528926965000

Because the options.ticks.source is auto, we call:

timestamps = generate(min, max, me.getLabelCapacity(min), options);

And we have now an array of 2548213 values!

Look at your RAM increasing then kill your browser tab 😉

Expected Behavior

I know that the Time axis is not a Duration axis, so the case should never happen.

But if it happens, that would be nice if we had an error/warning in the console and maybe a degraded behavior instead of the browser freezing 😛

Environment

  • Chart.js version: 2.7.2
  • Browser name and version: Chrome 67.0.3396.79 (64 bits)
  • OS : Windows 7

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions