Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Triplelift Native add site.publisher nil check #3824

Merged
merged 5 commits into from
Jul 29, 2024

Conversation

bsardo
Copy link
Collaborator

@bsardo bsardo commented Jul 25, 2024

This PR fixes panics in the Triplelift Native adapter introduced in v2.25.0.

@bsardo bsardo changed the title Fix: add site.publisher nil check Fix: Triplelift Native add site.publisher nil check Jul 25, 2024
Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 8ff11b6

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		96.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:96:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:112:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:157:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:164:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:172:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:209:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:228:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:241:	getDefaultExtraInfo	100.0%
total:											(statements)		96.2%

@bsardo
Copy link
Collaborator Author

bsardo commented Jul 26, 2024

@patrickloughrey please take a look.

I also imagine that you don't have to perform a similar check on app.publisher.domain to see if it is msn.com given that app is for non-browser. Can you confirm?

@bsardo
Copy link
Collaborator Author

bsardo commented Jul 26, 2024

@patrickloughrey please take a look.

I also imagine that you don't have to perform a similar check on app.publisher.domain to see if it is msn.com given that app is for non-browser. Can you confirm?

Discussed offline. They don't have app inventory enabled at this time but would like to handle this case to be safe.

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, bb20271

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:80:	msnInApp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:85:	msnInSite		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:90:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:106:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:151:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:158:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:166:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:203:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:222:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:235:	getDefaultExtraInfo	100.0%
total:											(statements)		96.9%

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 45d1f05

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:80:	msnInApp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:85:	msnInSite		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:90:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:106:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:151:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:158:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:166:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:203:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:222:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:235:	getDefaultExtraInfo	100.0%
total:											(statements)		96.9%

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 8ff11b6

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		96.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:96:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:112:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:157:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:164:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:172:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:209:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:228:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:241:	getDefaultExtraInfo	100.0%
total:											(statements)		96.2%

@bsardo bsardo closed this Jul 26, 2024
Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, e89eccb

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:80:	msnInApp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:85:	msnInSite		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:90:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:106:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:151:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:158:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:166:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:203:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:222:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:235:	getDefaultExtraInfo	100.0%
total:											(statements)		96.9%

@bsardo bsardo reopened this Jul 26, 2024
Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, e89eccb

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:80:	msnInApp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:85:	msnInSite		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:90:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:106:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:151:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:158:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:166:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:203:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:222:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:235:	getDefaultExtraInfo	100.0%
total:											(statements)		96.9%

Comment on lines -53 to -54
var siteCopy openrtb2.Site
var extData ExtImpData
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

As pointed out by @guscarreon, these two variables are only ever read; they aren't written so we can get rid of them and just read the data from the original source.

Comment on lines -73 to -82
if ext.Data != nil {
extData = *ext.Data
}

if extData.TagCode != "" {
if siteCopy.Publisher.Domain == "msn.com" {
imp.TagID = extData.TagCode
} else {
imp.TagID = tlext.InvCode
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This logic has been simplified as pointed out by @guscarreon.

Comment on lines +80 to +82
func msnInApp(request *openrtb2.BidRequest) bool {
return request.App != nil && request.App.Publisher != nil && request.App.Publisher.Domain == "msn.com"
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Adding support for app.publisher as discussed.


// msnInSite returns whether msn.com is in request.site.publisher.domain
func msnInSite(request *openrtb2.BidRequest) bool {
return request.Site != nil && request.Site.Publisher != nil && request.Site.Publisher.Domain == "msn.com"
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nil checks added to address panics.

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 61d6ec0

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:80:	msnInApp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:85:	msnInSite		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:90:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:106:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:151:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:158:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:166:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:203:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:222:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:235:	getDefaultExtraInfo	100.0%
total:											(statements)		96.9%

guscarreon
guscarreon previously approved these changes Jul 26, 2024
Copy link
Contributor

@guscarreon guscarreon left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@SyntaxNode SyntaxNode left a comment

Choose a reason for hiding this comment

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

Please see my comment on the InvCode == "" code changes.

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 13dea17

triplelift_native

Refer here for heat map coverage report

github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:45:	getBidType		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:49:	processImp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:80:	msnInApp		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:85:	msnInSite		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:90:	effectivePubID		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:106:	MakeRequests		92.9%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:151:	getPublisher		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:158:	getBidCount		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:166:	MakeBids		94.7%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:203:	Builder			100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:222:	getExtraInfo		100.0%
github.com/prebid/prebid-server/v2/adapters/triplelift_native/triplelift_native.go:235:	getDefaultExtraInfo	100.0%
total:											(statements)		96.9%

@patrickloughrey
Copy link
Contributor

LGTM

Copy link
Contributor

@guscarreon guscarreon left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Ready for Dev
Development

Successfully merging this pull request may close these issues.

5 participants