Skip to content

[script.module.pyrollbar@matrix] 1.4.0.1+v1_3_0 - #2883

Open
zim514 wants to merge 1 commit into
xbmc:matrixfrom
zim514:script.module.pyrollbar@matrix
Open

[script.module.pyrollbar@matrix] 1.4.0.1+v1_3_0#2883
zim514 wants to merge 1 commit into
xbmc:matrixfrom
zim514:script.module.pyrollbar@matrix

Conversation

@zim514

@zim514 zim514 commented Aug 23, 2026

Copy link
Copy Markdown

Add-on details:

  • General

    • Add-on name: pyrollbar
    • Add-on ID: script.module.pyrollbar
    • Version number: 1.4.0.1+v1_3_0
    • Kodi/repository version: matrix
  • Code location

Python notifier for reporting exceptions, errors, and log messages to Rollbar.

Description of changes:

Rollback to rollbar 1.3.0 for windows compatability. This version has been released after an erroneous 1.4.0 upgrade.
This version number was discussed with @romanvm here.

Checklist:

  • My code follows the add-on rules and piracy stance of this project.
  • I have read the CONTRIBUTING document
  • Each add-on submission should be a single commit with using the following style: [plugin.video.foo] v1.0.0

@greptile-apps

greptile-apps Bot commented Aug 23, 2026

Copy link
Copy Markdown

Greptile Summary

This PR publishes pyrollbar 1.3.0 under a higher add-on version to undo an incompatible 1.4.0 release.

  • Replaces the bundled notifier implementation with the 1.3.0 code.
  • Updates add-on metadata and release notes for the compatibility rollback.
  • Reverts session, transport, traversal, transformation, and payload behavior introduced in 1.4.0.

Confidence Score: 2/5

This PR should not merge until unconditional failed-payload logging is removed and invalid agent log configuration no longer crashes initialization.

HTTP 429 and 413 responses can copy complete telemetry events into application logs despite the previous opt-out, while an invalid agent log filename reaches an undefined variable and aborts agent-handler setup.

Files Needing Attention: script.module.pyrollbar/lib/rollbar/init.py

Security Review

Failed Rollbar requests now log complete event payloads unconditionally on HTTP 429 and 413 responses, bypassing the prior payload-logging control and potentially exposing request, exception, and local-variable data in application logs. How this was verified: The serialized event is passed to _parse_response, where the changed 429 and 413 branches log it without the former log_payload_on_error guard.

Important Files Changed

Filename Overview
script.module.pyrollbar/lib/rollbar/init.py Rolls the notifier core back to 1.3.0, but exposes failed event payloads in logs and contains an undefined fallback variable that can crash agent initialization.
script.module.pyrollbar/lib/rollbar/lib/traverse.py Restores 1.3.0 traversal behavior, including changed custom-handler matching, without a concrete affected repository caller.
script.module.pyrollbar/addon.xml Publishes the rollback under version 1.4.0.1+v1_3_0 and documents its Windows-compatibility purpose.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Application reports event] --> B[Serialize Rollbar payload]
  B --> C[Send event to Rollbar]
  C --> D{HTTP response}
  D -->|429| E[Log complete serialized params]
  D -->|413| F[Decode and log complete payload]
  D -->|Other| G[Normal response handling]
Loading

Reviews (1): Last reviewed commit: "[script.module.pyrollbar] 1.4.0.1+v1_3_0" | Re-trigger Greptile

Comment on lines 1731 to +1733
if resp.status_code == 429:
if SETTINGS['log_all_rate_limited_items'] or not last_response_was_429:
log.warning("Rollbar: over rate limit, data was dropped.")
if SETTINGS['log_payload_on_error']:
log.warning("Payload was: %r", params)
log.warning("Rollbar: over rate limit, data was dropped. Payload was: %r", params)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 security Payload logging bypasses opt-out

When Rollbar returns HTTP 429 or 413 after an installation configured log_payload_on_error=False under 1.4.0, these branches unconditionally copy the complete serialized event into application logs, exposing captured request, exception, and local-variable data to log readers. How this was verified: The serialized event is passed to _parse_response, where both changed response branches log it without the former configuration guard.

log.error("Provided agent log file does not end with .rollbar, which it must. "
"Using default instead.")
log_file = 'log.rollbar'
log_file = DEFAULTS['agent.log_file']

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Agent fallback references undefined variable

When handler="agent" is initialized with a log filename that does not end in .rollbar, this fallback evaluates the undefined DEFAULTS name, raising NameError instead of initializing the agent logger with the default filename.

Suggested change
log_file = DEFAULTS['agent.log_file']
log_file = 'log.rollbar'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant