graylog2-server icon indicating copy to clipboard operation
graylog2-server copied to clipboard

Pipeline rule simulator: fields with timezone offset are incorrectly serialized/deserialized and lose the timezone information

Open patrickmann opened this issue 1 year ago • 0 comments

Timezone information is lost when simulating a pipeline rule.

Expected Behavior

Timezone information should be preserved

Current Behavior

Create a rule using timezones, e.g.:

rule "x" when true then set_field(field: "1_Utctimestamp3", value: parse_unix_milliseconds( value: 1715673672000, timezone: "America/Denver") ); set_field(field: "1_Utctimestamp4", value: parse_unix_milliseconds( value: 1715673672000, timezone: "America/Toronto") ); end

When this is run in the simulator, the fields show up with the same UTC value in the results pane. Debugging confirmed that the pipeline interpreter returns the correct values.; however, the JSON data returned from system/pipelines/rule/simulate lacks the timezone offset. It is lost in serializing/deserializing.

This is a known Jackson/Joda issue.

Context

This does not affect the actual pipeline, since the problem only occurs when sending the results back to the frontend. However, simulator results should match the values from the running pipeline.

Your Environment

  • Graylog Version: 6.1

patrickmann avatar May 30 '24 08:05 patrickmann