Skip to content

Conversation

@mexirica
Copy link

@mexirica mexirica commented Dec 3, 2025

Fixes: #6983

This pull request enhances logging and error reporting in the log record attribute handling code, specifically around dropped attributes and duplicate key-value pairs. The main focus is to provide clearer warnings when key-value pairs are dropped due to duplication, and to ensure warnings are only logged when actual drops occur.

Improved logging and error handling for dropped attributes and duplicate keys:

  • Added a new logKeyValuePairDropped warning (using sync.OnceFunc) to log a warning message when key-value pairs are dropped due to key duplication. This ensures that duplicate key drops are clearly reported.
  • Updated methods (addDropped, setDropped) to only log attribute drop warnings when the number of dropped attributes is greater than zero, preventing unnecessary log spam.

Enhancements to attribute deduplication logic:

  • Inserted calls to logKeyValuePairDropped in multiple places within AddAttributes, SetAttributes, and applyValueLimitsAndDedup to log a warning whenever key-value pairs are dropped due to duplication, ensuring better visibility into attribute handling issues.

Code cleanup:

  • Removed redundant calls to addDropped after deduplication, as the logging is now handled directly where drops occur.

@codecov
Copy link

codecov bot commented Dec 3, 2025

Codecov Report

❌ Patch coverage is 93.33333% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 85.8%. Comparing base (18863ca) to head (1ab60b4).

Files with missing lines Patch % Lines
sdk/log/record.go 93.3% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            main   #7662     +/-   ##
=======================================
- Coverage   86.1%   85.8%   -0.4%     
=======================================
  Files        298     298             
  Lines      21721   21735     +14     
=======================================
- Hits       18718   18657     -61     
- Misses      2626    2633      +7     
- Partials     377     445     +68     
Files with missing lines Coverage Δ
sdk/log/record.go 79.7% <93.3%> (-20.3%) ⬇️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mexirica mexirica changed the title [WIP] Fix bad error log Fix bad error log Dec 4, 2025
@mexirica mexirica marked this pull request as ready for review December 4, 2025 18:30
Copy link
Member

@pellared pellared left a comment

Choose a reason for hiding this comment

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

The new tests looks like created with help of GenAI. Can you check it there is no redundancy and try to minimize the amount of new tests? At the same time I do not want to increase the complexity of existing tests (I think it is better to have more tests then fewer that are more complex).

log.String("h", "H"),
),
wantDroppedAttrs: 10,
wantDroppedAttrs: 0, // Deduplication doesn't count as dropped
Copy link
Member

Choose a reason for hiding this comment

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

This is not included in the PR description, right?
I tried to add a changelog entry for it. Please double-check.

Copy link
Author

@mexirica mexirica Dec 26, 2025

Choose a reason for hiding this comment

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

It's included in the last part (code clean-up), but if that's not clear, I can update the PR description without any problem.

func (r *Record) setDropped(n int) {
logAttrDropped()
r.dropped = n
if n > 0 {
Copy link
Member

Choose a reason for hiding this comment

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

This is another fix that should have a changelog entry.

Copy link
Author

Choose a reason for hiding this comment

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

Added to the changelog

@pellared
Copy link
Member

@mexirica , are you able to address the comments?

@mexirica
Copy link
Author

@mexirica , are you able to address the comments?

Hi, sorry for the delay, Will fix they

@mexirica
Copy link
Author

The new tests looks like created with help of GenAI. Can you check it there is no redundancy and try to minimize the amount of new tests? At the same time I do not want to increase the complexity of existing tests (I think it is better to have more tests then fewer that are more complex).

Reduced the number of tests. If that's still not okay, I can clean up more.

@flc1125 flc1125 mentioned this pull request Dec 29, 2025
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.

sdk/log: Bad log message when key-value pairs are dropped because of key duplication

2 participants