Closed Bug 1353451 Opened 7 years ago Closed 7 years ago

"crash" ping creationDate fails to validate against our schema

Categories

(Toolkit :: Telemetry, defect, P2)

defect
Points:
1

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox55 --- affected

People

(Reporter: Dexter, Unassigned)

References

Details

(Whiteboard: [measurement:client])

Attachments

(1 file)

While doing QA on bug 1345153, Abe found that the "creationDate" field fails to validate against the schema that we use.

This is not blocking the uplift of bug 1345153, as the problem also happens with older Nightlies.

It seems to fail because the creationDate string should be something like:

> '2017-04-03T15:44:02.000Z'

rather than

> '2017-04-03T15:44:02Z'

We should fix this in the ping generation code or fix the schema.

(In reply to Abe - QA (:Abe_LV) from bug 1345153 comment #36)
> We have tested this on latest Nightly. 
> The only concern we have is: when the crash ping is validated against the
> schema [1] using an online tool [2], validation fails on creation date.  
> The error is " String '2017-04-03T15:44:02Z' does not match regex pattern
> '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z$'"
> 
> Screen capture: https://testing-1.tinytake.com/sf/MTQ2ODE5NV81MTg5NTc5
> Test cases are here: https://public.etherpad-mozilla.org/p/1345153
> 
> It is also reproducible on nightly builds of 2017-03-01. 
> 
> [1]
> https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/master/
> telemetry/crash.schema.json
> [2] http://www.jsonschemavalidator.net/
Blocks: 1345153
Points: --- → 1
Priority: -- → P2
Whiteboard: [measurement:client]
While running the Ping Sender tests for pre-Beta sign-off, I noticed that the creationDate has always a fixed hour, the minutes are not register. On the other hand, for me, creationDate does validate against the schema:

 "creationDate": "2017-04-06T15:00:00.000Z"

Any thoughts? Thanks!
(In reply to Petruta Rasa [QA] [:petruta] from comment #1)
> While running the Ping Sender tests for pre-Beta sign-off, I noticed that
> the creationDate has always a fixed hour, the minutes are not register. On
> the other hand, for me, creationDate does validate against the schema:
> 
>  "creationDate": "2017-04-06T15:00:00.000Z"
> 
> Any thoughts? Thanks!

The "creationDate" is expected to always have hourly precision, as you noticed, for privacy reasons (the change landed in bug 1345108).
Does that answer your question?
Yes, thank you! No issue in this case.
Gabriele, Alessio, this might be fixed.
Is there anything left to do here?
Flags: needinfo?(gsvelto)
Flags: needinfo?(alessio.placitelli)
(In reply to Georg Fritzsche [:gfritzsche] from comment #4)
> Gabriele, Alessio, this might be fixed.
> Is there anything left to do here?

I think we should, at the very least, verify that this isn't happening anymore. Abe, since you found this, would you be able to verify if it's still happening?
Flags: needinfo?(alessio.placitelli) → needinfo?(amasresha)
I can still reproduce the issue. 
The ping does not validate against the schema[1] on an online tool [2]. But it is valid on most other online tools. 

I am not sure if this is the issue of the validator itself.

Screen capture: https://testing-1.tinytake.com/sf/MTQ2ODE5NV81MTg5NTc5

[1] https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/master/telemetry/crash.schema.json
[2] http://www.jsonschemavalidator.net/
Flags: needinfo?(amasresha)
(In reply to Abe - QA (:Abe_LV) from comment #6)
> I can still reproduce the issue. 
> The ping does not validate against the schema[1] on an online tool [2]. But
> it is valid on most other online tools. 
> 
> I am not sure if this is the issue of the validator itself.

Do you mean that you're still able generate these pings that don't validate or that the validator still doesn't validate the data that you had gathered before?

We need to know if these pings can still be generated with the odd dates :)
Flags: needinfo?(amasresha)
(In reply to Alessio Placitelli [:Dexter] from comment #7)
> Do you mean that you're still able generate these pings that don't validate

I am using online tools to validate the ping. 
The ping is not valid on one of them [1]. This is just the same as it was reported, reproducible. It says it does not match regex pattern error for creationDate. 
But the same ping is valid in other tools[2][3].

[1] http://www.jsonschemavalidator.net/
[2] https://json-schema-validator.herokuapp.com/
[3] https://jsonschemalint.com/#/version/draft-04/markup/json

> or that the validator still doesn't validate the data that you had gathered
> before? No
Flags: needinfo?(amasresha)
Is this for crash pings sent via the pingsender? The relevant code seems to be adding the '.000Z' correctly:

https://dxr.mozilla.org/mozilla-central/rev/0b255199db9d6a6f189b89b7906f99155bde3726/toolkit/crashreporter/client/ping.cpp#232

Or maybe is this for other crash pings?
Flags: needinfo?(gsvelto)
(In reply to Gabriele Svelto [:gsvelto] from comment #9)
> Is this for crash pings sent via the pingsender? The relevant code seems to
> be adding the '.000Z' correctly:
> 
> https://dxr.mozilla.org/mozilla-central/rev/
> 0b255199db9d6a6f189b89b7906f99155bde3726/toolkit/crashreporter/client/ping.
> cpp#232
> 
> Or maybe is this for other crash pings?

I think this is for other pings, as it happened with versions without the pingsender too.
I wonder where this is coming from; for main crash pings the ping is assembled in the crashreporter client and the code looks fine. Then there's content crash pings but those are sent with submitExternalPing() so "creationDate" should be identical to any other ping in the system. I'll do a few tests and see if I can reproduce.
I've just tested both content and main crashes and both report a value of "creationDate" with the trailing dot, millisecond digits and 'Z' letter. Abe, can you describe exactly how you obtained the ping that failed validation?
Flags: needinfo?(amasresha)
Attached file report1.json
Screen capture: https://testing-1.tinytake.com/sf/MTU3ODI4Ml81NDA4NzU0

After running few times, I am pretty sure that this is the error of the online validator: http://www.jsonschemavalidator.net/

Steps to Reproduce:
1. Open firefox from clean profile
2. Start the gzipServer
3. set toolkit.telemetry.server to http://127.0.0.1:8080/
4. Crash the browser using the addon: https://addons.mozilla.org/en-US/firefox/addon/crash-me-now-simple/
5. Validate your crash ping from gzipServer directory against the schema[1] using an online tool: http://www.jsonschemavalidator.net/

[1] https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/master/schemas/telemetry/crash/crash.4.schema.json
Flags: needinfo?(amasresha)
Yeah, the creationDate field looks correct. I think we can close this safely.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: